I²C I/O Board für Mikrocontrolleranschluss

Universelles Input/Output Interface für I²C

Viele die mit I²C Bus Hard oder Softare experimentieren möchten, werden wohl mit dem PCF8574 anfangen. Um das Board möglichst universell  für spätere Hardwareaufbauten zu verwenden, habe ich den 8 Bit Ausgang kompatibel zu den anderen In/Out Boards auf dieser Seite gemacht. Da der Baustein in beide Richtungen funktioniert, können also die LED Boards, genau so wie das Input Board verwendet werden.
Die Schaltung entspricht weitgehend der Grundschaltung aus dem Datenblatt des PCF8574, die Busadresse kann mittels Jumper zur Verwendung mehrerer Bausteine verändert werden.
Die Widerstände R1-R3 sind vorgesehen, um den I²C Bus auf definierte Pegel zu legen. Falls mehrere Boards angeschlossen werden sollen, sind diese Widerstände nur auf dem ersten Board erforderlich. Die Basisadresse des Bausteines und die Codierung sind im Schaltplan aufgeführt.
Das 8*4 Array dient zur Zuordnung der Portleitungen auf die I²C Signale, der /INT des PCF8574 ist ein Ausgang, und wird nur benötigt, wenn ein Interrupt an den Controller ausgelöst werden soll. Die entsprechenden Brücken müssen noch je nach Bedarf eigelötet werden. Um die erste  Basisadresse (0x40) einzustellen, müssen die drei Jumper A0-A2 gesteckt sein, ohne Jumper ist die jeweils letzte mögliche Adresse eingestellt (0x4E). Es gibt übrigens noch eine PCF8574A Variante, der aber lediglich eine andere Basisadresse hat (0x7 statt 0x4) um mehr als 8 Bausteine pro I²C Bus zu ermöglichen. Wer diese Variante erwischt hat muss natürlich die Adressen im Programm anpassen.

Es empfiehlt sich ein ausführliches studium des Datenblattes und der weiterführenden Lektüre, da eine Fehlersuche recht müsam ist.
 
Schaltplan
Schaltplan PCF8574 Board
Bestückungsplan (anklicken für Vergrösserung)
Anklicken zum Vergrössern
Stückliste:
R1-R3      10K
R4-R6       220
R7-R9      1K
IC1          PCF8574
C1           100n
K1, K2     Wannenstecker 16 pol.
Stiftleisten und Stecker für Jumperfeld

Software

Tests lassen sich auch sehr einfach mit dem für beide Controllertypen erhältlichen BASCOM Basic compiler von MCS Elektronik realisieren. Dort gibt es auch die Testversion kostenlos im download, die bis 2K Programmgrösse zu verwenden ist.
Bei mir angeschlossen sind die I²C Pins an: PortD.4 (SCL) und PortD.5 (SDA). /INT ist nicht benutzt. Die Basic Sources müssten mit dieser kleinen Änderung auch für den 89C2051 funktionieren, gestestet habe ich bisher aber nur die AVR Variante.
Das kleine Testprogramm stellt mal wieder das allseits gerne genommene Lauflicht über die 8 Pins dar. Damit man auch etwas sieht, ist natürlich noch ein LED Board oder etwas ähnliches erforderlich. Im Downloadfile sind die Sourcen, sowie ein HEX und BIN File zum schnellen ausproboieren auch ohne den Basic Compiler, enthalten.

Hier der Basic Source:
'--------------------------------------------------------------
'    http.//www.mikrocontroller-projekte.de
'--------------------------------------------------------------
'  Erstellt: 03/2002, Klaus Leidinger
'  file: PCF8574.BAS
'  demo: Lauflicht
'--------------------------------------------------------------
'Chipdefinition
$regfile = "2313def.dat"
'Port pins für I2C
Config Sda = Portd.5
Config Scl = Portd.4

Const Pcf8574 = &H40  'Basisadresse 1. Baustein
Dim A As Byte
'A = &B00000001          'für nichtinvertierenden Ausgang
A = &B11111110           'für invertierenden Ausgang
Do
  I2csend Pcf8574 , A      'Wert ausgeben
  Rotate A , Left               'Bit schieben
  Waitms 300                   'Wartezeit nach belieben
Loop
End      'Ende des Programmes

Informative Links

Da es im Internet eine ganze Reihe Informationen zum Thema I²C gibt, habe ich hier mal eine kleine Auswahl weiterführender Links aufgenommen:
 
Seiten von Philips Semiconductor, der Entwickler des I²C Bus
Technische Beschreibung des Protokolles Infos zu Hardware und Timing
I²C FAQ Viele Fragen und die Antworten dazu...
Software für den 8051 damit man nicht alles selbst schreiben muss...
PCF8574 Das Datenblatt von der Philips Seite
Seiten von Atmel
AVR Application Notes AN300 ist das Master Interface
8051 Application Notes Assembler Code für eEproms

Download
Hier die beschriebenen Files, inclusive der Testprogramme und des Layout zum Download, das Layoutfile wie üblich aus einem Grafikprogramm heraus ausdrucken, NICHT aus dem Browser.
PCF8574Board.zip
 
 

Letzter Update: 10.03.2002


Diese Seite ist Teil eines Framesets. Kein Inhalsverzeichnis? Mit Home gelangen Sie zum Index.