Forum: Mikrocontroller und Digitale Elektronik Fractional Baud Rate?


von Anton (Gast)


Lesenswert?

Guten Tag.

Ich habe eine kleine Frage zu 'Baud Rate Generatoren'. Wie wird die 
'fractional baud rate' auf Hardwareebene erzeugt (Register etc.)?  Über 
eine Erklärung oder einen Link würde ich mich freuen.

Anton

von Falk B. (falk)


Lesenswert?

Anton schrieb:
> Ich habe eine kleine Frage zu 'Baud Rate Generatoren'. Wie wird die
> 'fractional baud rate' auf Hardwareebene erzeugt (Register etc.)?  Über
> eine Erklärung oder einen Link würde ich mich freuen.

So ähnlich wie bei DDS, der Zähler läßt Takte aus oder fügt 
zusätzliche ein.

von W.S. (Gast)


Lesenswert?

Anton schrieb:
> Ich habe eine kleine Frage...

Ein normaler Teiler teilt so, daß er bis zu einer gewünschten Anzahl 
Perioden des Eingangssignales zählt und sich dann zurücksetzt, so daß 
das Spielchen erneut stattfindet. Der Teilungswert kann also nur 
ganzzahlig sein.

Hat so ein Zähler jedoch einen "fraktionalen Teil", dann geht das so, 
daß er beim Zählen in jeder zweiten Runde (oder dritten Runde oder so 
weiter) eine Periode des Eingangssignales beim Zählen ausläßt.

Beispiel:
Man will die Frequenz eines Eingangssignales durch 100.5 teilen. Da 
zählt der Zähler in der 1. Runde bis 100 Impulse und läßt in der 2. 
Runde einen Impuls aus, womit der Endstand dort auch 100 ist, aber es 
waren 101 Eingangsimpulse. Das macht, daß aus 201 Eingangsimpulsen 2 
Ausgangsimpulse werden. Effektiv also durch 100.5 geteilt.
Natürlich jittert das Ausgangssignal, aber wenn es der Zähler einer PLL 
ist, dann sorgt die Bandbreite (sprich Filterung) im Rückkopplungszweig 
dafür, daß der Oszillator, der die Eingangsimpulse liefert, deutlich 
weniger jittert. Dieses Beispiel war nur für 1 fraktionales Bit, aber 
zumeit gibt es mehrere solche. Da muß dann der Hersteller zusehen, wie 
er das Auslassen von Eingangsimpulsen so über die Zeit verteilt, daß das 
Jittern möglichst klein und gut wegfilterbar ist. Da kommen auch 
Sigma-Delta-Modulatoren ins Spiel, aber das ist ein anderes Thema.


Falk B. schrieb:
> So ähnlich wie bei DDS, der Zähler läßt Takte aus oder fügt
> zusätzliche ein.

Nö, eben NICHT wie ein DDS. Das ist etwas ganz anderes.

W.S.

von Petra (Gast)


Lesenswert?

Dieses System wurde in den 80er bei PLL Regelung in HF Messgeräten 
gemacht. Wie W.S. schreibt, war es die Kunst der Schaltungsdesigner 
ungerade Teilungsverhältnisse jitterarm auszuregeln.

von Falk B. (falk)


Lesenswert?

W.S. schrieb:
>> So ähnlich wie bei DDS, der Zähler läßt Takte aus oder fügt
>> zusätzliche ein.
>
> Nö, eben NICHT wie ein DDS. Das ist etwas ganz anderes.

Klar, DU musst es ja wissen!

von Anton (Gast)


Lesenswert?

Guten Morgen.

Vielen Dank für eure Antworten. :)

Gestern gefunden (Datasheet RP2040):

"The clock dividers are 16-bit integer, 8-bit fractional, with 
first-order delta-sigma for the fractional divider. The clock divisor 
can vary between 1 and 65536, in increments of 1/256."

Anton

von Olaf (Gast)


Lesenswert?

> The clock divisor can vary between 1 and 65536, in increments of 1/256."

Wie ich schon in dem anderen Thread anmerkte, man muss die 
Nebenbedingungen bezueglich minimaler und maximaler Frequenz, am 
Eingang, in der PLL und am Ausgang einhalten! Wer da glaubt einen auf 
doof machen zu koennen wird staunen.

Und wer ernsthafte Dinge im Bereich Audio oder Messtechnik macht der 
sollte auch dringend ueber den Jitter nachdenken.

Olaf

von Falk B. (falk)


Lesenswert?

Olaf schrieb:
> Wie ich schon in dem anderen Thread anmerkte, man muss die
> Nebenbedingungen bezueglich minimaler und maximaler Frequenz, am
> Eingang, in der PLL und am Ausgang einhalten! Wer da glaubt einen auf
> doof machen zu koennen wird staunen.

Wo bitte kommt bei einem UART eine PLL zum EInsatz?

