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
Bitte melde dich an, um einen Beitrag zu schreiben.