Forum: Mikrocontroller und Digitale Elektronik Cortex M4: kleine Baudrate für USART


von Detlef _. (detlef_a)


Lesenswert?

Hallo Cortex freaks,

ich betreibe einen STM32F405 Cortex M4 von ST, bei dem möchte (muß :-/ ) 
ich den USART mit 600Baud betreiben.

Das funzt nicht.

Nach diesem Abend fummeln habe ich rausgefunden: Die USARTs werden mit 
der clock aus dem 'peripherel bus'betrieben, der läuft bei mir 
offensichtlich mit ca. 2.62MHz. Ich kann als fractional Divider maximal 
65536/16=4096 einstellen. 2.62MHz/4096 ~ 640Baud, Mist, knapp vorbei.

Frage:
Gibts für die USARTs noch einen Vorteiler, den ich nicht gefunden habe, 
so dass ich weiter runterkomme?
Wie kann ich die Frequenz auf diesen Bussen APB1/2 einstellen? Das will 
ich eigentlich nicht ändern, weil ich dann die ganzen Timer 
wahrscheinlich auch umstricken muß.

Danke
Cheers
Gute Nacht
Detlef

von Jojo S. (Gast)


Lesenswert?

So eine lahme Ausgabe bei so einem Rennpferd, warum dann nicht ein 
Software UART?

von (prx) A. K. (prx)


Lesenswert?

Detlef _. schrieb:
> Wie kann ich die Frequenz auf diesen Bussen APB1/2 einstellen? Das will
> ich eigentlich nicht ändern, weil ich dann die ganzen Timer
> wahrscheinlich auch umstricken muß.

Ja was jetzt? Willst du oder willst du nicht? Jedenfalls kann man die 
APB Takte runterteilen. Oft muss man das sogar, weil die APB Busse nur 
wesentlich geringere MHz verkraften als die CPU. Und das bei den beiden 
APB Bussen zudem verschieden ist. Bei deiner Taktrechnung hast du 
übrigens das 16x oversampling der UART vergessen.

Wie das geht: Siehe Reference, unter "Reset and clock control".

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.