Forum: Mikrocontroller und Digitale Elektronik STM32F407 SD CARD SPI DMA CMSIS? Ohne HAL


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ismail A. (ismail)


Lesenswert?

Hat jemanden von euch SD CARD mit SPI DMA (CMSIS) STM32F407G gemacht, 
aber nicht HAl.

von J. S. (jojos)


Lesenswert?

OpenCM3, ChibiOS, NuttX und sicher viele andere machen das ohne HAL. 
Ansonsten wenn man meint HAL ist ja so schlecht: selber programmieren.
In libopencm3 finde ich gerade keinen Code für SD Karten, ich dachte die 
können das auch.
Der F4 hat aber auch ein SDIO Interface, damit ist die Datenübertragung 
deutlich schneller als mit 1 Bit SPI.

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

Man kann ja auch "HAL ohne HAL" machen. Nennt sich LL Driver
und lässt sich mit CubeMx ganz toll und automagisch
generieren. Ein klein wenig Mehrarbeit ist notwendig aber
bei der Generierung wird alles initialisiert und man kann
sicher sein dass alles dabei ist was man braucht. Nur
die diversen Handler müssen noch mit Leben (action)
gefüllt werden.

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Warum SPI? Der STM32F407 hat SDIO. Damit kannst du eine höhere und 
insbesondere garantierte (Speed Class) Geschwindigkeit erreichen. Geht 
natürlich mit und ohne HAL.

von Ismail A. (ismail)


Lesenswert?

Niklas G. schrieb:
> Warum SPI? Der STM32F407 hat SDIO. Damit kannst du eine höhere und
> insbesondere garantierte (Speed Class) Geschwindigkeit erreichen. Geht
> natürlich mit und ohne HAL.

SDIO HAL ist auch langsam, wenn Sie SDIO DMA CMSIS haben, ist auch Gut

von Ismail A. (ismail)


Lesenswert?

Wastl schrieb:
> Man kann ja auch "HAL ohne HAL" machen. Nennt sich LL Driver
> und lässt sich mit CubeMx ganz toll und automagisch
> generieren. Ein klein wenig Mehrarbeit ist notwendig aber
> bei der Generierung wird alles initialisiert und man kann
> sicher sein dass alles dabei ist was man braucht. Nur
> die diversen Handler müssen noch mit Leben (action)
> gefüllt werden.

Danke Wastl

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Ismail A. schrieb:
> SDIO HAL ist auch langsam

Naja, das sind nur ein paar Takte pro Paket. DMA ist sowieso Pflicht.

Ich habe den STM32F407 mit SDIO und DMA, ohne HAL, schon erfolgreich 
verwendet.

: Bearbeitet durch User
von Ismail A. (ismail)


Lesenswert?

J. S. schrieb:
> OpenCM3, ChibiOS, NuttX und sicher viele andere machen das ohne HAL.
> Ansonsten wenn man meint HAL ist ja so schlecht: selber programmieren.
> In libopencm3 finde ich gerade keinen Code für SD Karten, ich dachte die
> können das auch.
> Der F4 hat aber auch ein SDIO Interface, damit ist die Datenübertragung
> deutlich schneller als mit 1 Bit SPI.

SDIO DMA CMSIS kein Code im Internet. Alles Hal und ist langsam

von Ismail A. (ismail)


Lesenswert?

Niklas G. schrieb:
> Ismail A. schrieb:
>> SDIO HAL ist auch langsam
>
> Naja, das sind nur ein paar Takte pro Paket. DMA ist sowieso Pflicht.
>
> Ich habe den STM32F407 mit SDIO und DMA, ohne HAL, schon erfolgreich
> verwendet.

Code oder Link?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Ismail A. schrieb:
> SDIO DMA CMSIS kein Code im Internet

Selber schreiben!

Ismail A. schrieb:
> Alles Hal und ist langsam

Was genau ist langsam? Kannst du es genau quantifizieren?

Ismail A. schrieb:
> Code oder Link?

Wie viel bezahlst du?

: Bearbeitet durch User
von Ismail A. (ismail)


Lesenswert?

Niklas G. schrieb:
> Ismail A. schrieb:
>> SDIO DMA CMSIS kein Code im Internet
>
> Selber schreiben!
>
> Ismail A. schrieb:
>> Alles Hal und ist langsam
>
> Was genau ist langsam? Kannst du es genau quantifizieren?
>
> Ismail A. schrieb:
>> Code oder Link?
>
> Wie viel bezahlst du?

wie viel willst du?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Ismail A. schrieb:
> wie viel willst du?

