mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "Übersprechen" innerhalb eines Latches !?


Autor: Jonas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze ein 8-Bit Latch 74ACT574 um asynchrone Daten zur
Weiterverarbeitung zu synchronisieren.
Das 8-Bit Latch wird mit 30 MHz getaktet. Wenn ich an D[0..7] einen
Zähler als Testgenerator anschließe, entstehen an den MSB (die gerade
auf LOW stehen) des Q[0..7] bei mehreren fallenden Flanken (z.b.
Übergang von 00011111 auf 00100000) Spikes dieser Form: ___-___.
Meistens dauern die Spikes ca 20% der CLK, manchmal, und das ist das
Problem, halten sie allerdings auch einen Takt lang.

Auf dem LogicAnalyser sieht der Q[7..0] z.B. so aus (11111110 ->
00000000 an D[0..7]):

0: --------_______
1: --------_______
2: --------_______
...
6: --------_______
7: ______-______  <- Spike! Wieso?

Was kann ich da machen? Die Stromversorgung ist einwandfrei,
Kondensator (10n, 100n) ebenfalls vorhanden, Versorgungsspannung exakt
5,00V.

Ich hoffe jemand kann mir einen Tip geben,
Vielen Dank, Jonas

PS: Das Problem tritt auch bei 100kHz, 1 MHz... auf ;-(

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn bei einem Register oder Latch die Setup- und Hold-Time nicht
eingehalten werden, ist der Zustand vom Ausgang undefiniert.

Stichwort: Metastabilität (metastability).

Standardproblem. Manche Microcontroller haben daher an den Eingangen
mehrere Register/Latches hintereinander um die Wahrscheinlichkeit
minimieren (z.B. AVR Mega/Tiny).

Autor: Arno H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal unter dem Stichwort "Bounce" oder "Bouncing".
Arno

Autor: Jonas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso metastabil?
Metastabilität tritt doch auf, wenn CLK und D sich nahezu gleichzeitig
ändern.
An D[7] ändert sich aber nichts. Wieso gibt es dann an Q[7] den Spike?

Hier nochmal zur Veranschaulichung:

D0: --------_______
D1: --------_______
D2: --------_______
...
D6: --------_______
D7: _____________  <- ...dauerhaft LOW

CL: -_-_-_-_-_-_-  <- CLK, Übernahme an positiver Flanke

Q0: --------_______
Q1: --------_______
Q2: --------_______
...
Q6: --------_______
Q7: ______-______  <- Spike! Wieso?

Gruß + Vielen Dank
Jonas

Autor: Arno H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil Du eine Menge Ein- und Ausgänge gleichzeitig schaltest, treten an
den Induktivitäten der Zuleitungen inerhalb und ausserhalb des Chips
Spannungsspitzen auf und verursachen Verschiebungen der Bezugspunkte,
die zu Fehlschaltungen führen können. Der auslösende Faktor sind die
Anstiegs- und Abfallzeiten des Signals, weniger die Frequenz. Diesen
Effekt nennt man Bouncing.
Arno

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, die Metastabilität ist's nicht (so ganz deutlich konnte ich die
Takt/Daten-Beziehung deinem Text nicht entnehmen).

Aber dafür fällt der 74ACT auf. Sind unangenehme Biester. Sehr schnell,
sehr schnelle Flankenwechsel, arge schnelle Stromspitzen. Und leiden
daher unter TIs alter Fehlentscheidung, die VCC/GND-Pins an die am
wenigsten dafür geeignete Stelle zu packen - die Ecken.

Besser geeignet: 74ACT11374. Gleiche Konfiguration aber besseres
Pinout. Mehr VCC/GND-Pins und die in der Mitte. Trotzdem ist die
Platine ebenso wichtig. Ich vermute, dass sich bei TI auch die eine
oder andere Application Note diesem Thema widmen wird.

Autor: Jonas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@A.K. Vielen Dank für den Tip mit dem anderen TI Baustein.
Habe bis jetzt den 574er von TI. Ein Motorola 574er hat nur kurze
Glitches, max. 10% der Taktlänge. Ich werde nun den 74ACT11374 testen.

Gruß Jonas

PS: Weitere Beiträge sind erwünscht ;-)

Autor: Jadeclaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dem 11374 zwischen Saft und Masse von unten einen 0.1uF SMD-Kerko
gegenklatschen.
Dann sollte Ruhe sein.
Bedrahtete Caps haben eine zu hohe Serieninduktivität.

Gruss
Jadeclaw.

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der höhere Stromverbrauch keine Rolle spielt, nimm doch die
F-Serie, die sind gutmütiger, da noch in TTL-Technik (geringere
Stromspitzen).


Ob die VCC/GND-Pins an den Ecken oder in der Mitte sind, hat bei mir
bisher keine Auswirkungen gehabt, eine gute Leiterbahnführung aber sehr
wohl.

Bzw. bei langen Leitunge an den Ausgängen könne Serienwiderstände
(10..22 Ohm) ware Wunder wirken.
Die AC/ACT-Typen ziehen quasi an den geladenen Leitungskapazitäten
ihren eigenen GND hoch.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.