AVR und Baudrate von 187,5 kbit/s

Gast #1020880
Lesenswert?

Kommt drauf an was du vorhast. Wenn der Hardware-UART zur Verfügung 
steht, nimm ihn doch. Falls du aus irgendeinem Grund keinen 
Hardware-UART benutzen kannst (z.B. weil er schon verwendet wird) dann 
musst du ihn eben per Software nachbilden.

Allerdings ist dann natürlich die CPU-Auslastung vom Controller deutlich 
größer, da du bei jedem zu sendenden Bit einen Pin schalten musst. Bei 
einem 12.xxx MHZ Quarz hast du dann noch ca. 65 Takte zwischen 2 Bits. 
Wenn der Controller nix anderes machen soll, ist das durchaus Ok....

Auf jeden Fall benötigst du jedoch einen Hardware-Timer und idealerweise 
einen Interrupt-fähigen Pin zum empfangen, sonst wird der Controller für 
nix anderes mehr Zeit haben...
Gast #1020946
Lesenswert?

"Bei einem 12.xxx MHZ Quarz hast du dann noch ca. 65 Takte zwischen 2 
Bits."

Das ist nicht gerade viel.  :o(

Also ist es wohl besser, den Hardware-UART zu benutzen. Ich weiss nur 
nicht, ob der auch so schnell ist. Deshalb eben hier die Frage. Meistens 
ist ja bei 115k Schluss. Wie sieht es hier beim AVR aus?

Gemäß der Theorie liegt bei einer f-cpu=18.432 MHz der UBRR bei 5,144 
(ergibt bei Rückrechnung mit 5 eine Baudrate von 192000 -> 2,4 % 
Abweichung). Aber klappt das auch so in der Praxis?

Andre
Gast #1020959
Lesenswert?

Naja, mit dem Quarz kann man ja immer noch etwas experimentieren (16 MHz 
sind noch schlechter). Mir geht es aber mehr um den Fakt, ob der 
Hardware-UART überhaupt so schnell kann (und nicht nur theoretisch).
Gast #1021002
Lesenswert?

The maximum baud rate for the USART of an AVR is above 1 Mbps.
See in the datasheet "Examples of Baud Rate Setting".

A 12 MHz crystal, baud rate register set to 3 will give
a perfect 187500 baud rate. (0% baud rate error).
Schuricht Distrelec: 644586

A 15 MHz crystal, baud rate register set to 4 will give
a perfect 187500 baud rate. (0% baud rate error).
Schuricht Distrelec: 644592

A 18 MHz crystal, baud rate register set to 5 will give
a perfect 187500 baud rate. (0% baud rate error).
Schuricht Distrelec: 644596
Gast #1021009
Lesenswert?

187,5 ist kein problem für den AVR
wie o.a. einen quarz mit vielfachem von 3 MHz

Mega8 geht nur bis 16 -> 15MHz  80 TZ/Byte
Mega x bis 20 -> 18MHz  96 TZ/Byte

Mit den Taktzyklen (TZ) kann man noch viel machen und die Hardware
mit Buffer sagt einem ja, wann man nachladen muß (Interrupt)

gruß hans

PS leichtes übertakten ist immer möglich (Mega 8 mit 18 ;) )
Gast #1021257
Lesenswert?

>Mega x bis 20 -> 18MHz  96 TZ/Byte

Beim Standardformat 8N1 kommt man auf ca. 960 Taktzyklen/Byte bei 18MHz. 
Das lastet einen AVR mit ca. 5% aus (Rx und Tx mit FIFO).
Software UARTs sind oberhalb von 38,4kBd kritisch, wenn noch andere 
Interrupts im Programm zugelasssen sind.

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