Nachdem ein Selbstbau-Sensor merkwürdig reagiert hat, habe ich den Spannungsverlauf an den Datenleitungen bei Betrieb mit einem simulierten I²C-Sensor mit einem (selbstbau) Logic Analyzer nachgemessen.

Der Versuchsaufbau:

NXT einschalten
Sensor-Ports S1, S2, S3:
NXT Power On
Kurz nachdem die Versorgungsspannung anliegt gehen sowohl SCL als auch SDA auf High. SDA geht nach etwa 5ms, SCL nach etwa 250ms wieder auf Low. Bei SCL trat mehrfach ein zusätzlicher Peak kurz nach dem Einschalten auf.

Sensor-Port S4:
NXT Power On S4
Der 4. Sensor-Port ist anders ausgelegt als die anderen. Er dient auch als RS485-Schnittstelle. Hier bleibt SCL die ganze Zeit auf Low.

Programm starten
Keine Änderung bei den Leitungszuständen. SCL und SDA bleiben auf Low-Pegel.

Sensor-Objekt anlegen (New)
Sensor-Objekt anlegen (New)
Sowohl auf SCL als auch auf SDA erscheint ein kurzer Puls.

Sensor abfragen
Sensor abfragen
(unterschiedliche Taktlängen in der Grafik sind wahrscheinlich Aretfakte der Abtastung)

Beim ersten Kontakt mit dem Sensor gehen zunächst sowohl SCL als auch SDA auf High-Pegel. SDA wechselt den Pegel bevor SCL auf High wechselt. Andersherum läge ein I²C-Stopp-Signal vor. Danach erfolgt die Übertragung der Geräte-Adresse (in diesem Fall "1"), dann das R/W-Bit (in diesem Fall Low für Lesen). Nach dem Bestätigungs-Bit (hier "NAK") wird auf Grund des zurück gelieferten NAK mit der Übertragung abgebrochen und ein Stopp-Signal gesendet.

Nach dem ersten Kontakt bleiben beide Leitungen I²C-konform auf High-Pegel. Demzufolge startet jeder weitere Kontakt direkt mit dem Startsignal:
2. Kontakt

Programmende
Programmende
Wenn das Programm beendet wird, also das Systemmenü angezeigt wird, nehmen beide Leitungen wieder Low-Pegel an.