mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 74HC595 kaskadieren


Autor: Jörg Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hatte vor, es so zu lösen, wie es auch in
http://wiki.mikrocontroller.net/Porterweiterung_mit_SPI.htm
beschrieben ist.
Im Datenblatt des 74HC595 ist nun aber Folgendes zu erkennen:
Wenn am Eingang der Takt jeweils in der Mitte des zu schiebenden Bits
von Low nach High wechselt (und das ist ja wünschenswert, weil an
diesem Übergang das Bit ausgewertet wird), dann liegt an Q7' (also dem
seriellen Eingang des nächsten 595) der Low->High-Übergang am Ende bzw.
Anfang des Bits, also an einer undefinierten Stelle. Müsste man nicht
für das 2. Register und alle folgenden geradzahligen einen zweite,
invertierte Clock benutzen?
Jörg

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entscheidend ist hier, ob die erforderliche hold time (tH, 5ns)
eingehalten wird. Und das wird sie, wenn der das propagation delay
(tPHL/tPLH, <35ns) grösser. Und das darf hier wohl angenommen werden.

Autor: Jörg Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo A.K.,
ich habe Deine Erklärung leider nicht verstanden, aber trotzdem danke
der Mühe. Vielleicht kannst Du insbesondere den zweiten Satz nochmal
korrekt und auch ausführlicher schreiben. Hast Du denn meine Frage
verstanden? Es geht darum, dass das Einganssignal für das zweite
Register um 180 Grad phasenverschoben zum ursprünglichen Eingangsignal
liegt und deswegen dann am Low-High-Übergang der Clock das Bit gerade
wechselt. Mir ist schon klar, dass so Übergänge nicht mit unendlicher
Flankensteilheit vonstatten gehen, aber trotzdem ist es dann doch immer
Zufall, ob der gewünschte oder vorherige Bitwert genommen wird, oder?
Gruß Jörg

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Chip-Designer der ein Schieberegister definiert und diesem eigens
einen Ausgang für die Kaskadierung spendiert, dann aber ein Timing
entwickelt, mit dem eine Kaskadierung nicht funktioniert, der macht es
nicht lange in der Branche.

Ich hoffen das ich die Frage verstanden habe, ein bischen seltsam ist
sie indes schon formuliert. Beim Verweis auf das Wiki handelt es sich
ja um ganz simple Kaskadierung von Schieberegistern, kein Hexenwerk.

Entscheidend ist, wann genau der Daten-Eingang vom Schieberegister
genutzt wird. Dieser Eingang darf sich einige Nanosekunden um die
positive Taktflanke herum nicht ändern. Etwas vorher nicht (setup time)
und etwas nacher nicht (hold time). Das genau ist wichtig, nicht ob die
Flanke in der Mitte von irgendwas liegt oder mehr vorne oder hinten.
Der Ausgang wiederum reagiert auf das Taktsignal und maximal einige zig
nsec später kommt das neue Bit raus. Probleme gibt's aber nur, wenn
sich der Ausgang beispielsweise 5nsec nach dem Takt ändert, die nächste
Stufe ihnen Eingang aber noch 10nsec nach dem Takt braucht. So ist es
aber nicht.

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.