SD Karte mit STM32H7

OP #7140355
Lesenswert?
• ▲
▼
Hat hier mal jemand eine SDC mit dem H7 und HAL Code benutzt?
Ich habe lange gebraucht das zum Laufen zu bekommen, das Init hat 
funktioniert und die Karteninfo konnte gelesen werden. Aber Blöcke lesen 
mit oder ohne DMA ging nicht, es wurden keine Interrupts vom SDMMC1 
gefeuert.
Erst nachdem ich das hsd.Init.ClockPowerSave enabled hatte ging es. Habe 
noch nicht nachgesehen warum genau das so ist, vielleicht ist hier auch 
mal jemand darüber gestolpert?
https://github.com/JojoS62/COMPONENT_SDIO/blob/312ced360d7a24b8b0aa6a5f5e3df0b1736be652/TARGET_STM/TARGET_STM32H7/sdio_device.c#L148
Der Code ist noch dirty vom Umbau vom F7. Mit dem integrierten DMA im H7 
SDMMC ist sogar einfacher als für die F7 wenn man nicht die max. 
mögliche Speed der Karten ausreizen möchte. Cache Handling fehlt auch 
noch, habe erstmal mit abgeschaltetem D-Cache getestet.

Wie behandelt man einen Kartenwechsel richtig? Man muss ja wieder einen 
Init ausführen weil sich die SDC Geschwindigkeit geändert haben kann. 
Und dem Filesystem einen Tritt geben weil da ja auch alles ungültig 
geworden ist.

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.