rs232 mit mega8 funktioniert nicht :(

Gast #514824
Lesenswert?

hallo liebe leute..

ich bin sehr deprimiert. ich muss dringenst eine kommunikation mit 
meinem mega8 per rs232 herstellen. leider funktioniert es nicht

im angehängtem programm seht ihr wie ich vorgehe.
wenn ich den uC mit dem osziloskop ausmesse, wird ersichtlich dass er 
eine baudrate von ca. 5000 hat! warum?!?! ich habe doch den ubbrval für 
6 verwendet und diesen wert hab ich laut der formel auch richtig 
ausgerechnet?


bitte um hilfe!

liebe grüße
Angehängte Dateien:
Gast #514857
Lesenswert?

Vielleicht hat er nicht die 9600 Baud benutzt?

Laut Tabelle 60 im Datenblatt ist das ein Wert, wo es bei exakten 
1.000MHz schon einen riesigen Fehler von -7,0% bei der Baudrate gibt.

Mit 2400 Baud (Wert 25) oder 4800 Baud (Wert 12) würde der Fehler nur 
0,2% betragen - wesentlich günstiger!
Gast #515189
Lesenswert?

interner Takt ist u.U. tödlich für ATMega und RS232. Je nach Temp etc. 
können die Abweichungen riesig sein und ich glaube, der 
Kalibrierungswert gilt nur für 1 MHz.
Nach Möglichkeit immer einen Quarz (am besten 14,7456 Mhz) einlöten. 
Sonst doktort man ewig dran rum.
Martin G.
#515211
Lesenswert?

Frank wrote:
> mit 9600 und internem Takt gibts oft schon Ärger. Versuchs einfach mal
> langsamer, dann klappts meistens.

Es hat eigentlich nichts mit 'langsamer' zu tun, sondern damit, dass der 
UART-Vorteiler möglichst ganzzahlig sein soll. Das gilt allerdings nur 
für Quarz, nicht für internen RC-Oszillator, dessen zulässige 
Abweichungen von der Nennfrequenz einfach zu hoch sind. Mit internem RC 
kann es (bei Zimmertemperatur) mal funktionieren, muss aber nicht. Das 
ist einfach Lotto...

Mit einem 'Baudratenquarz' wirds dann richtig zuverlässig, denn dann ist 
der Teiler immer ganzzahlig, was die größte Fehlertoleranz ermöglicht.

...

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