Switching Waveforms

OP #4357959
Lesenswert?

Anbei ein Screen aus einem Datenblatt

Es handelt sich um ein Shift register von Microchip

Ich habe mir nun die Switching Waveforms so angeschaut, und da kommt mir 
jetz die Frage.

Die Data-IN sind während CLK high ist, überkreuzt.

Wenn ich also in meinem Code CLK high setze, wird danach ein 
Signalwechsel auf DATA IN erwartet? oder wird beim setzen von CLK low 
der aktuelle zustand genommen?


Muss der Code so aussehen:
1
if (x = 1) {digitalWrite(DATA,0)};  //Signal vorbereiten
2
if (x = 0) {digitalWrite(DATA,1)};
3
digitalWrite(CLK,1);  //Clock  high
4
if (x = 1) {digitalWrite(DATA,1)};  //Signalwechsel
5
if (x = 0) {digitalWrite(DATA,0)};
6
digitalWrite(CLK,0);

oder genügt
1
digitalWrite(DATA,x); //Signalpin setzen 
2
digitalWrite(CLK,1); //Clock high
3
digitalWrite(CLK,0);
Angehängte Dateien:
#4357975
Lesenswert?

Johnny S. schrieb:
> Wenn ich also in meinem Code CLK high setze, wird danach ein
> Signalwechsel auf DATA IN erwartet?

Nein, dann darf sich DATA IN ändern, muss aber nicht.

> oder wird beim setzen von CLK low
> der aktuelle zustand genommen?

Ja. Dabei gilt für
- tsu = Set-up-Zeit und
- th = Hold-Zeit:
DATA IN darf sich in diesem Zeitfenster vor bzw. nach der negativen 
CLK-Flanke nicht ändern.

Gruß Dietrich
OP #4357999
Lesenswert?

U. M. schrieb:
> Hallo,
>> Johnny S. schrieb:
>> und wie sind diese Zeiten?
> Dazu ist eben das Datasheet gut. Lese es aufmerksam.
> Gruß Öletronika

habe es gefunden, tsu ist 25ns,  und th ist 10ns

dann muss ich also im Code wartezeiten von min. diesen Werten einbauen?

Etwa so?
1
digitalWrite(DATA,x); //Signalpin setzen 
2
digitalWrite(CLK,1); //Clock high
3
delay(50ns);
4
digitalWrite(CLK,0);
5
delay(20ns);
#4358009
Lesenswert?

Johnny S. schrieb:
> habe es gefunden, tsu ist 25ns,  und th ist 10ns
>
> dann muss ich also im Code wartezeiten von min. diesen Werten einbauen?

Im Prinzip ja. Aber wahrscheinlich reicht die Befehlsverarbeitungszeit 
zwischen DATA In ausgeben und CLK auf Low schalten aus (Du wirst ja wohl 
keinen GHz-Prozessor verwenden;-)).
Nur DATA IN ausgeben und CLK auf Low schalten in einem Maschinenbefehl 
darf man nicht machen.

Gruß Dietrich

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren