USI: Unterschied zwischen den Versionen
Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Axelg (Diskussion | Beiträge) K (Kategorien: AVR I2C) |
Axelg (Diskussion | Beiträge) (→USI als I2C/TWI Interface: code korrigiert) |
||
Zeile 9: | Zeile 9: | ||
// 2-wire mode; Hold SCL on start and overflow; ext. clock | // 2-wire mode; Hold SCL on start and overflow; ext. clock | ||
USICR |= (1<<USIWM1) | (1<<USIWM0) | (1<<USICS1); | USICR |= (1<<USIWM1) | (1<<USIWM0) | (1<<USICS1); | ||
</pre> | </pre> | ||
Version vom 18. Januar 2006, 20:03 Uhr
Das Universal serial Interface USI ist eine in manchen Atmelcontrollern (z.B. attinny26, attiny2313) verwendete serielle Schnittstelle. Es kann unter anderem als TWI Interface, der Atmelvariante des I2C Buses, verwendet werden.
USI als I2C/TWI Interface
// 2-wire mode; Hold SCL on start and overflow; ext. clock USICR |= (1<<USIWM1) | (1<<USIWM0) | (1<<USICS1);
Mit dieser Konfiguration gelten folgende Tabellen für den SDA respektive SCL Pin:
DDR SDA | Shiftreg. Bit 7 | PORT SDA | PIN SDA |
0 | X | X | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
DDR SCL | Startdet. | Overflowdet. | PORT SCL | PIN SCL |
0 | X | X | X | 1 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 |