Lange Ketten von Schieberegistern

Ich möchte eine LED-Anzeige einrichten und möchte eine Reihe von 16-Bit-LED-Treiberchips (wie TI TLC5927 ) verwenden, um eine 16x16-LED-Matrix zu betreiben. Dann würde ich vielleicht gerne ein paar dieser 16x16-Displays zu einem größeren Display zusammenstellen. Da sie verkettbar sind, sollte das prinzipiell funktionieren.

Das Problem, wie ich es sehe, ist die Verteilung der CLK-, LATCH- und OE-Signale, da sie nicht von den Chips neu angesteuert werden. Und ich denke, der schwache kleine Arduino-Ausgang wird nicht viel mehr als 20 oder 30 Chips treiben, bevor die Signale zu verschwommen werden, um als digital betrachtet zu werden.

Also ... ist die Lösung, einfach alle so viele Chips einen 74HCT125-Puffer einzusetzen, um die CLK-, LATCH- und OE-Signale erneut anzusteuern? Irgendwelche Fallstricke bei diesem Ansatz? Vielleicht überdenke ich es einfach.

Ähnliche Frage: electronic.stackexchange.com/questions/40242/… Ich habe Schmitt-Trigger-Puffer verwendet, wie Steven in seiner Antwort vorgeschlagen hat, und es hat gut funktioniert, zumindest für 16 Register, die auf einer Entfernung von etwa 10 m verkettet sind
Ich habe gesehen, dass 74HCT125 als Puffer für SPI-Leitungen in mehreren kommerziellen LED-Platinen verwendet wird

Antworten (1)

Solange die Signale alle von einer einzigen Quelle getrieben werden, was in Ihrem Fall der Fall ist, wird Ihre Lösung funktionieren. Diese Signale benötigen jedoch normalerweise sehr wenig Strom. Für eine kleine Anzahl von ICs sollten Sie ohne auskommen. Für 20-30, ja, Puffer. Beachten Sie auch, dass die vielen ICs eine kleine Ausbreitungsverzögerung in Ihre Datenleitung einführen. Dies erfordert im schlimmsten Fall, dass Sie auch Ihre Uhr usw. verzögern, um die Möglichkeit zu kompensieren, dass die Uhr vor den Daten erreicht wird, wenn Sie mit sehr hoher Frequenz arbeiten.

Ja, ich werde es wahrscheinlich mit einem Arduino betreiben, also glaube ich nicht, dass ich die Uhr nicht schneller als 2 MHz laufen lassen werde :-)
Der Vollständigkeit halber beträgt die Taktperiode bei 2 MHz 500 ns, was bedeutet, dass die Daten 250 ns vor dem Taktübergang eingerichtet werden. Selbst unter der Annahme, dass eine Stabilisierungszeit von null ausreicht (z. B. wenn Daten kurz vor oder zum Zeitpunkt des Taktübergangs verfügbar werden. Normalerweise benötigen Sie eine gewisse Einrichtungs- / Stabilisierungszeit) und unter der Annahme, dass Sie einen Puffer pro Schiebewiderstand verwenden für die Der Einfachheit halber bedeutet dies, dass Sie für 25 verkettete Register eine maximale Laufzeitdifferenz haben können, dh die Laufzeit des Schieberegisters minus der des Puffers sollte weniger als 10 ns betragen. Das ist eng.
Danke für die Ergänzungen, ich würde wahrscheinlich keinen Puffer pro Schieberegister verwenden, das scheint übertrieben zu sein ... und der 74HC125 hat sowieso eine Ausbreitungsverzögerung in der Größenordnung von 10 ns. Ich würde wahrscheinlich nur alle 5 oder 10 Schieberegister einen Redrive-Puffer einfügen. Und wenn es Probleme gab, verlangsamen Sie die Uhr etwas :)
Du verstehst nicht richtig. Das Setzen eines Puffers pro Schieberegister verbessert die Situation, da jeder Puffer die durch sein entsprechendes Schieberegister eingeführte Verzögerung kompensiert. Wenn Sie eins zu zehn haben, muss ein Puffer die Verzögerung von zehn Schieberegistern kompensieren. Das Schieberegister wird höchstwahrscheinlich mehr Verzögerung pro IC haben, und was wichtig ist, ist die Verzögerung zwischen den beiden Signalketten, nicht die unabhängige Verzögerung. Aber das Bild bekommt man jetzt trotzdem. Viel Glück :)