STM32F107 SD Karte über SPI

OP #5620336
Lesenswert?

Hallo,
ich habe ein Problem beim Versuch von einem STM32F107 auf eine SD Karte 
per SPI zuzugreifen. Im Netz bin ich auf der Seite 
http://elm-chan.org/fsw/ff/00index_e.html auf eine Implementierung für 
ein STM32F100 gestoßen. Ich habe die Software so weit geändert, dass 
SPI2 verwendet wird mit den entsprechenden Pins.

Die Initialisierungsfunktion ist erfolgreich. Der Fehler tritt auf, 
sobald man die Karte formatiert oder mounten will. Beim Formatieren 
erhalte ich bei der Abfrage „GET_SECTOR_COUNT“ eine 2. Wenn ich die 
Karte ohne zu formatieren mounten will, bekomme ich bei der Abfrage des 
„Signature word“ im Boot Sector statt „0xAA55“ ein „0xAB54“.

Diesen Fehler bekomme ich bei mehreren Karten und auch mit mehreren 
Controllern. Die Signale sehen auf dem Oszilloskop gut aus. Um ein 
Fehler beim Auslesen der Register zu vermeiden, habe ich die Signale auf 
den Leitungen kontrolliert. Hier konnte ich den Wert „0xAB54“ 
bestätigen. Die SD Karte habe ich danach auch am PC ausgelesen und dort 
steht der Wert „0xAA55“ im BootSector.

Wo liegt mein Fehler? Gruß Tobias
#5620482
Lesenswert?

Tobias K. schrieb:
> Hallo, anbei das Bild zum ersten Kommando beim Initialisieren (CMD0).

Da sieht man verdammt viele Spikes auf dem Signal - da war was nicht 
korrekt am GND angeschlossen.


Was man im Bild leider überhaupt nicht sehen kann: Auf welcher Flanke 
übernimmt der µC die Daten der Karte? IMO gibt es obigen Fehler auch 
wenn Du die Daten an der falschen Flanke übernimmst.

SD Karten formatiert man besser nicht mit einem µC, sondern mit dem 
SD-Formatter. Hat was mit der (für User normalerweise nicht sichtbaren) 
internen Blockausrichtung zu tun.

Eine Analogie wäre das falsche Format (genauer: Partitionierung) von 
WinXP für Platten mit 4k Sektoren - bei SD sind die internen Sektoren 
aber noch viel größer.
OP #5620740
Lesenswert?

> Was man im Bild leider überhaupt nicht sehen kann: Auf welcher Flanke
> übernimmt der µC die Daten der Karte? IMO gibt es obigen Fehler auch
> wenn Du die Daten an der falschen Flanke übernimmst.

Mit den Flanken war ein guter Hinweis, mit einem anderen SPI Mode gab es 
keine Probleme mehr.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren