Forum: Mikrocontroller und Digitale Elektronik SPI mit 16C80 von Mitsubishi


von Andy (Gast)


Lesenswert?

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

von Judge (Gast)


Lesenswert?

Ist korrekt. Hast Du vielleicht bei der Initialisierung was falsch
gemacht?

von Alex G (Gast)


Lesenswert?

SPI kennt mehrere Modi. Suche mal im Forum, es gab schon mal ein Paar
Codebeispiele für den M16C60.

von Gast (Gast)


Lesenswert?

Also mein 16C62 komuniziert mit meiner SD-Karte im Syncron-Modus 100%ig.

von Andy (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.