Aus RN-Wissen.de
Version vom 18. November 2006, 19:19 Uhr von Linux 80 (Diskussion | Beiträge) (Neu)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Rasenmaehroboter Test

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.


Hauptfunktionen

Die Hauptfunktionen sind

  • Three-wire Modus, bzw. SPI
  • Two-wire Modus, bzw. TWI oder I2C


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

  • I2C - Details zu I2C
  • TWI - Two-wire Serial Interface
  • SPI - Serial Peripheral Interface


Baustelle

Baustelle.gif 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)


LiFePO4 Speicher Test