Zwei Taktfrequenzen eine Baudrate

Gast #3091851
Lesenswert?

Hallo,

ich hab mal ne Anfängerfrage:

hab zwei Mikrocontroller (AT90CAN128, ATmega8), die ich über UART 
kommunizieren lassen möchte. Muss die Taktfrequenz der beiden Controller 
übereinstimmen? oder kann ich den AT90CAN mit 16Mhz und den Atmega mit 
8Mhz betreiben solange die Baudrate (19200) bei beiden richtig 
eingestellt ist?

Ich habs natürlich schon probiert und es hat nicht geklappt. Eine 
Verbindung bei gleicher Frequenz war allerdings erfolgreich. Darf ich 
also davon ausgehen, dass es nicht machbar ist?

Note: U2X ist aktiviert. UART-Verbindung über Bluetooth BTM220.

Danke
Persönliche Seite #3091855
Lesenswert?

Die Baudrate muss stimmen, der Rest ist egal.

Allerdings wird die Baudrate aus dem Systemtakt abgeleitet, was 
bedeutet, daß bei geändertem Takt auch der Baudratenteiler angepasst 
werden muss. Wenn Dein Aufbau bei gleichem Systemtakt funktioniert, bei 
abweichendem aber nicht, ist zu vermuten, daß Deine 
Baudratenteilerberechnung nicht korrekt ist.

Zudem ist zu berücksichtigen, daß die etwas einfach strukturierte UART 
der AVRs nicht jede Baudrate "glatt" aus jedem Systemtakt erzeugen kann, 
d.h. einen mehr oder weniger großen Baudratenfehler produziert, wenn 
keine sogenannten "Baudratenquarze" verwendet werden.
Gast #3091876
Lesenswert?

Danke für die schnelle Antwort.

hab natürlich bei Veränderung der Taktfrequenz auch die UBRR-Werte aus 
dem Datenblatt angepasst. Mein Atmega8 läuft gerade mit (2Mhz, 19200, 
UBRR:12) und AT90CAN(16Mhz, 19200, UBRR:103). (U2X = 1)

Ich werd jetzt die UBRR-Formel ausm Tutorial verwenden. Hab sie nicht 
benutzt, da die Werte ausm Datenblatt bis jetzt zuverlässig waren. Ich 
werde weiter probieren und nach anderen möglichen Fehlern suchen.

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