Theoretische Uhrfrage


8

Vor allem eine theoretische Frage. Muss das Taktsignal zwischen Peeks und Trogs die gleiche Breite haben?

Ein normales Taktsignal mit Daten (unten):

Normale Uhr

Ein zufälliges Taktsignal mit Daten (die Daten sind immer noch mit der Uhr synchron) (unten):

Zufällige Uhr

Würde sich der Chip (irgendein Chip im Allgemeinen, aber als Beispiel ein serielles Parallel-Out-Schieberegister) mit einem zufälligeren Takt noch normal verhalten? Wenn nicht, warum nicht?

Auch hier nicht, dass ich dies vorhabe, aber gibt es theoretisch einen Grund, warum ich keinen Standard-Ausgangs-Pin am Raspberry Pi / Arduino als Uhr und einen anderen Pin als Daten verwenden könnte?

Beispiel Pseudocode:

fakeClockPin = 1;
dataPin = 2;

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

Nicht alle Uhren sind symmetrisch. Bestimmte alte Mikroprozessoren benötigten einen Taktzyklus von 66% (wenn ich mich recht erinnere).
HL-SDK

1
Die von Ihrem Pseudocode beschriebene Technik wird als Bitbanging bezeichnet und ist absolut legitim.
Phil Frost

Antworten:


12

Ihr Taktsignal löst eine Flanke aus, in Ihren Beispielen auf der positiven Flanke. Sie können erkennen, dass die Daten kurz vor der Taktflanke ( Rüstzeit ) stabil sein müssen. Wenn die Uhr an der fallenden Flanke einrastet, fällt dies mit der Änderung Ihrer Daten zusammen.

Mit Ausnahme der Einrichtungszeit gibt es nur wenige Einschränkungen: Die Uhr kann so lange hoch bleiben, wie sie möchte. Sie müssen jedoch vor der nächsten ansteigenden Flanke eine minimale niedrige Zeit haben.


7

Ein Chip verhält sich normal, solange Sie ihn innerhalb der im Datenblatt angegebenen "normalen Betriebsparameter" betreiben. Die meisten Chips haben nur Anforderungen an die Mindestzeit zwischen Taktflanken und die Rüstzeit (Daten stabil bis aktive Taktflanke). Weder werden durch Strecken der Uhr verletzt.

In der Praxis weist ein durch Software erzeugtes Taktsignal immer große zeitliche Schwankungen auf. Der wichtige Punkt ist, dass Sie die Dinge für den externen Chip nicht zu schnell erledigen. Das Timing eines typischen Schieberegisters wird jedoch in Zehnern von ns ausgedrückt, was einige Ordnungen schneller ist als die beobachteten 1 ms.


1

Einem einfachen Chip mit einem "Clock Pin" ist es egal, wann die Taktflanke eintrifft, nur dass dies der Fall ist. Selbst isochrone Impulse kommen eher Software oder komplexerer Hardware zugute, z. B. PLL-basierten Geräten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.