Serial Peripheral Interface: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
KKeine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
== SPI-Modi ==
== SPI-Modi ==


Wie schon angesprochen gibt es für das SPI verschiedene Takteinstellungen. Folgende vier Modi sind definiert:
Wie schon angesprochen gibt es für das SPI verschiedene Möglichkeiten Polarität und Phase des Taktes einzustellen. Folgende vier Modi sind definiert:


{| border="1"
{| border="1"
!Mode
!Mode
!CPOL
!CPOL (Clock Polarity)
!CPHA
!CPHA (Clock Phase)
|-
|-
|0
|0
Zeile 42: Zeile 42:
|}
|}


CPOL und CPHA lassen sich in den Konfigurationsregistern des Controllers einstellen. Beim [[AT91SAM]] hat sich Atmel ein kleines Extra einfallen lassen: hier heißt das Bit zur Einstellung der Clock Phase "NCPHA" und entspricht genau dem invertierten Wert von CPHA.


== Siehe auch ==
== Siehe auch ==

Version vom 10. Dezember 2006, 11:56 Uhr

Das Serial Peripheral Interface, kurz SPI oder auch Microwire genannt, ist ein Bus-System bestehend aus drei Leitungen für eine serielle synchrone Datenübertragung zwischen verschiedenen ICs.

Der Bus besteht aus folgenden Leitungen

  • MOSI (Master Out -> Slave In) oder auch SDO (Serial Data Out)
  • MISO (Master In <- Slave Out) oder auch SDI (Serial Data In)
  • SCK (Takt)

Zusätzlich zu diesen drei Leitungen wird für jeden Slave eine Slave Select (SS) oder auch Cable Select (CS) genannte Leitung benötigt, durch die der Master den Slave zur aktuellen Kommunikation selektiert. Dies geschieht dadurch, dass der Mater die SS/CS-Leitung von High nach Low zieht.

Für den SPI-Bus gibt es kein festgelegtes Protokoll. Die Clock-Polarität (CPOL) und Phase (CPHA) können ebenfalls von Slave zu Slave unterschiedlich sein.

Der Vorteil des SPI-Buses ist, dass er mit einer Taktfrequenz von mehreren Megaherz betrieben werden kann.

Es gibt viele verschiedene ICs, die als Slave an dem SPI-Bus betrieben werden können, diese gehen von einfachen Schieberegistern (siehe auch Porterweiterung mit SPI) bis hin zu RTCs oder Diplaytreibern mit vorgegebenem Protokoll.

Unter anderem werden die AVR-Microcontroller von Atmel über SPI ISP-programmiert, siehe dazu AVR In System Programmer.

SPI-Modi

Wie schon angesprochen gibt es für das SPI verschiedene Möglichkeiten Polarität und Phase des Taktes einzustellen. Folgende vier Modi sind definiert:

Mode CPOL (Clock Polarity) CPHA (Clock Phase)
0 0 0
1 0 1
2 1 0
3 1 1

CPOL und CPHA lassen sich in den Konfigurationsregistern des Controllers einstellen. Beim AT91SAM hat sich Atmel ein kleines Extra einfallen lassen: hier heißt das Bit zur Einstellung der Clock Phase "NCPHA" und entspricht genau dem invertierten Wert von CPHA.

Siehe auch

Weblinks