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?
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.
Und warum entfällt das reinschieben des Bytes dann beim Software-SPI?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.