Forum: Mikrocontroller und Digitale Elektronik Seltsames Datenbit im I2C Bus


von Timo G. (timoga)


Angehängte Dateien:

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

: Bearbeitet durch User
von Thomas E. (picalic)


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.

von Clemens L. (c_l)


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.

von Timo G. (Gast)


Lesenswert?

Okay Dankeschön:)

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.