Forum: Mikrocontroller und Digitale Elektronik Lesen von SD-Card Unterschied HW/SW-SPI


von Johannes (menschenskind)


Lesenswert?

Hallo

Ich habe hier den Code von Ulrich Radig und darin wird vor dem 
eigentlichen Lesen noch mal ein 0xFF an die Karte gesendet. Aber nur 
beim HW-SPI. Bei der SW-Variante entfällt dieses Byte.
Bei einer anderen CodeVariante für einen MSP-uC hab ich das auch so 
gesehen.

Könnt ihr mir sagen, womit das zusammenhängt?

von Christian R. (supachris)


Lesenswert?

Das ist das Dummy-Byte. Braucht man bei SPI, wenn man Lesen will. Lesen 
ist ja nix anderes, als ein Byte rein schieben und das, was 
rausgeschoben wird, gleichzeitig zu lesen. Reines Lesen geht bei SPI 
nicht, es muss immer gleichzeitig was geschrieben werden. SPI sind im 
Prinzip 2 zusammen geschaltete Schieberegister. Will man was raus haben, 
muss man was rein schieben.

von Johannes (menschenskind)


Lesenswert?

Und warum entfällt das reinschieben des Bytes dann beim Software-SPI?

von Nik B. (nikbamert)


Lesenswert?

Der entfällt nicht, aber er ist nicht direkt offensichtlich. Das 
Einlesen in Software SPI wird ja so gemacht dass du 8 mal einen Pin 
toggelst und dabei den MISO in ein Byte einliest. Währenddessen liegt 
aber am Soft-SPI-Ausgang MOSI ja auch entweder high oder low, dadurch 
sendet die Software SPI gleichzeitig auch beim Lesen die 8 Bits.
Der Unterschied ist der, dass du den Takt zum Lesen bei SoftwareSpi 
quasi selbst durch das toggeln erzeugst, wobei du der HardwareSPI 
erstmal ein Dummybyte vorwerfen musst, damit das HardwareSPI Modul 
überhaupt einmal anfängt einen Takt zu erzeugen (der läuft ja nicht 
daurnd)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.