USI (Universal Serial Interface) steht für Universelle serielle Schnittstelle, die vor allem in kleineren Atmel AVR Controllern, wie zB. beim ATTiny2313, aber auch in einigen ATMegas anzutreffen ist.
Wie der Name schon aussagt, kann diese Schnittstelle universell eingestellt werden um unterschiedliche Funktionen auszuführen. Hauptsächlich gedacht um verschiedene Arten der seriellen Kommunikation auszuüben.
Inhaltsverzeichnis
Hauptfunktionen
Die Hauptfunktionen sind
Alternative Funktionen
Wenn die Schnittstelle nicht für die serielle Kommunikation verwendet wird, gibt es, wegen der universellen Auslegung, weitere Möglichkeiten sie trotzdem zu verwenden. Dies wären:
- Halb-Duplex Asynchrone Datenübertragung
- 4-Bit Counter (0-15)
- 12-Bit Timer/Counter in Verbindung mit Timer0
- externer Interrupt, löst bei jeder Flanke aus
- Software Interrupt, kann durch setzen in einem USI-Register ausgelöst werden
USI-Register
Hier eine kurze Beschreibung der für den USI Betrieb notwendigen Register
- USIDR
- USI Data Register, alle 8 bit
- Über dieses Register wird direkt auf das serielle Register zugegriffen, ohne Puffer dazwischen, auch während gerade ein Byte übertragen wird, anders als bei echtem TWI !
- USISR
- USI Status Register
Bit: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Name: | USISIF | USIOIF | USIPF | USIDC | USICNT3 | USICNT2 | USICNT1 | USICNT0 |
- USICR
- USI Control Register
Bit: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Name: | USISIE | USIOIE | USIWM1 | USIWM0 | USICS1 | USICS0 | USICLK | USITC |
- die Hauptschaltstelle befindet sich hier, für
- Modus einstellen, Taktquelle auswählen und Interruptanforderungen aktivieren
In ganz neuen AVR Tiny Controllern (wie dem ATTiny261) sind zwei weitere Register zu finden:
- USIBR
- USI Buffer Register, alle 8 bit
- Dieses Register kann nur gelesen werden, entspricht aber eigentlich dem USIDR-Register. Es hat den Vorteil, das das letzte empfangene Byte hier gehalten wird, und die zeitliche Abfolge zum auslesen der Daten aus USIDR nicht mehr so kritisch ist, da zB. nach einem ACK bei TWI das USIDR schon um ein Bit weitergeschoben wird.
- USIPP
- USI Pin Position
Bit: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Name: | – | – | – | – | – | – | – | USIPOS |
- Es ist möglich, die Datenleitungen auf einen alternativen Port zu legen, wenn dieses Bit gesetzt wird. Die alternative Position ist aber auch festgelegt, man schaltet nur zwischen zwei Möglichkeiten um.
Quellen
Atmel-AVR-Datenblätter
Siehe auch
Baustelle
An diesem Artikel arbeitet gerade Mitglied Linux_80.
Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen. Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor Linux_80 per PM / Mail oder Forum nachfragen ob er vergessen wurde. |
--Linux 80 19:19, 18. Nov 2006 (CET)