Hallo, ich bin gerade dabei eine SD-Karte mit einem 16C80 anzusteuern. Da der Controller keine ausgewiesene SPI-Schnittstelle hat, habe ich einen USART im synchronen Modus benutzt. Nach mehreren Fehlversuchen habe ich die Hardwareansteuerung aufgegeben und das ganze SPI in Software nachgebildet und siehe da, die Karte spricht!!!!! Ich habe bis jetzt angenommen, dass SPI und USART im synch. Modus eigentlich das Gleiche ist? Stimmt das, oder bin ich auf dem Holzweg? Andy
Ist korrekt. Hast Du vielleicht bei der Initialisierung was falsch gemacht?
SPI kennt mehrere Modi. Suche mal im Forum, es gab schon mal ein Paar Codebeispiele für den M16C60.
Also mein 16C62 komuniziert mit meiner SD-Karte im Syncron-Modus 100%ig.
Hallo, nach dem zweiten Anlauf klappt es besser, mein Fehler war, dass ich die Datenübernahme auf steigende Clock-Flanke eingestellt habe, was laut der Doku für die SD-Karte richtig wäre. Aber auch wenn es jetzt klappt, hat meine Software-SPI-Lösung bessere Ergebnisse gebracht, ich hatte bessere Antwortzeiten. Mit der Hardwarelösung kriege ich oft als Antwort 0xFF, was Busy heißt, und oft muss ich den Befehl mehrmals wiederholen, um eine positive Antwort zu kriegen(das ist meistens bei CMD0 und CMD1 der Fall) @Gast: wie hast du deine Schnittstelle eingestellt? Andy
Hallo, - Während der Initialisierung 200kbps danach 8Mbps - MSB first - tx Data out at falling edge, rx data input at rising edge Evtl. muss du auch darauf achten, wann du das nächste Byte senden kannst (wann der Sende Interrupt ausgelöst wird) da der µC (je nach Typ und SIO) ein Byte im Puffer behält.
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.