Forum: Mikrocontroller und Digitale Elektronik Problem mit RS485 (Atmega328)


von David W. (davewagner)


Lesenswert?

Hallo,

ich habe eine Testplatine mit einem Atmega328(mit 8MHz Quarz) und einem 
RS485-Chip(SP485EE) vor mir liegen. Mein Problem ist, dass nur bei einer 
Baudrate von 128000 im Terminal der richtige gesendete Text ankommt, 
obwohl im Code 115200 eingestellt ist. Bei 115200 kommt nur Müll an.

Weiß jemand woran das liegt?

Gruß David

von Cheffe (Gast)


Lesenswert?

Moin, etwas mehr Informationen dürften es schon sein. Wie sieht den die 
Konfiguration des UARTs aus?


Cheffe

von Cheffe (Gast)


Lesenswert?

Moin,

und guckst Du mal hier: http://www.wormfood.net/avrbaudcalc.php

115200 bei 8MHz ist nicht wirklich eine gute Wahl ....



Cheffe

von David W. (davewagner)


Lesenswert?

Ich nehme Bascom zum Programmieren. Den Code habe ich jetzt auf das 
Minimum reduziert.
1
$regfile = "m328def.dat"
2
$crystal = 8000000
3
$baud = 115200
4
5
Config Portd.1 = Output
6
7
Do
8
9
Print "Test"
10
Waitms 100
11
12
Loop

von Norbert (Gast)


Lesenswert?

David W. schrieb:
> Hallo,
>
> ich habe eine Testplatine mit einem Atmega328(mit 8MHz Quarz) und einem
> RS485-Chip(SP485EE) vor mir liegen. Mein Problem ist, dass nur bei einer
> Baudrate von 128000 im Terminal der richtige gesendete Text ankommt,
> obwohl im Code 115200 eingestellt ist. Bei 115200 kommt nur Müll an.
>
> Weiß jemand woran das liegt?
>
> Gruß David

8MHz Quarz und 115.200bd ergibt einen Fehler von 7.84% und somit echte 
125.000bd.

von spess53 (Gast)


Lesenswert?

Hi

>Ich nehme Bascom zum Programmieren. Den Code habe ich jetzt auf das
>Minimum reduziert.

Hast du es noch nicht kapiert? Bei 8MHz ergibt sich für 115200Bd ein 
Fehler von 8,5%. Damit läuft nichts.

MfG Spess

von Cheffe (Gast)


Lesenswert?

Moin,

hey Spess, was soll der Ton? David hat vernünftig gefragt und wohl noch 
nicht den Durchblick. Außerdem sind es "nur" 7.8%.


Cheffe

von spess53 (Gast)


Lesenswert?

Hi

>Außerdem sind es "nur" 7.8%.

Woher stammt der Wert? Im Datenblatt steht bei 8MHz und 115.2k  8.5%. 
Und das sagt mir auch mein Programm.

http://www.wormfood.net/avrbaudcalc.php

Scheint da etwas fehlerhaft zu sein.

MfG Spess

von Falk B. (falk)


Lesenswert?

@ David W. (davewagner)

>ich habe eine Testplatine mit einem Atmega328(mit 8MHz Quarz) und einem
>RS485-Chip(SP485EE) vor mir liegen. Mein Problem ist, dass nur bei einer
>Baudrate von 128000 im Terminal der richtige gesendete Text ankommt,
>obwohl im Code 115200 eingestellt ist. Bei 115200 kommt nur Müll an.

Baudrate und Quarzfrequenz passen nicht zusammen, wie bereits 
Dutzendfach gesagt.

http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART

von David W. (davewagner)


Lesenswert?

Mit 11,059200MHz funktioniert es jetzt.

@ spess53
Ich habe vorher die zweite Antwort von Cheffe überlesen und deswegen 
nochmal den Code gepostet.

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.