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
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.