Hängt von der Stückzahl ab. Und davon, ob du den Sourcecode kaufst oder 
nur ein Binary.

: Bearbeitet durch User
von Ismail A. (ismail)


Lesenswert?

Ismail A. schrieb:
> Niklas G. schrieb:
>> Ismail A. schrieb:
>>> SDIO DMA CMSIS kein Code im Internet
>>
>> Selber schreiben!
>>
>> Ismail A. schrieb:
>>> Alles Hal und ist langsam
>>
>> Was genau ist langsam? Kannst du es genau quantifizieren?
>>
>> Ismail A. schrieb:
>>> Code oder Link?
>>
>> Wie viel bezahlst du?
>
> wie viel willst du?

ja kann man quantifizieren, ich habe Video Player und habe ich einmal 
mit SPI dma und einaml Sdio DMA HAL geamcht
SPI DMA war schneller

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Ismail A. schrieb:
> habe ich einmal mit SPI dma und einaml Sdio DMA HAL geamcht
> SPI DMA war schneller

Kann nicht sein, dann hast du etwas sehr falsch gemacht bei SDIO.

von Ismail A. (ismail)


Lesenswert?

Niklas G. schrieb:
> Ismail A. schrieb:
>> wie viel willst du?
>
> Hängt von der Stückzahl ab. Und davon, ob du den Sourcecode kaufst oder
> nur ein Binary.

Sourcecode nur STM32CubeIde

von Ismail A. (ismail)


Lesenswert?

Niklas G. schrieb:
> Ismail A. schrieb:
>> habe ich einmal mit SPI dma und einaml Sdio DMA HAL geamcht
>> SPI DMA war schneller
>
> Kann nicht sein, dann hast du etwas sehr falsch gemacht bei SDIO.

Galube ich, Weil Code fuktioniert

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Ismail A. schrieb:
> Sourcecode nur STM32CubeIde

€50000 für alle Nutzungsrechte mit Sourcecode.

Ismail A. schrieb:
> Galube ich, Weil Code fuktioniert

Welche Funktion genau ist denn so langsam? Wie lange (µs) braucht sie 
genau? Bitte Oszillogramme der Datenübertragung zeigen, wo gleichzeitig 
per Toggle-Pin gezeigt wird, wann diese langsame Funktion läuft. Nur 
weil etwas "funktioniert" ist es noch lange nicht optimal.

Auch die Errate vom STM32F407 beachten, der kann SDIO nur mit 37 MHz 
(Silicon Bug, repariert bei neueren Controllern)

: Bearbeitet durch User
von Ismail A. (ismail)


Lesenswert?

Niklas G. schrieb:
> Ismail A. schrieb:
>> Sourcecode nur STM32CubeIde
>
> €50000 für alle Nutzungsrechte mit Sourcecode.
>
> Ismail A. schrieb:
>> Galube ich, Weil Code fuktioniert
>
> Welche Funktion genau ist denn so langsam? Wie lange (µs) braucht sie
> genau? Bitte Oszillogramme der Datenübertragung zeigen, wo gleichzeitig
> per Toggle-Pin gezeigt wird, wann diese langsame Funktion läuft. Nur
> weil etwas "funktioniert" ist es noch lange nicht optimal.
>
> Auch die Errate vom STM32F407 beachten, der kann SDIO nur mit 37 MHz
> (Silicon Bug, repariert bei neueren Controllern)

mein Code nur für bastlen nicht für Verkauf

ich habe leider kein Oscilloscope

wie kann man wissen 37 MHZ oder 48 Mhz?

langsam wenn JPG liest

hast du echt Code SDIO DMA CMSIS?

: Bearbeitet durch User
von J. S. (jojos)


Lesenswert?

Dann ist die jpeg Implementierung vielleicht eher das Problem, oder das 
Dateisystem bzw die Parametrierung dazu.
HAL macht herzlich wenig beim Transfer mit DMA, das sind wenige 
Registerzugriffe um den DMA zu starten.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Ismail A. schrieb:
> mein Code nur für bastlen nicht für Verkauf

Tja, dein Problem...

Ismail A. schrieb:
> wie kann man wissen 37 MHZ oder 48 Mhz?

Das hast du in CLKDIV eingestellt. Die 37 erreicht man aber nur mit 
einem "PLL-Hack". Siehe Errata Sheet.

Ismail A. schrieb:
> langsam wenn JPG liest

Wie langsam genau? Welche Funktion der HAL ist langsam?

Ismail A. schrieb:
> hast du echt Code SDIO DMA CMSIS?

Ja. Und viele andere sicherlich auch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.