i2c.h File Reference

Definitionen und Funktionen zum I2C Bus. More...

Go to the source code of this file.

Defines

#define READ   1
#define WRITE   0
#define ACK   1
#define NAK   0
#define SDA   PC3
#define SCL   PC2
#define SDA_DDR   DDRC
#define SCL_DDR   DDRC
#define SDA_PIN   PINC
#define SCL_PIN   PINC
#define SDA_PORT   PORTC
#define SCL_PORT   PORTC
#define NOP   asm volatile("nop")
#define QDEL   NOP; NOP; NOP; NOP; NOP
#define HDEL   QDEL; QDEL
#define SDA_HI   SDA_PORT |= (1 << SDA)
#define SDA_LO   SDA_PORT &= ~(1 << SDA)
#define SCL_HI   SCL_PORT |= (1 << SCL)
#define SCL_LO   SCL_PORT &= ~(1 << SCL)
#define SCL_TOGGLE   HDEL; SCL_HI; HDEL; SCL_LO
#define I2C_START   SDA_LO; QDEL; SCL_LO
#define I2C_STOP   HDEL; SCL_HI; QDEL; SDA_HI; HDEL

Functions

void InitI2C (void)
unsigned char WriteI2C (unsigned char byte)
unsigned char ReadI2C (unsigned char nak)
unsigned char StartI2C (unsigned char device)
void StopI2C (void)


Detailed Description

Definitionen und Funktionen zum I2C Bus.

I2C Einfuehrung
I2C ist ein 2 Draht Bus-System das von Philips entwickelt wurde. Dazu wird lediglich eine Datenleitung und eine Taktleitung benötigt (und natuerlich eine gemeinsame Masseleitung). Es gibt eine Reihe von ICs mit I2C Bus Schnittstelle (Digital Port Erweiterungen, A/D Wandler, EEPROMs etc.) Damit ergibt sich eine Vielzahl von Moeglichkeiten um die begrenzten IO Ressourcen des ASUROs zu erweitern. Bis zu 127 Teilnehmer sind an einem I2C Bus anschliessbar. Dazu werden lediglich 2 Port Pis des ASUROs benötigt. Bie meissten ATmel AVR Prozessoren unterstuetzen die I2C Schnittstelle per Hardware, TWI (Two Wire Interface) genannt.
I2C am ASURO
Die Hardware TWI (I2C) Ports sind beim ASURO leider durch den Batterie Abfrage A/D Port und dem Tastsensor A/D Port belegt. Um die I2C Schnittstelle ohne Umbau des ASUROs zu realisieren, wird der I2C BUs mit Software emuliert. Dabei werden füer den I2C Bus die Ports der ASURO Erweiterungsplatine verwendet. Dies sind ADC2 fuer die I2C Taktleitung (SCL) und ADC3 fuer die I2C Datenleitung (SDA). Leider geht dadurch die Funktion des Liniensensors verloren. Da die beiden Fototransistoren ebenfalls die Ports ADC2 und ADC3 belegen. Ausloeten braucht man die Fototransistoren zum Glueck nicht.
I2C Anwendungen
Ueber den I2C Bus lassen sich z.B. folgende Erweiterungen realisieren.
Authors:
raid_ox
Version:
V001 - 17.02.2007 - raid_ox
Erste Implementierung

V002 - 10.02.2007 - m.a.r.v.i.n
Absplittung von asuro.h in eigene Header-Datei,
Doxygen Kommentare (KEINE Funktionsänderung)

Definition in file i2c.h.


Define Documentation

#define ACK   1

Definition at line 73 of file i2c.h.

#define HDEL   QDEL; QDEL

Definition at line 89 of file i2c.h.

#define I2C_START   SDA_LO; QDEL; SCL_LO

Definition at line 98 of file i2c.h.

#define I2C_STOP   HDEL; SCL_HI; QDEL; SDA_HI; HDEL

Definition at line 99 of file i2c.h.

#define NAK   0

Definition at line 74 of file i2c.h.

#define NOP   asm volatile("nop")

Definition at line 87 of file i2c.h.

#define QDEL   NOP; NOP; NOP; NOP; NOP

Definition at line 88 of file i2c.h.

#define READ   1

Definition at line 71 of file i2c.h.

#define SCL   PC2

Definition at line 79 of file i2c.h.

#define SCL_DDR   DDRC

Definition at line 81 of file i2c.h.

#define SCL_HI   SCL_PORT |= (1 << SCL)

Definition at line 94 of file i2c.h.

#define SCL_LO   SCL_PORT &= ~(1 << SCL)

Definition at line 95 of file i2c.h.

#define SCL_PIN   PINC

Definition at line 83 of file i2c.h.

#define SCL_PORT   PORTC

Definition at line 85 of file i2c.h.

#define SCL_TOGGLE   HDEL; SCL_HI; HDEL; SCL_LO

Definition at line 97 of file i2c.h.

#define SDA   PC3

Definition at line 78 of file i2c.h.

#define SDA_DDR   DDRC

Definition at line 80 of file i2c.h.

#define SDA_HI   SDA_PORT |= (1 << SDA)

Definition at line 91 of file i2c.h.

#define SDA_LO   SDA_PORT &= ~(1 << SDA)

Definition at line 92 of file i2c.h.

#define SDA_PIN   PINC

Definition at line 82 of file i2c.h.

#define SDA_PORT   PORTC

Definition at line 84 of file i2c.h.

#define WRITE   0

Definition at line 72 of file i2c.h.


Function Documentation

void InitI2C ( void   ) 

unsigned char ReadI2C ( unsigned char  nak  ) 

unsigned char StartI2C ( unsigned char  device  ) 

void StopI2C ( void   ) 

unsigned char WriteI2C ( unsigned char  byte  ) 


Generated on Sun Nov 18 18:30:58 2007 for ASURO Library by  doxygen 1.5.1-p1