Absolute minimale Verzögerung, die erforderlich ist, um Daten über Schieberegister hinweg zu verarbeiten

Um meine serielle Datenverarbeitung schneller zu machen, habe ich versucht, den seriellen Modus 0 mit einer Systemtaktrate von etwa 3,686 MHz zu verwenden. Sein Takt kommt vom ALE-Ausgang eines unprogrammierten at89S52, an den ein 22,1184-MHz-Takt angeschlossen ist.

Anstatt auf Bit-Banging zurückzugreifen, werde ich versuchen, meine Kristallgeschwindigkeit zu verringern, da ich mir ein Datenblatt für 74HC595 von Texas Instruments angesehen habe und darin eine Anstiegs- und Abfallzeit für 500 ns erwähnt wurde und auf der 8051-Dokumentation im seriellen Modus 0 basiert macht eine Uhr bei 307200 Hz (1/12 der 3,6 MHz). Ich habe auch Werte von 100 ns und Zahlen in der Nähe davon sowohl im 74HC138- als auch im 74HC595-Datenblatt gesehen.

Grundsätzlich handelt es sich bei den von mir gezeigten Schaltungen um einen Seriell-zu-Parallel-Datenexpander, bei dem der Ausgangsdatensatz vom Mikrocontroller wählbar ist und der Mikrocontroller auch einen Flush an die Register ausgeben kann, wenn es an der Zeit ist, die Daten anzuzeigen.

Was ist der Kristall mit der höchsten Geschwindigkeit, den ich für diesen Mikrocontroller verwenden sollte, um die Ausbreitungsverzögerungen in den Worst-Case-Szenarien zu überwinden (vorausgesetzt, die Stromversorgung ist auf 5 VDC geregelt)?

Addiere ich einfach die größten Verzögerungen für jedes Bit oder ist es komplizierter?

Und wenn ich die Daten sende, fülle ich alle Bits auf. Beispiel: Für Gerät Null fülle ich alle 16 Bits auf und für Gerät 1 fülle ich alle 24 Bits auf, sodass die klare Funktionalität jedes Registers unnötig ist, da die Ausgänge schließlich mit LEDs verbunden werden sowieso über Widerstände.

Schaltkreis

Antworten (1)

Wenn Sie sich das Ti-Datenblatt des 74HC595 ansehen, sind 500 ns die maximale Anstiegszeit, bei der Ihre Eingangssignale ansteigen sollten. Es sagt im Grunde "Takt das nicht zu langsam", was Ihr Controller nicht tun wird.

Der 74HC595 selbst kann mit >25 MHz betrieben werden (alle für 4,5 V). Ihr kritischer Pfad wird die serielle Uhr SCK sein, die durch den 74HC138 geht. Aber wenn Sie in Ihrer Software zuerst das 'SER'-Signal und danach die Uhr einstellen, sind Sie auf der sicheren Seite.

Einige Notizen:

Warum ist der 74HC138 da drin? Sie erzeugen daraus zwei Signale, verbrauchen aber 5 CPU-Pins, um es zu steuern.

Haben Sie daran gedacht, ein kleines FPGA zu verwenden?

Zwei Signale sind ein Beispiel. Ich werde tatsächlich 5 der 7 Ausgangsleitungen verwenden. Ich habe ein langes Kabel zwischen der 74hc138-Ausgangsleitung und der Uhr. Das Kabel hat etwa 24 AWG und ist etwa 40 cm lang. Ich frage mich, ob ich eine langsamere Uhr oder sogar Widerstände brauche