Forum: Mikrocontroller und Digitale Elektronik STM32F7 FatFS mit µSD


von Dennis X. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe auf einem STM32F7 Board eine SD Karte mit dem SDMMC Interface 
angeschlossen. Das ganze luft über 4 Bit.
Die Initialisierung wird ja fast komplett durch CubeMX erzeugt. Ich hab 
das Beispiel von ST unter die Lupe genommen und bei mir eingefügt. 
Einfach eine SD Karte einbinden, formattieren, Datei anlegen und rein 
schreiben. Das ganze nochmal aufmachen etc.
Leider kommt bei mir immer der Fehler 11 -> FR_INVALID_DRIVE von 
f_mount() zurück.
Getestet wird das ganze hier immer mit einer 8 GB Speicherkarte mit 
FAT32 und einer 32 MB (ja, MB sowas solls geben) mit FAT16.

Hat das jemand mal gemacht? Gibts da noch irgendetwas einzustellen?! Im 
Grunde ist das alles richtig initialisiert und dann eben das FatFS 
Beispielprogramm von ST.

Wäre sehr dankbar!
Grüße
Dennis

von macload1 (Gast)


Lesenswert?

Hallo Deniis,

Ich hab noch nicht getestet welchen Fehler es gibt wenn man die SD Karte 
nicht auf 512 Bytes Sektoregröße formatiert, aber das könnte des Rätsels 
Lösung sein.

Die Beispielprogramme von ST benutzen nämlich eine feste Sektorengröße, 
die auf 512 Bytes festgelegt ist, also, wenn deine SD Karte auf eine 
andere Sektorengröße formatiert ist, kann sie nicht korrekt gelesen 
werden.

macload1

von Dennis X. (Gast)


Lesenswert?

Hallo,
danke für den Tipp... Dadurch, dass im Code auch dieser f_mkfs() mit 
drin ist vermute ich fast, dass es egal ist.
Eine Karte mit
mkfs.vfat -F 32 -S 512 /debv/mmcblk0
formattiert hat jedenfalls gerade eben nicht funktioniert.
Ich versuche mal noch eine 4 GB Karte mit in mein Sortiment aufzunehmen.

von macload1 (Gast)


Lesenswert?

Dennis,
Was genau bei der Formatierung schief gelaufen ist, kann man deiner 
Antwort ja nicht entnehmen, aber hast du vor der Formatierung ein:
sudo umount /debv/mmcblk0
versucht?

von Jim M. (turboj)


Lesenswert?

macload1 schrieb:
> Ich hab noch nicht getestet welchen Fehler es gibt wenn man die SD Karte
> nicht auf 512 Bytes Sektoregröße formatiert, aber das könnte des Rätsels
> Lösung sein.

SD und SDHC Karten sind immer mit 512 Byte Sektorgröße formatiert. SDHC 
arbeiten immer mit 512 Byte Sektoren.

Die Formatierung sollte man nicht vom PC aus ändern denn der 
Hersteller tut da eine optimierte FAT Partition drauf deren Offsets die 
FAT und Cluster an Page Grenzen (4MB bei SDHC) ausrichtet. Das macht 
mkfs.vfat nicht ohne weiteres.

von Dennis X. (Gast)


Lesenswert?

macload1 schrieb:
> Was genau bei der Formatierung schief gelaufen ist, kann man deiner
> Antwort ja nicht entnehmen

nichts ist bei der Formattierung schief gelaufen. Und den umount hatte 
ich natürlich gemacht.
4GB hab ich nirgends "offline" gefunden, werde mir wahrscheinlich noch 
eine zum Testen bestellen. Komme hier aber gerade definitiv nicht mehr 
weiter.

von W.S. (Gast)


Lesenswert?

Dennis X. schrieb:
> Die Initialisierung wird ja fast komplett durch CubeMX erzeugt.

Dann solltest du dir selbige mal etwas genauer unte die Lupe nehmen. Bei 
"invalid Drive" rieche ich, daß die SD-Karten-Erkennung sprich 
Initialisierung entweder falsch läuft - oder schlichtweg garnicht 
stattfindet.

Bau du dir mal eine Meldung in den von dir benutzten seriellen Kanal 
ein, die dir anzeigt, was die Kartenerkennung/Überwachung sagt und was 
beim Reinstecken der Karte die Initialisierung für eine Karte gefunden 
zu haben glaubt.

W.S.

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.