Forum: Mikrocontroller und Digitale Elektronik STM32F765 SD Lese-/Schreibproblem mit HAL


von Sonic (Gast)


Lesenswert?

Hallo zusammen,

ich habe folgendes Problem:
Für ein kleines Projekt möchte ich mit einem STM32F765 ARM Controller 
auf eine microSD Karte schreiben und lesen können.
Ich habe mir hierfür auch ausführlich die Beispielsprojekte der 
Discovery und Evalboards angeschaut und nach diesen Vorgaben die 
Routinen aufgebaut.
Ich benutze für das Projekt die vom CubeMx erzeugten HAL Libraries und 
die TrueStudio IDE.
Nun ist es so, dass ich die SD Karte initialisieren kann und alle 
gelesenen SD Karten Infos sind absolut korrekt. Zusätzlich habe ich die 
Command Line dekodiert, und auch hier sieht alles sehr gut aus, die 
Signale passen alle.
Was allerdings überhaupt nicht funktioniert sind alle sonstigen 
Funktionen. Sobald ich den SD Karten Status abfrage, egal zu welchen 
Zeitpunkt, bekomme ich als Rückgabewert immer cardstate = 
HAL_SD_CARD_TRANSFER;
Eine Änderung des Clocktakts hat nichts gebracht, genauso wenig wie 
eingabute Wartezeiten oder Warteschleifen. Die Karte scheint immer 
irgendwelche Daten zu transferieren, obwohl ich selbst zu keinem 
Zeitpunkt auf die Karte schreibe oder lese.
Hat jemand eine Idee was hier das Problem sein könnte?
Ich habe SD und SDHC Karten probiert und auch schon verschiedene SD 
Karten des selben Typs, aber keine funktioniert.

Vielen Dank im Voraus

von Jim M. (turboj)


Lesenswert?

Sonic schrieb:
> Sobald ich den SD Karten Status abfrage

Ich hatte mal eine Sorte (Samsung 2GB MicroSD) die sich jedes Mal 
aufhingen wenn man das SD_STATUS Register per SPI abfragt. Die brauchten 
danach einen Power-On Reset.

Der Register Inhalt kam noch normal über den Bus rüber, aber dann ging 
gar nix mehr.

Ansonsten kann ich der Frage nicht genau entnehmen ob hier SPI oder 
SD(HC) Protokoll gesprochen wird. Welche Kommandos werden zur 
Initialisierung gesendet?

von Sonic (Gast)


Lesenswert?

Sorry, habe ganz vergessen den verwendeten Bus zu nennen.
Ich betreibe die microSD Karte am 4-Bit SDIO Wide Bus.
Aber auch wenn ich auf 1-Bit umschalte bekomme ich dasselbe Verhalten.
Selbst Initialisieren mache ich in dem Fall nicht, ich habe mir den 
Basiscode vom CubeMX erzeugen lassen, der die Karte auch dementsprechend 
initialisiert.

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.