Forum: Mikrocontroller und Digitale Elektronik Schieberegister Taktsignale - richtige Vorgehensweise


von Milo (Gast)


Lesenswert?

Hallo uC.net,

ich hätte da mal so eine Frage zu den Tutorials bzgl. der 74HCT595 und 
*165 Schieberegister.

In den Anleitungen (hier und anderswo) wird der Schiebetakt ja erzeugt, 
indem man den SCK Pin mit zwei direkt aufeinanderfolgenden Anweisungen 
einmal LOW und dann sofort wieder HIGH setzt.
Funktioniert ja auch prima...

Aber wenn man das so macht, dann ist doch die Pulsdauer des 
Schiebetaktes abhängig von der Geschwindigkeit des Controllers, oder 
nicht?

Müsste man nicht optimalerweise sicherstellen, dass der Puls nicht zu 
kurz ist?

In diesem Datenblatt: 
https://assets.nexperia.com/documents/data-sheet/74HC_HCT595.pdf

... gibt es auf Seite 9 ganz unten ja eine Angabe zur Pulse-Width. Bei 
5V VCC liegt diese, abhängig von der Temparatur, zwischen 15 und 22ns.
Bei 2V immerhin schon zwischen 75 und 110ns.

Gehe ich recht in der Annahme, dass die Pulsdauer des Taktsignals an 
SHCP/SCK also die dort angegebene Zeit nicht unterschreiten darf?

Geht mir nur um's Verständnis... bei meinen Anwendungen werde ich solche 
Zeiten wohl ohnehin nicht erreichen ;)

Merci, milo

von Jens M. (schuchkleisser)


Lesenswert?

Die Pulszeit darf natürlich nicht unter tmin kommen, und so oder so ist 
das von der Taktfrequenz des Controllers abhängig.

Je nach Controller sollte man nicht direkt ein- und ausschalten, denn 
das kann u.U. zu kurz werden.
Anstatt Daten/Takt anlegen/Takt ausmachen/von vorn könnte man
Takt anlegen/Daten/Takt aus/von vorn, dann sind beide Zeiten maximal 
lang und gleichzeitig minimal kurz.
Allerdings muss man hier wieder aufpassen, das es genug Überlappung 
gibt, denn die Daten müssen ja lang genug anliegen wenn das LAtch 
scharfgeschaltet wird und noch lang genug anliegen wenn es speichern 
soll.
Zur not müssen noch ein paar NOPs rein...

von Stefan F. (Gast)


Lesenswert?

Milo schrieb:
> Aber wenn man das so macht, dann ist doch die Pulsdauer des
> Schiebetaktes abhängig von der Geschwindigkeit des Controllers, oder
> nicht?

Ja

> Müsste man nicht optimalerweise sicherstellen, dass der Puls
> nicht zu kurz ist?

Ja, es sei denn, der Mikrocontroller kann gar nicht zu schnell sein.

> Zur not müssen noch ein paar NOPs rein...
genau

von A. S. (Gast)


Lesenswert?

Meist reicht es grob zu sagen: 20MHz Befehlstakt, dann hab ich max. 
10MHz Clock.

Es kann aber prinzipiell sein, dass low-high schneller geht als high-low 
oder umgekehrt. Von daher ggf. Blick ins Datenblatt. Aber mal ehrlich, 
wenn der Controller schnell genug ist, dann nimmt man doch hardware SPI.


(Falls es nicht allgemeinwissen ist: SPI ist dafür gedacht, ein 
Schieberegister ein- und auszulesen, die intelligenten Slaves kamen 
später)

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