Forum: Mikrocontroller und Digitale Elektronik Zusätliche I/O-Pins und der 74HC4040


von IH453 (Gast)


Lesenswert?

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

von spontan (Gast)


Lesenswert?

>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?

von IH453 (Gast)


Lesenswert?


von Helmut K. (hk_book)


Lesenswert?

Fehler im ST-Datenblatt von 1993(!), der Zähler reagiert definitiv auf 
die fallende Flanke; siehe z.B. hier auf Seite4:

http://www.nxp.com/documents/data_sheet/74HC_HCT4040.pdf

von R. F. (rfr)


Lesenswert?

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

von IH453 (Gast)


Lesenswert?

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?

von IH453 (Gast)


Lesenswert?

@ 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.

von P. K. (pek)


Lesenswert?

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).

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von IH453 (Gast)


Lesenswert?

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 (?).

von m.n. (Gast)


Lesenswert?

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.

von IH453 (Gast)


Lesenswert?

@ 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?

von Axel S. (a-za-z0-9)


Lesenswert?

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.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

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!

von IH453 (Gast)


Lesenswert?

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?

von m.n. (Gast)


Lesenswert?


von IH453 (Gast)


Lesenswert?

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?

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von Georg (Gast)


Lesenswert?

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

von IH453 (Gast)


Lesenswert?

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?

von m.n. (Gast)


Lesenswert?

Warum wiederholst Du Deinen Fragen immer wieder?
Es ist doch bereits Alles gesagt.

Sag besser, was Dein Ziel ist, was Du machen möchtest.

von IH453 (Gast)


Lesenswert?

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.

von Dietrich L. (dietrichl)


Lesenswert?

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

von Axel S. (a-za-z0-9)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.