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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.