Seltsames Datenbit im I2C Bus

OP #5054514
Lesenswert?

Hallo Leute,
Ich bin grad dabei mir die Grundlagen der I2C Kommunikation anzueignen. 
Nun habe ich die Kommunikation bei der Addresse 0x39 untersucht. Im 
Datenbyte ist mir nun aufgefallen, das beim senden von 128 nach den 
neunten Datenbit die SDA Leitung (gelb) kurz auf High gezogen wird und 
dann wieder auf Low. Anschließend wird ganz normal die Stop-Bedinnung 
gesendet. Dies passiert aber nur beim Wert 128. Kann mir jemand erklären 
warum dies passiert?
LG Timo
Angehängte Dateien:
#5054684
Lesenswert?

Servus Timo,

Timo G. schrieb:
> Im
> Datenbyte ist mir nun aufgefallen, das beim senden von 128 nach den
> neunten Datenbit die SDA Leitung (gelb) kurz auf High gezogen wird und
> dann wieder auf Low.

wer "zieht" denn die Datenleitung auf high? Der Pullup-Widerstand! 
Master oder Slave ziehen das Signal nur auf 0, ein High-Pegel bedeutet 
also, daß weder Master, noch Slave auf 0 zieht. Ich vermute, der Slave 
sendet Daten und lässt danach den Bus los (Pull-Up zieht auf high), 
danach treibt der Master SDA (= geht auf low), um die Stop-Bedingung zu 
erzeugen.
#5054686
Lesenswert?

Timo G. schrieb:
> ... nach den neunten Datenbit die SDA Leitung (gelb) kurz auf High
> gezogen wird

High bedeutet nur, dass weder Master noch Slave die Leitung gerade auf 
Low ziehen.

> und dann wieder auf Low.

Das Low ist fürs Stop notwendig.

Was zwischen dem Ack des vorherigen Bytes und dem Stop auf SDA passiert, 
ist egal; solange SCL auf Low ist, darf sich SDA beliebig ändern.

> Dies passiert aber nur beim Wert 128.

In diesem Fall könnte es sein, dass das Shift-Register wieder zum ersten 
Bit zurückspringt.

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