I²C

I²C steht für Inter-Integrated Circuit und ist ein von Phillips entwickelter serieller Datenbus.


Das EA uniTFT bietet 2 Schnittstellen I²C; die Slave-Schnittstelle (Pins 11 und 12) verwenden Sie um mit dem Display zu arbeiten und zu kommunizieren. Alles was hierüber empfangen wird, wird als Kommando interpretiert (mit und ohne Small-Protokoll). Möchten Sie über eine I²C-Schnittstelle x-beliebige Daten senden und empfangen, verwenden Sie die Master-Schnittstelle (Pins 43 und 44). Diese bedienen Sie über die #H Befehle:


Der als Master-Slave-Bus konzipierte Bus benötigt 2 Signalleitungen:

  • SCL (Serial Clock Line)
  • SDA (Serial Data Line)


Die elektrische Spezifikation sieht vor, dass beide Leitungen mit einem Pull-Up-Widerstand an VDD abgeschlossen werden, denn sämtliche an dem Bus angeschlossene Geräte haben Open-Collector-Ausgänge. Der Bustakt wird immer durch den Master vorgegeben, der die gesamte Kommunikation bestimmt:



Nach der Startbedingung folgt in einem Übertragungsprotokoll immer die Slaveadresse. Hierbei ist das Bit 0 das sogenannte R/W-Bit und bestimmt ob vom Slave gelesen (1) oder Daten übermittelt (0) werden sollen. Der Datenaustausch erfolgt bis der Master die Stopbedingung ausführt. Genauere Informationen sind in der I²C Spezifikation zu finden. Die voreingestellte I²C-Bus Adresse ist 0xDE (als 8-Bit Adresse inklusive R/W bit, als 7-Bit Adresse, also ohne R/W-Bit 0x6F).


Über den Befehl #XCI bzw. #HIP (Masterschnittstelle) kann auf eine x-beliebige andere Adresse umgestellt werden. Alternativ kann der Befehl direkt in die Boot-Datei <start.emc> geschrieben werden.

Im TestMode (Bootmenü) können die eingestellten Parameter überprüft werden.

Die maximale Frequenz des Moduls im Slave-Modus ist 400 kHz, auf dem Masterschnittstelle können bis zu 1 MHz übertragen werden. Das Modul benötigt eine bestimmte Zeit um die Daten bereit zu stellen; deshalb muss vor den zu lesenden Byte mindestens 50 μs gewartet werden (keine Aktivität auf der SCL-Leitung).