Um das SPI an einem Praxisbeispiel anzuwenden, schauen wir uns den RFID-Leser RFID-RC522 an. 
Der RFID Leser bietet unter anderem die Möglichkeit, über den SPI Bus zu kommunizieren. 

Auf dem RFID Leser ist der Mikrocontroller MFRC522 verbaut. Das Datenblatt dazu ist beim Hersteller abrufbar. Dort sind auch Informationen über die SPI Kommunikation dargestellt. 

Auszüge aus dem Datenblatt zum MFRC522 
Hier ist eine Beschaltungsübersicht dargestellt.
Ähnlich wie im vorherigen Abschnitt. Der Pin NSS ist hier derselbe wie SS. Der Buchstabe "N"
wird hier lediglich hinzugefügt, um zu betonen, dass die Slave Auswahl mit negativer Logik 
funktioniert, das heißt ein Low Pegel aktiviert diesen Chip, bei einem High Pegel werden alle 
Informationen über MISO und MOSI ignoriert.

SPI Verbindung zum Host
Abbildung: SPI
Quelle: BBS2 Wolfsburg

In dieser Tabelle wird erklärt, in welcher Art und Weise der MFRC522 auf ein empfangenes Byte 
vom Master reagiert. Dabei wird ein Byte empfangen, in dem eine Registeradresse enthalten ist. Im nächsten Takt wird dann der Inhalt dieses
Registers zurückgegeben. 


MOSI and Miso byte order
Line Byte 0 Byte 1 Byte 2 To Byte n Byte n + 1
MOSI address 0 data 0 data 1 data n - 1 data n
MISO X X X X X
 
X = Egal
Anmerkung: MSB muss zuerst gesendet werden

Zum Schreiben von Inhalten in die Register des MFRC522 muss zunächst ein Adressbyte und 
nachfolgend die Datenbytes per SPI an den Mikrocontroller übermittelt werden. Dabei werden keine Daten zurückgeschickt. 


MOSI and Miso byte order
Line Byte 0 Byte 1 Byte 2 To Byte n Byte n + 1
MOSI address 0 data 0 data 1 data n - 1 data n
MISO X X X X X
 
X = Egal
Anmerkung: MSB muss zuerst gesendet werden

Damit der Mikrocontroller weiß, ob gelesen oder geschrieben werden soll, muss das MSB 
des Adress Byte 0 mit einer 1 bzw 0 beschrieben
werden. Die Bytes 6-1 dienen zur Adressierung. Das LSB wird mit 0 Terminiert, um das Ende des
Byte 0 zu markieren. 

Address byte 0 register; address MOSI
7 (MSB) 6 5 4 3 2 1 0 (LSB)
1 = read address 0
0 = write






Zuletzt geändert: Montag, 5. Februar 2024, 11:37