STM32 Takteinstellungen: SDMMC < USB?

OP #6122216
Lesenswert?

Ich verwende einen STM32F722 mit SDMMC und USB. Leider habe ich ein 
Problem bei der Takt-Einstellung der einzelnen Komponenten.

Der Systemtakt soll um die 200 MHz liegen, und USB benötigt genau 48 
MHz. Im CubeMX-Tool habe ich für den SDMMC-Takt die Auswahl zwischen 
Systemtakt (zu viel) und PLL48CLK. Letzteres ist aber immer gleich dem 
Takt für USB, also 48 MHz. Das ist für meine uSD-Karten leider zu viel.

Kann ich den SDMMC-Takt auf 40 MHz reduzieren, ohne Systemtakt und 
USB-Takt zu verändern?
OP #6122331
Lesenswert?

Bauform B. schrieb:
> Mein RM sagt: das SDMMC-Modul verträgt max. 48MHz, das ist auch der
> empfohlene Default. Die Karte sieht einen (viel) niedrigeren Takt,
> nämlich 48MHz/CLKDIV (im Register SDMMC_CLKCR).

Und ich möchte SDMMC mit weniger als 48 MHz betreiben, weil sonst der 
f_mount fehlschlägt.

Oder ist der Divider programmierbar? -- Achso, natürlich, das ist DER 
Divider. Der ist bei mir auf BYPASS gesetzt, aber selbst ein Minimalwert 
von 2 ergibt einen zu niedrigen Takt von 24 MHz.
Gast #6122349
Lesenswert?

Peter M. schrieb:
> Das ist für meine uSD-Karten leider zu viel.

Wie kann das sein? Der High-Speed SD-Bus ist auf 50 MHz spezifiziert. 
Schon eher möglich ist dass das PCB-Layout die Frequenz nicht schafft.

Peter M. schrieb:
> Oder ist der Divider programmierbar?

Natürlich, du musst ihn sogar programmieren, um die Karte 
spezifikationsgemäß erst mit 400kHz anzusteuern. Danach kannst du die 
High-Speed Funktion in der Karte über CMD6 aktivieren, und dann das 
SDMMC-Interface über CLKDIV auf 48 MHz schalten.

Die alten STM32F407 haben einen Hardware-Bug, der das Abschalten des 
Prescalers (CLKDIV) verhindern, sodass man die 48 MHz nicht erreichen 
kann. Beim F7 ist das aber behoben.
OP #6122374
Lesenswert?

Programmierer schrieb:
> Wie kann das sein? Der High-Speed SD-Bus ist auf 50 MHz spezifiziert.
> Schon eher möglich ist dass das PCB-Layout die Frequenz nicht schafft.

Oh, das ist natürlich auch möglich. Ich hatte aber den Eindruck, dass 
mache Karten höhere Taktfrequenzen vertragen als andere.

> Natürlich, du musst ihn sogar programmieren, [...]

Mir ging es hier um den Takt während des regulären Betriebs.
Gast #6122385
Lesenswert?

Peter M. schrieb:
> Ich hatte aber den Eindruck, dass
> mache Karten höhere Taktfrequenzen vertragen als andere.

Kann eigentlich nicht. Entweder die Karte kann nur 25 MHz, oder bis 50 
MHz (High-Speed). Das kannst du auch abfragen (CMD6). Aber alle 
Nicht-Antiken Karten können auch UHS-I, und damit sowieso auch 
High-Speed (50 MHz).

Peter M. schrieb:
> Mir ging es hier um den Takt während des regulären Betriebs.

Ja, mir auch. Du musst den High-Speed Modus in der Karte erst 
aktivieren, bevor du den Takt auf über 25 MHz erhöhen kannst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren