Hallo zusammen,
ich hätte da zwei Fragen.
Mich würde interessieren, ob bei den Logik - IC's die Eingangspins,
welche nicht angeschlossen sind, mit Masse verbunden werden müssen.
Falls diese verbunden werden müssen stellt sich mir die Frage, ob ich
die übrigen Pins verbinden kann und dann über einen Widerstand an Ground
anschließen?
Des weiteren würde ich geren mit dem 74HC4040 arbeiten.
Im Datenblatt steht, "Clock Input (LOW to HIGH, edge triggered)", was
für mich bedeutet, dass dieser auf eine steigende Flanke reagiert. In
der Wahrheitstabelle reagiert dieses jedoch auf eine fallende Flanke.
Was ist hier nun richtig?
Sollte das IC auf eine fallende Flanke reagieren, so kann man dieses mit
einem NOT-IC auf eine steigende Flanke ändern?
Ich hoffe ihr könnt mir weiter helfen.
Gruß IH453
>ob bei den Logik - IC's die Eingangspins, welche nicht angeschlossen sind, >mit
Masse verbunden werden müssen.
Die Eingangspin müssen auf einem definierten Pegel liegen, abhängig von
ihrer Funktion und deinen WÜnschen an die Schaltung.
>Im Datenblatt steht, "Clock Input (LOW to HIGH, edge triggered)", was ...
Zeig doch mal dieses Datenblatt. Meines Wissens zählt der Counter bei
der High-Low-Flanke.
Was ist ein NOT-IC?
Die 'Truth table' zeigt, dass der Clock low-high aktiv ist, der
geänderte Ausgangszustand aber erst mit der Hilg-low Flanke erfolgt. Das
liegt daran, dass das Ausgangsregister erst durchgeschrieben werden
muss, und dazu muss der Zähler hochgezählt werden. Das kann naturgemäss
nicht im gleichem Takt erfolgen.
Robert
Das Datenblatt unter deinem Link sind auch wesentlich neuer aus.
Wäre nur noch die Frage bezüglich der Flanke.
Kann ich mit einem Negierer (LS04) dafür sorgen, dass statt auf eine
High-Low auf eine Low-High Flanke reagiert wird?
@ R. Freitag
Wenn ich mir das Datenblatt, welches Helmut K. gepostet hat ansehe, dann
kann ich nicht daraus entnehmen, dass hier ein Low-High-Pegel notwendig
ist.
Hier steht, dass "clock input (HIGH-to-LOW, edge-triggered)", die
Wahrheitstabelle sagt das gleiche und auch aus dem "Timing diagram" kann
ich lediglich entnehmen, dass dieser die High-Low-Flanke braucht.
In dem "Timing diagram" geht direkt nach der High-Low-Flanke der erste
Ausgang auf High.
IH453 schrieb:> Kann ich mit einem Negierer (LS04) dafür sorgen, dass statt auf eine> High-Low auf eine Low-High Flanke reagiert wird?
Wenn die Pegel kompatibel sind, und der Inverter (gängiger Name für
"Negierer") den Fanout treiben kann, steht dem nichts im Weg. Du must
einfach sicherstellen, dass Dein Clock-Netz trotz zusätzlichem
Propagation-Delay des Inverters (erhöhter Clock-Skew) nicht zu
Timing-Violations führt (Setup- und Hold-Zeiten).
Bei Ripple Countern wie dem 4040, 4024 und dem 4060 ist auch immer zu
beachten, das die Ausgänge für eine kurze Zeit Zustände 'dazwischen'
annehmen können, da es sich ja um in Serie geschaltete Flipflops auf dem
Chip handelt, die mit der Verzögerung durch die Laufzeit der Gatter
schalten. Es entstehen dabei während des Taktens 'Ripple'.
Synchronzähler haben dieses Problem nicht.
Wichtig für mich ist nun zu wissen, welche Flanken ich nun brauche,
damit der Zähler eins hoch zählt?
Wird hier nur eine Flanke benötigt, dann sollte die Dauer bis zum
Auslesen lang genug sein, damit der Zähler wieder in einem stabilen
Zustand ist (?).
IH453 schrieb:> Wichtig für mich ist nun zu wissen, welche Flanken ich nun brauche,> damit der Zähler eins hoch zählt?
Die negativen Flanken werden gezählt.
IH453 schrieb:> Wird hier nur eine Flanke benötigt, dann sollte die Dauer bis zum> Auslesen lang genug sein, damit der Zähler wieder in einem stabilen> Zustand ist (?).
Du kannst gerne auf die pos. Flanken verzichten, wenn es Dir gelingt,
nur fortlaufend nur neg. Flanken zu erzeugen ;-)
Nach der neg. Flanke muß passend gewartet werden, wenn Du den
Zählerstand parallel auslesen willst.
@ m.n.
Das wollte ich wissen.Danke.
Die Zeit zwischen der Flanke und dem Auslesen sollte ja mindestens der
"propagation delay"(gilt diese für das IC oder für jedes einzelne FF?)
entsprechen.
Eine weitere Frage hätte ich jedoch noch, nachdem der Zähler (bis alle
Ausgänge auf high stehen) hoch gezählt hat, fängt dieser dann
automatisch wieder bei 0 an?
IH453 schrieb:> Mich würde interessieren, ob bei den Logik - IC's die Eingangspins,> welche nicht angeschlossen sind, mit Masse verbunden werden müssen.> Falls diese verbunden werden müssen stellt sich mir die Frage, ob ich> die übrigen Pins verbinden kann und dann über einen Widerstand an Ground> anschließen?
Die Eingänge von Logik-IC müssen i.d.R. einen definierten Pegel haben,
der von der gewünschten Funktion abhängt. Zähler haben z.B. typisch
einen Reset-Anschluß. Auch wenn man die Reset-Funktion nicht benötigt,
muß man den Reset-Anschluß trotzdem auf den inaktiven Pegel legen (ein
H-aktiver Reset-Anschluß also auf L). Ähnliches gilt für andere
Eingänge. Wenn es Eingänge gibt, deren Pegel für die Funktion der
Schaltung wirklich egal ist - z.B. die Eingänge überzähliger, nicht
genutzter Gatter in einem IC das mehrere Gatter enthält, dann darf man
sich den Pegel aussuchen.
Spezifisch für CMOS gilt, daß kein Eingang unbeschaltet sein darf. Und
man darf einen Eingang der L sehen soll, direkt mit GND verbinden und
einen der H sehen soll, direkt mit Vcc.
IH453 schrieb:> Die Zeit zwischen der Flanke und dem Auslesen sollte ja mindestens der> "propagation delay"(gilt diese für das IC oder für jedes einzelne FF?)
Das steht im Datenblatt dabei. Ein propagation delay gilt immer
zwischen zwei Punkten in der Schaltung. Für ein Simpel-IC wie den 4040
wird wohl die Verzögerung zwischen der Taktflanke und einem beliebigen
Ausgang gemeint sein. Da der letzte Ausgang am längsten braucht bis er
seinen Zustand eingenommen hat, ist das auch gleichbedeutend mit "für
das ganze IC".
> Eine weitere Frage hätte ich jedoch noch, nachdem der Zähler (bis alle> Ausgänge auf high stehen) hoch gezählt hat, fängt dieser dann> automatisch wieder bei 0 an?
Ein Binärzähler zählt immer zyklisch über alle Zustände. Ein vorwärts
zählender springt dabei vom Maximum wieder zu 0.
Axel Schwenke schrieb:> Für ein Simpel-IC wie den 4040> wird wohl die Verzögerung zwischen der Taktflanke und einem beliebigen> Ausgang gemeint sein. Da der letzte Ausgang am längsten braucht bis er> seinen Zustand eingenommen hat, ist das auch gleichbedeutend mit "für> das ganze IC".
Nein, stimmt nicht ;-)
Die 'propagation delay' gilt für Qn -> Qn+1. Daher dauert es schon eine
Weile, bis der letzte Ausgang umgeschaltet hat.
Axel Schwenke schrieb:> Ein Binärzähler zählt immer zyklich über alle Zustände. Ein vorwärts> zählender springt dabei vom Maximum wieder zu 0.
Und damit springt auch der allerletzte Ausgang von 1 -> 0. Damit man
diese Zähler kaskadieren kann, müssen sie auch immer die negative Flanke
zählen!
Um die Rechnerei mit dem "propagation delay" und den anderen Zeiten zu
vereinfachen stellt sich mir die Frage, worauf sich die im Datenblatt
angegebene Frequenz bezieht?
Ist dieses die Grenzfrequenz, bis zu welcher der Baustein ohne Probleme
und ohne "Ripple" (aufgrund der Wartezeit) arbeitet?
Folglich müsste ich ja nur ausrechnen, mit welcher Frequenz ich Schalte.
Ist diese kleiner wie die maximale Frequenz, so ist hier mit keinem
Problem bezüglich der Zeit und des "Ripple" zu rechnen?
Den Artikel habe ich mir schon mehrmals durchgelesen.
In dem Datenblatt finde ich jedoch folgende tp's
tpd für /CP to Q0 := 14 ns
tpd für Qn to Qn+1 := 8 ns
tphl für MR to Qn := ca. 37 ns
Zudem finde ich die Werte für "Dynamic characteristics" und für "Dynamic
characteristics …continued".
Welchen tp Wert muss ich nehmen um quasi den worst-case zu berechnen.
tp*12 = ?
Des weiteren wird fmax mit 90 Mhz angegeben. Also kann der Baustein
fehlerfrei bis < 90 Mhz getaktet werden?
IH453 schrieb:> Um die Rechnerei mit dem "propagation delay" und den anderen Zeiten zu> vereinfachen stellt sich mir die Frage, worauf sich die im Datenblatt> angegebene Frequenz bezieht?> Ist dieses die Grenzfrequenz, bis zu welcher der Baustein ohne Probleme> und ohne "Ripple" (aufgrund der Wartezeit) arbeitet?
Es ist die Frequenz bis zu der er zählt, ohne sich zu verzählen. Den
Ripple gibts sowieso immer. Außerdem sieht bei einem Asynchronzähler nur
das erste Flipflop den vollen Takt, alle folgenden nur den entsprechend
geteilten Takt. Das erste Flipflop bestimmt also wie weit es geht.
IH453 schrieb:> In dem Datenblatt finde ich jedoch folgende tp's>> tpd für /CP to Q0 := 14 ns> tpd für Qn to Qn+1 := 8 ns> tphl für MR to Qn := ca. 37 ns>> Welchen tp Wert muss ich nehmen um quasi den worst-case zu berechnen.> tp*12 = ?
Na die 14ns plus sovielmal 8ns wie du weitere Ausgänge verwenden willst.
Maximal für Q11 dann (14 + 11*8) ns.
IH453 schrieb:> Ist diese kleiner wie die maximale Frequenz, so ist hier mit keinem> Problem bezüglich der Zeit und des "Ripple" zu rechnen?
Doch, natürlich. Das heisst nur, dass sich der Zähler bei dieser
Frequenz gerade noch nicht verzählt, dass also der Ausgang Qn die
Frequenz geteilt durch 2^n ausgibt. Was an den einzelnen Q-Augängen zu
einem bestimmten Zeitpunkt relativ zum Clk ansteht, ist aber eine ganz
andere Frage, es ist durchaus möglich, dass der "vordere" Teil schon
einen neuen Zählerstand hat, der "hintere" aber nicht. Es kommt also
darauf an, welche Ausgänge du benutzen willst.
Um das Problem zu vermeiden wurden die Synchronzähler erfunden, da
stimmt deine Vermutung so etwa.
Georg
Woher soll man bitte all diese Daten aus dem Datenblatt entnehmen?
Zu dem Ripple: Wenn nun der Zähler seine Zählerstand um 1 erhöht, da an
dem Eingang eine fallende Flanke anliegt, dann liegen in einer Dauer von
(14 + 11*8) ns Ripple an den Ausgängen an bzw. können entstehen.
Nach den (14 + 11*8) ns hat das letzte (worst-case) FF geschaltet und
ich kann die Ausgänge beruhigt abfragen?
Ich wollte das Wichtigste nur noch einmal kurz zusammenfassen, ob ich
dieses nun richtig verstanden habe.
Dann kann es jetzt an den praktischen Teil gehen.
Ihr habt mir alle sehr geholfen.
Danke.
IH453 schrieb:> Ich wollte das Wichtigste nur noch einmal kurz zusammenfassen, ob ich> dieses nun richtig verstanden habe.
Bei den Zeiten musst Du unbedingt das Datenblatt des Herstellers
verwenden, dessen IC Du hast. In meinen (alten) Datenblatt von National
Semiconductor stehen nämlich andere Zeiten. Und natürlich musst Du die
die Worst-Case-Werte und nicht die typischen Werte verwenden.
Gruß Dietrich
IH453 schrieb:> Woher soll man bitte all diese Daten aus dem Datenblatt entnehmen?
Es hilft wenn man ein paar Grundlagen der digitalen Schaltungstechnik
kennt. Also z.B. einen Asynchronzähler.
> Zu dem Ripple: Wenn nun der Zähler seine Zählerstand um 1 erhöht, da an> dem Eingang eine fallende Flanke anliegt, dann liegen in einer Dauer von> (14 + 11*8) ns Ripple an den Ausgängen an bzw. können entstehen.
Nein. Du verstehst schon den Begriff "Ripple" nicht.
Ca. 14ns nach der fallenden Taktflanke wechselt Q0 (der Ausgang des
ersten Flipflops) den Pegel. Da der Ausgang des ersten Flipflops
gleichzeitig der Eingang des zweiten ist, kippt ca. 8ns nach der
fallenden Flanke an Q0 (was 14ns + 8ns = 22ns nach der Taktflanke ist)
der Ausgang des nächsten Flipflops Q1. Usw. usf bis hin zu Q11.
Am längsten dauert das ganze, wenn der Zähler vom Maximalwert wieder auf
0 zurückspringt. Dann wechseln die Ausgänge alle hübsch nacheinander von
1 auf 0. Und dieses Verhalten, daß der Übertrag wie eine Welle über die
Ausgänge rollt, das nennt man englisch ripple.
> Nach den (14 + 11*8) ns hat das letzte (worst-case) FF geschaltet und> ich kann die Ausgänge beruhigt abfragen?
Ja. Wenn du die Zählerausgänge schnell genug betrachen würdest, dann
würdest du beim Sprung von 1111 1111 1111 auf 0000 0000 0000 die
Zwischenzustände 1111 1111 1110, dann 1111 1111 1100, weiter mit 1111
1111 1000 usw. sehen können. All diese Zwischenzustände sind falsch, sie
sollten nicht auftreten. Und wenn du sie nicht sehen willst, mußt du
nach der Taktflanke entsprechend lange warten.