> Und wer ernsthafte Dinge im Bereich Audio oder Messtechnik macht der
> sollte auch dringend ueber den Jitter nachdenken.

Dito. Was hat das mit einem UART zu tun? Der UART verkraftet den Jitter!

von W.S. (Gast)


Lesenswert?

Falk B. schrieb:
> Klar, DU musst es ja wissen!

ICH weiß das. Aber du nicht. Dennoch sehe ich das Ganze als einen 
kleinen Fortschritt, weil du deinen Beitrag nicht mit "Blödsinn" oder 
einer ähnlichartigen Bemerkung verziert hast.

W.S.

von Olaf (Gast)


Lesenswert?

> Wo bitte kommt bei einem UART eine PLL zum EInsatz?

Kannst du nicht lesen? Ich schrieb oder Audio oder Messtechnik.

Aber natuerlich gibt es auch UART mit fraktionalem Teiler. Silabs/Gecko 
hat das bei ihren LowpowerUart. Das fuehrt dann dazu das 
aufeinanderfolgende Bits im Byte verschieden breit sind. Das 
verschlechtert dir dann die Systemreserve bei der Datenuebertragung.

Olaf

von Norbert (Gast)


Lesenswert?

Olaf schrieb:
> Aber natuerlich gibt es auch UART mit fraktionalem Teiler.
> Das fuehrt dann dazu das aufeinanderfolgende Bits im Byte
> verschieden breit sind. Das verschlechtert dir dann die
> Systemreserve bei der Datenuebertragung.

Ganz im Gegenteil.

Gerade bei Quarzfrequenzen die nicht auf UART-Übertragungen ausgelegt 
sind, verbessert es sogar signifikant die Fehlerrate. Der µs Jitter 
stört da nicht im Geringsten, sondern »rückt« die Bits wieder ins 
Raster.

von Falk B. (falk)


Lesenswert?

Olaf schrieb:
>> Wo bitte kommt bei einem UART eine PLL zum EInsatz?
>
> Kannst du nicht lesen? Ich schrieb oder Audio oder Messtechnik.

Sagt der Richtige! Die Diskussion hier dreht sich um UART, nicht um 
Audio oder Meßtechnik!

> Aber natuerlich gibt es auch UART mit fraktionalem Teiler. Silabs/Gecko
> hat das bei ihren LowpowerUart.

MSP430 und viele andere auch.

> Das fuehrt dann dazu das
> aufeinanderfolgende Bits im Byte verschieden breit sind. Das
> verschlechtert dir dann die Systemreserve bei der Datenuebertragung.

Quark. Man erreicht, daß man selbst mit SEHR kleinen Systemtakten 
relativ hohe Baudraten solide fahren kann, z.B. 9k6 Baud bei 32.768 kHz 
Uhrenquarz.

von Peter D. (peda)


Lesenswert?

Als ich 1990 mit MCs angefangen habe, da hab ich dem 8051 immer ein 
11,059MHz Quarz verpaßt. Das geht ohne jeden Rundungsfehler bis 
115200Baud.
Und ein Atmega2560 läuft mit 14,7456MHz gleicht gut, wie mit 16MHz.

Heutzutage kann aber niemand mehr rechnen und nimmt glatte MHz-Quarze 
und versteht nicht, warum die UART Übertragungsfehler macht.

von Purzel H. (hacky)


Lesenswert?

Nun ja, bis 2% Abweichung duerfen's sein. Mit Quarzen meist locker 
machbar bis an eine obere Grenze.

von Norbert (Gast)


Lesenswert?

Peter D. schrieb:
> Als ich 1990 mit MCs angefangen habe …
> Heutzutage … nimmt glatte MHz-Quarze
> und versteht nicht, warum die UART Übertragungsfehler macht.

Tja, da sind wir nun.
Gerade mal ein drittel Jahrhundert später.
Die Erde dreht sich zwar etwas langsamer,
aber geniale Denker der Moderne haben sich etwas ausgedacht:

/The fractional baud rate divider enables the use of any clock with a
frequency >3.6864MHz to act as UARTCLK, while it is still possible to 
generate all the standard baud rates./

(Aus einem weniger als 30 Jahre alten Datenblatt)

von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> Als ich 1990 mit MCs angefangen habe, da hab ich dem 8051 immer ein
> 11,059MHz Quarz verpaßt. Das geht ohne jeden Rundungsfehler bis
> 115200Baud.
> Und ein Atmega2560 läuft mit 14,7456MHz gleicht gut, wie mit 16MHz.

Eine merkwürdige Vorgehensweise, sich auf das unwichtigtse Timing zu 
konzentrieren.
Da nehme ich lieber 20 MHz und habe ein exaktes, jitterfreies Timing 
beginnend bei < 1 µs.

Den USB-Takt heutiger µCs aus 14,75 MHz zu erzeugen, dürfte maximal 
ungeschickt 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.