mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F107 SD Karte über SPI


Autor: Tobias K. (misterlux)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist die Polarität des Taktsignals richtig herum?

Autor: Tobias K. (misterlux)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Ist die Polarität des Taktsignals richtig herum?

Hallo, anbei das Bild zum ersten Kommando beim Initialisieren (CMD0).

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobias K. (misterlux)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.