Forum: Mikrocontroller und Digitale Elektronik UART Übertragungsgeschwindigkeit einstellen


von Zerberus (Gast)


Lesenswert?

Hallo zusammen, ich möchte gerne bei meinem AT90CAN128 die UART 
Übertragungsgeschwindigkeit des UART1 auf 19,2k einstellen. Als Clock 
verwende ich einen externen 8Mhz Quarz.
So wie ich das Datenblatt verstehe muss ich folgendes eingeben,

UBRR1L  = 25;    // 25 ( dezimal ) ergibt 19,2k bei 8Mhz Clocktakt

Sehe ich das richig? Kommen nämlich nur Hyroglyfen an oder bin ich zu 
doof um die Tabelle im Datenblatt zu kapieren..... :-(

von Karl H. (kbuchegg)


Lesenswert?

Zerberus wrote:
> Hallo zusammen, ich möchte gerne bei meinem AT90CAN128 die UART
> Übertragungsgeschwindigkeit des UART1 auf 19,2k einstellen. Als Clock
> verwende ich einen externen 8Mhz Quarz.
> So wie ich das Datenblatt verstehe muss ich folgendes eingeben,
>
> UBRR1L  = 25;    // 25 ( dezimal ) ergibt 19,2k bei 8Mhz Clocktakt
>
> Sehe ich das richig? Kommen nämlich nur Hyroglyfen an oder bin ich zu
> doof um die Tabelle im Datenblatt zu kapieren..... :-(

die einfachste Variante ist es, nicht in der Tabelle nachzusehen,
sondern den Compiler die notwendigen Berechnungen anstellen zu
lassen.

Sieh dir hier mal das Makro UBRR_VAL an
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#UART_initialisieren


PS: Der heäufigste Fehler, wenn eine UART nicht funktioniert
ist es, wenn dein µC nicht auf der Taktfrequenz läuft, die du
angibst. D.h. zb. du gibst zwar 8Mhz im Programm an und hast
auch einen Quarz dranhängen. Allerdings hast du vergessen, die
Fuses umzustellen und daher arbeitet der µC immer noch auf
dem internen RC-Oszillator auf ca. 1Mhz

von Zerberus (Gast)


Lesenswert?

Ok Karl Heinz,

klar da hast Du schon recht, aber die Fuses passen, und der Interne 
Prescaler ist auch ausgeschaltet, der teilt nämlich sonst standartmäßig 
immer schon durch 8.
Danke jedenfalls für deine Tips.
Aber sonst müsste die 25 schon passen oder??
Dann liegt der Fehler wo anders :-(

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.