I²C-Routinen (für PIC-Mikrocontroller, Elektronik)


zurück zu Elektronik, Homepage


1. Grundlegendes zu I²C

Der I²C-Bus wurde ursprünglich von der Firma Philips für die Kommunikation verschiedener Baugruppen in einem Gerät entwickelt. (Anmerkung: Das Kürzel I²C bedeutet Inter-Integrated-Circuit, wird daher auch oft mit IIC abgekürzt)

Der I²C-Bus ist eine so genannte synchrone serielle 2-Drahtverbindung zwischen einem Master und mehreren Slaves. In den meisten Fällen ist der Master ein Mikrocontroller (z.B. ein PIC), während es sich beim Slave z.B. um einen Speicherbaustein handelt, oder um Porterweiterungsbausteine, Temperatursensor, Uhrenbausteine, Analog-Digital-Wandler oder um Spezialbausteine aus dem Bereich der Audio- und Videotechnik.

Der I²C-Bus benötigt neben einer Masseleitung nur zwei Leitungen:

In den meisten Fällen wird die Datenübertragung von einem Master ausgelöst. Es ist aber auch möglich, dass zwei oder mehr Master in einen Bus vorkommen. In diesem Fall spricht man vom Multi-Master-Mode. Hier ist durch ein bestimmtes Protokoll gesichert, dass immer nur ein Master den Bus übernehmen kann, wenn der Bus frei ist. Der Multi-Master-Mode soll hier aber nicht näher betrachtet werden. Diese Dokumentation bezieht sich ausschließlich auf die Konfiguration ein Master mit ein oder mehreren Slaves.

Einige Bausteine der PIC16-Familie beinhalten ein Hardwaremodul für die Ansteuerung von I²C-Slave-Bausteinen (z.B. die PIC16F7x und PIC16F87x). Beinhaltet der für ein Projekt ausgewählte PIC kein I²C-Hardwaremodul, so ist man gezwungen diese per Software zu realisieren, wenn man mit I²C-Bausteinen kommunizieren muss. Diese Dokumentation beschreibt die Software für die Implementierung des I²C-Protokolls für PIC-Mikrocontroller ohne I²C-Hardwaremodul. (Die Verwendung bzw. Konfiguration des vorhandenen I²C-Hardwaremoduls der PIC16F7x bzw. PIC16F87x wird hier nicht beschrieben. Dies kann in den Datenblättern des verwendeten PIC-Mikrocontrollers nachgelesen werden)

nach oben


zurück zu Elektronik, Homepage

Autor: Buchgeher Stefan
Erstellt: 17. Oktober 2003
Letzte Änderung: 10. Oktober 2004