STM32F765 SD Lese-/Schreibproblem mit HAL

Gast #5546470
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
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?
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.