Forum: Mikrocontroller und Digitale Elektronik rs232 mit mega8 funktioniert nicht :(


von tommal (Gast)


Angehängte Dateien:

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

von tommal (Gast)


Angehängte Dateien:

Lesenswert?

sry ich habe oben wohl die falsche datei angehängt - hier die richtige.

von tommal (Gast)


Lesenswert?

achja ich vergaß:

mir wurde gesagt dass ich mir mal den prescaler anschauen sollte?
leider kann ich damit nichts anfangen - kann dieser hier was bewirken?

lg

von Hannes L. (hannes)


Lesenswert?

Wieder Einer, der vom ungenauen internen RC-Oszillator Wunder 
erwartet...

Den Rest des Programms habe ich mir dann gar nicht mehr angesehen.

...

von tommal (Gast)


Lesenswert?

ein bekannter hat einige projekte mit dem tiny26 gemacht, und sagte bei 
ihm hatte es immer genügt mit dem internen ... :(

von Stefan (Gast)


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!

von Netbird (Gast)


Lesenswert?

Hallo,

Baudrate nicht zu hoch wählen - kann ich bestätigen!
Baudrate 2400 läuft mit internem Takt von 1MHz bei mir problemlos auf 
Mega8 und Mega 16.

Gruß, Harald

von Gunther Woll (Gast)


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.

von Frank (Gast)


Lesenswert?

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

bye

Frank

von Hannes L. (hannes)


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.

...

von tommal (Gast)


Lesenswert?

vielen dank, bei niedrigerer baudrate hats funktioniert!!!
danke!

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.