Forum: Mikrocontroller und Digitale Elektronik STM32F4 Uart baudrate Float-Teiler


von M. Н. (Gast)


Lesenswert?

Hallo Leute,

ich habe den UART des STM32F407VG in Betrieb genommen.

Ich habe eine theoretische Frage:

Man kann beim Uart den Prescaler für die Baudrate über eine Floatzahl 
einstellen. wie funktioniert das (also in Hardware), dass man z.B. 1MHz 
duch 1,75 teilt.

Vielen Dank

von holger (Gast)


Lesenswert?

>Man kann beim Uart den Prescaler für die Baudrate über eine Floatzahl
>einstellen. wie funktioniert das (also in Hardware), dass man z.B. 1MHz
>duch 1,75 teilt.

Das kann man nicht. Wie kommst du darauf?

von Schaulus Tiger (Gast)


Lesenswert?

"I daresay you haven't had much practice," said the Queen. "When I was 
your age, I always did it for half-an-hour a day. Why, sometimes I've 
believed as many as six impossible things before breakfast." (Lewis 
Carroll)

Ich glaube, ST "missbraucht" den sowieso vorhandenen 16:1 Teiler und 
schaltet ihn auf 28:1 um (z.B., um auf 1.75 zu kommen). Für den TX-Takt 
geht das ohne weiteres, der ist ja normal das 16-fache der Baudrate.

Der Empfänger braucht etwas mehr Aufwand, er tastet jedes Bit 
normalerweise 3 Mal ab, jeweils beim Zählerstand 8,9 und 10 des 
Vorteilers. An der Stelle hat ST wahrscheinlich einen Multiplexer und 
etwas Logik spendiert.

Float point braucht man dafür nicht. Die Bits im BRR sind so praktisch 
angelegt, dass man den APB-Takt einfach durch die Baudrate teilen kann. 
Runden sollte man schon noch, aber alles darf (int) sein.

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.