Forum: Mikrocontroller und Digitale Elektronik AVR und Baudrate von 187,5 kbit/s


von Andre (Gast)


Lesenswert?

Hallo,

ich möchte an einem AVR (wahrscheinlich ATmega8) einen RS485 Bustreiber 
mit einer Baudrate von 187,5 kbit/s betreiben.

Hängt man den RS485 Bustreiber nun besser an den eingebauten 
Hardware-UART (RX/TX) oder benutzt man einen Software-UART?

Andre

von B e r n d W. (smiley46)


Lesenswert?

Nimm nen 3 Mhz Quarz oder ein vielfaches davon und nimm den 
Hardware-UART.

Bernd

von Hmm... (Gast)


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...

von Andre (Gast)


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

von crazy horse (Gast)


Lesenswert?

wenn du eine unübliche Baudrate verwenden willst, solltest du nicht 
unbedingt einen für Standardbaudraten geeigneten Quarz wählen...:-)

von Andre (Gast)


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).

von Anonymous (Gast)


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

von hans (Gast)


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 ;) )

von Andre (Gast)


Lesenswert?

Danke an alle.

@Anonymous: Stimmt, ein Blick ins Datenblatt hätte mir wohl geholfen... 
;o)

von B e r n d W. (smiley46)


Lesenswert?

Die 115200 kBaud Grenze kommt vom Pegelwandler wie z.B. Max232 o.Ä. Wenn 
Du den entsprechenden RS485 Baustein verwenden würdest, gingen 1 Mbit 
locker. Die einzige Frage, ob die Daten so schnell beigeschafft werden 
können. Da wären dann >=16MHz angenehm.

Bernd

von Gerd (Gast)


Lesenswert?

187,5kBd? Möchtest du MPI nachbilden?

von Gast (Gast)


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.

von Stefan M. (interceptor)


Lesenswert?

Gerd wrote:
> 187,5kBd? Möchtest du MPI nachbilden?

Na MPI ist zu speziell ...

Ich denke er hat irgendwas mit Profibus im Allgemeinen vor.
(MPI ist zu Profibus kompatibel, ich weiß)

Mit freundlichen Grüßen

Stefan

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.