Ich bin auf der Suche nach einer Schaltung, die den Wert eines
Quarzoszillators (1 MHz) dekadisch herunterrechnet. Die Frequenzwerte
(1MHz, 100KHz, 10 KHz, 1KHz, 100Hz, 10 HZ und 1 Hz) sollen mittels
Schalter (Dreh-) einstellbar sein.
Was für eine Schaltung und was für einen IC bräuchte ich dafür?
Ich bin absoluter Neuling in diesem Bereich und bräuchte dringend Hilfe.
Als Teiler nimmst du am besten den 74HC(HCT)390. Da hast du gleich zwei
Teiler /2 und 2 Teiler /5 in einem Gehäuse. Falls dein Oszillator
CMOS-Pegel liefert, dann nimm den 74HC390. Der hat mehr Störabstand.
1. IC
Eingang -->Teiler/5-->Teiler/2--> Ausgang/10
Ausgang/10 -->Teiler/5-->Teiler/2--> Ausgang/100
2. IC
Ausgang/100 -->Teiler/5-->Teiler/2--> Ausgang/1000
Ausgang/1000 -->Teiler/5-->Teiler/2--> Ausgang/10000
u.s.w
Mit den Ausgängen gehst du auf deinen Drehschalter(kurze Leitung!)
Vom Drehschalter geht es zum Treiber-IC, z.B. 74HC244.
Da schaltest du dann z.B. 4 der internen Gatter parallel um einen
niedrigen Ausgangswiderstand zu bekommen. In Reihe zum Ausgang noch
einen 47 Ohm Widerstand und dann zur BNC-Buchse, fallst du das so
brauchst.
Damit hättests du einen 50 Ohm Ausgang an den du beliebig lange
BNC-Kabel anschließen kannst. Brauchst du das?
@Tetraman:
Das ist eine gute Idee den Takt variabel zu gestalten. Ich habe auf
meinem CPLD-Experimentierboard den Taktgenerator auch (leider erst
nachträglich) variabel gestaltet.
Im CPLD sind sonst ganz schnell die Makrozellen alle, wenn man den Takt
intern runterteilen möchte.
Die Frage ist, was und zu welchem Zweck ihr in Eurem CPLD machen wollt.
Für LED-Spielereien braucht man eher langsame Take (1-500 Hz), für
SPI-Slaves eher schnelle (20MHz).
Für Experimentalaufbauten ist es auch legitim, den Takt mit einem
Funktionsgenerator zu erzweugen.
Duke
Ziel der gesamten Aufgabe, die ich bewältigen muss: Ein Demoboard für
den Boundary-Scan zu schaffen. Dabei soll ein CPLD XC9572XL PC44 und ein
EPROM (2716) eingesetzt werden. Der Takt soll sowohl manuell
(entprellter Schalter) als auch automatisch funktionieren (mittels
Drehschalter).
Eine 7-Segment-Anzeige und ein Lauflicht (wenn möglich mit 10 LEDs)
sollen mit integriert werden.
Tetraman schrieb:
> Ist das der richtige Ansatz?
Viele Wege führen nach Rom ;-)
Jeder der angesprochenen Baustein kann deine Aufgabe lösen.
Jeder auf seine Art.
BTW:
Ich würde nach wie vor ein CPLD nehmen...
Lothar Miller schrieb:
> Tetraman schrieb:>> Ist das der richtige Ansatz?> Viele Wege führen nach Rom ;-)> Jeder der angesprochenen Baustein kann deine Aufgabe lösen.> Jeder auf seine Art.>> BTW:> Ich würde nach wie vor ein CPLD nehmen...
Ich würde DASCPLD nehemn welches er eh schon benutzt.
Tetraman schrieb:
> Ziel der gesamten Aufgabe, die ich bewältigen muss: Ein Demoboard für> den Boundary-Scan zu schaffen. Dabei soll ein CPLD XC9572XL PC44 und ein
Nur das Teilen durch 10 würd ich durch Teilen durch 2/4/8/16...
ersetzen.
Das Teilen durch 10 ist für den CPLD kein Ding, da der CPLD auf die
Flanken des Signales Reagiert und die für den entsprechenden "Teiler"
quasi nur hochzählen brauch und dann in Abhänigkeit von dem Wert einen
Pin auf High oder Low setzen.
Stefan Kunz schrieb:
> Das Teilen durch 10 ist für den CPLD kein Ding, da der CPLD auf die> Flanken des Signales Reagiert und die für den entsprechenden "Teiler"> quasi nur hochzählen brauch und dann in Abhänigkeit von dem Wert einen> Pin auf High oder Low setzen.
Trozdem ist es efizienter ganzzahlige Potenzen von 2 zu teilen.
> das Teilen durch 10 würd ich durch Teilen durch 2/4/8/16... ersetzen.
Menschen denken wegen ihrer zehn Finger nun mal dekadisch...
Höchstens Schreiner und Sägewerker denken und rechnen oktal ;-)
> Trozdem ist es efizienter ganzzahlige Potenzen von 2 zu teilen.
Aber 10kHz und der Kehrwert davon sind für Menschen einfacher zu rechnen
als irgendwas mit 16384Hz oder 8192Hz ;-)
Lothar Miller schrieb:
> Höchstens Schreiner und Sägewerker denken und rechnen oktal ;-)outsch :(
>> Trozdem ist es efizienter ganzzahlige Potenzen von 2 zu teilen.> Aber 10kHz und der Kehrwert davon sind für Menschen einfacher zu rechnen> als irgendwas mit 16384Hz oder 8192Hz ;-)
Naja ich find binäres rechnen eigentlich einfacher als das dekadische :)
Aber ich benutz ja auch 19,66 Mhz Quarze anstelle von 20 Mhz :D
Ich fand die Idee von Helmut S ganz gut und habe diese versucht
umzusetzen. Guckt bitte mal drauf, ob ich alles richtig umgesetzt habe.
Muss das Signal noch anschließend verstärkt werden, also bevor es an den
CPLD geht ?
Tetraman schrieb:
> Ich fand die Idee von Helmut S ganz gut und habe diese versucht> umzusetzen. Guckt bitte mal drauf, ob ich alles richtig umgesetzt habe.>> Muss das Signal noch anschließend verstärkt werden, also bevor es an den> CPLD geht ?
1. Beim Teler durch 5 muss man den Ausgang CT-2 nehmen.
2. Wenn du 50% Tastverhältnis willst(eventuell gar nicht notwendig in
deiner Anwendung), dann musst du erst durch 5 und dann durch 2 teilen.
1MHz --> /5--/2-- 100kHz -- /5--/2 -- 10kHz ----
Mach deine Leitungen zum Schalter kurz und nimm dreiadrig-Flachband
(Masse-Signal-Masse). Dann sollte das Signal auch am CPLD noch taugen.
> Muss der CT=0 beschalten werden?
Grundsätzlich gilt:
a.) Unbenutzte Ausgänge bleiben offen / werden nicht angeschlossen.
b.) Unbenutzte Eingänge müssen (fast) immer auf einen definierten
Pegel gelegt werden.
Also musst Du CT=0 beschalten. Das ist ein Reset, der den Counter auf
Null setzt. Schau im Datenblatt nach und überlege Dir, welcher Pegel
(High oder Low) Du drauf geben musst.
So sieht das schon recht gut aus.
Ein kleiner "Schönheitsfehler" bleibt: Der Drehschalter prellt auch.
D.h. wenn Du z.B. von Manuell-Takt auf 1 Hz umschaltest, kann und werden
mehrere Impulse an das CPLD gegeben, u.U. auch so kurze, dass es zu
Fehlern im CPLD kommen kann. D.h. sinnvoll umschalten kannst Du mit dem
Drehschalter nur, wenn die Schaltung ausgeschaltet ist.
Eine einfache Lösung um dieses Problem zu umgehen, fällt mir auf die
Schnelle auch nicht ein.
Wenn du mit dem Drehschalter nur gleichspannungen Schaltest, dann kann
man den entprellen mit einfachen Tiefpässen...
Wie man eine Schaltung realisieren könnte:
ein dazu bräuchtest du noch sieben 2-fach &-Verknüpfungen.
An einen Pin kommt der jeweilige Takt, an den anderen Pin kommt die
Gleichspannung vom Drehschalter.
So kann man Digitale Signale einfach schalten.
SG
Markus
(ich weiss der Beitrag ist von 2009 und jetzt ist 2015. Vlt hilft es
trotzdem jemandem)
markus schrieb:> ich weiss *der Beitrag ist von 2009*
Und die Lösung mit dem Tiefpass greift zu kurz. Ein Tiefpass allein
reicht nicht zur Entprellung. Da ist mindestens noch ein Schmitttrigger
nötig.
Und danach einfach mit UND-Gattern umzuschalten kann ganz hässliche
Glitches mit sich bringen. Nicht umsonst braucht ein Taktumschalter im
Taktmanager eines FPGAs wesentlich mehr Bauteile.