I2C

Aus m-wiki
Zur Navigation springen Zur Suche springen

Einführung

Die I2C-Schnittstelle wird in vielen IoT-Geräten verwendet. So auch im Raspi und Arduino.

Adresse

Da es sich um eine Master-Slave-Schnittstelle handelt, braucht jedes Gerät eine eigene Adresse. Normalerweise besitzt daher der Empfangsbaustein eine Grundadresse, welche dann mit Lötpunkten erhöht werden kann, welche jeweils eine binäre Zahl bedeuten. Die Lötpunkte sind meist mit A0 bis Ax beschriftet. Bei 3 Lötpunkten sind entsprechend 23 = 8 Adressen möglich, wobei A2 dann für die 4 steht. Somit besitzt ein Gerät mit Adresse 70 und geschlossenen Lötpunkten A0 und A2 die Adresse 70 + 1 + 4 = 75. Auf Grund dieses Aufbaus können an einem System mit gleichem Chip nur eine maximale Anzahl angeschlossen werden, da sonst doppelte Adressen resultieren.

HT16K33 (LED-Driver)

Dieser Baustein besitzt folgende Merkmale:

  • Betriebsspannung von 5V.
  • Anschluss über I2C.
  • Reset wenn VDD für min. 20 Milliseunden auf 0V.
  • I2C-Adresse lässt sich über die Lötbrücken A0, A1 und A2 auf die Adressen 0x70 bis 0x77 einstellen.
  • Die Anschlüsse können bei Bedarf durchgeschlauft werden.
  • Der Baustein arbeitet mit 400kHz.
  • Das Modul lässt sich mit einem "S"-Bit-Befehl in den Standby-Betrieb bringen und von dort wieder holen.
  • Es gibt einen 16x8-Bit RAM-Speicher, welcher die Zustände der LEDs speichert und sich entsprechend auslesen lässt
  • Dimmen der LED in 16 Stufen über PWM möglich. Leider geht dies nur jeweils fürs gesamte Board, so dass man es nicht für einzelne LEDs nutzen kann.
  • Blinken der LED wäre in 3 Stufen möglich, doch leider auch nur das gesamte Board. Entsprechend kann man nur Effekte hervorrufen, wenn man einzelne LEDs über den Code blinken lässt, doch hier muss man herausfinden, wie schnell und genau dies funktioniert.

Datei:Ht16K33v110.pdf