Zum Inhalt

IO-Jack — I²C Read & Write

Funktionsweise

Im I²C Mode wird der IO-Jack zum I²C-Master. Read-/Write-Transfers und das Setzen/Lesen der I²C-Adresse laufen über ein einziges Kommandobyte, gefolgt vom eigentlichen Byte-Stream.

Dieses Byte ist zusammengesetzt: Bit 7 = R/W-Marker (0 = Read, 1 = Write), Bits 6–0 = Länge (1–127 = Anzahl Datenbytes; 0 = Adress-Operation):

Bit-Position 7 6 5 4 3 2 1 0
Feld R/W L6 L5 L4 L3 L2 L1 L0
Marker Länge (0–127) Länge Länge Länge Länge Länge Länge

Daraus ergeben sich die vier Operationen – Kommandobyte plus ggf. Datenbytes:

Operation 7 6 5 4 3 2 1 0 = Byte
Read I²C (n Bytes) 0 L6 L5 L4 L3 L2 L1 L0 0nnn nnnn (n = 1–127)
Write I²C (n Bytes) 1 L6 L5 L4 L3 L2 L1 L0 1nnn nnnn (= 128 + n)
Read I²C Address 0 0 0 0 0 0 0 0 0x00
Write I²C Address 1 0 0 0 0 0 0 0 0x80

Der anschließende Byte-Stream und die Rückmeldung:

Operation weitere Bytes Response
Read I²C n Datenbytes (1. Byte … n. Byte)
Write I²C n Datenbytes n bytes written
Read I²C Address aktuelle I²C-Adresse
Write I²C Address Adressbyte Bestätigung

Beispielwerte: 0x00 = Adresse lesen, 0x80 = Adresse schreiben, 0x01 = Read mit Länge 1 → one byte written.


Protokoll-Details

Read I²C

Request:   Length  [1–127]
Response:  Byte₁  Byte₂  …  Byteₙ         (n = Length)

Write I²C

Request:   (128 + Length) [129–255]   Byte₁  Byte₂  …  Byteₙ
Response:  „n bytes written"

Adress-Operationen

Aktion Request Response
Read I²C Address 0x00 I²C-Adresse
Write I²C Address 0x80 (128) Bestätigung

Querverweise