Probleme mit 20Mhz Resonator am ATmega328

OP #4355728
Hallo

Habe Probleme mit einem 20Mhz Resonator (CSTCE20M0V53-R0) an einem 
ATmega328. Irgendwie schwingt der nicht richtig. Ich benutze HW UART mit 
38400baud und die Daten kommen nicht sauber raus, nur die ersten paar 
bytes und dann nur noch Schrott. Verwende ich den internen RC mit 8Mhz, 
ist alles IO, daten kommen sauber.

Ich bin mir überhaupt nicht sicher ob ich die Fuses richtig eingestellt 
habe, anbei mal ein Foto.
Angehängte Dateien:
Gast #4355756
Mal abgesehen von Deinem Problem, auch in BASCOM sollte man so was 
vermeiden:

Goto Beginn

und das

Waitus 500

in der Empfangsroutine ist auch eher dubios.
OP #4355765
Bastler schrieb:
> Mal abgesehen von Deinem Problem, auch in BASCOM sollte man so was
> vermeiden:

Der ATmega fungiert letztendlich als UART Puffer zwischen einem 
Funkmodul und einem Bluetooth Modul. Der AVR empfängt Daten vom 
Funkmodul, wartet bis die RTS Leitung am Bluetooth-Modul Low ist, und 
sendet die Daten weiter.

Bastler schrieb:
> Goto Beginn
>
> und das
>
> Waitus 500

braucht es alles...
#4355769
Michael L. schrieb:
> Der ATmega fungiert letztendlich als UART Puffer zwischen einem
> Funkmodul und einem Bluetooth Modul. Der AVR empfängt Daten vom
> Funkmodul, wartet bis die RTS Leitung am Bluetooth-Modul Low ist, und
> sendet die Daten weiter.

Warum nimmst du dann keinen Baudratenquarz, sondern ersten einen 
Resonator und zweitens einen, der nicht passt?

mfg.
#4355803
Michael L. schrieb:
> aber mit 20Mhz sollte
> es doch nur ein Fehler von 0.2% ergeben ?
Dazu kommt noch die Toleranz des Resonators.

Mit einem 18,432MHz Quarz wäre die Abweichung 0. Egal bei welcher 
Baudrate. Die 38K4 machst du doch auch nur, weil es nicht schneller 
geht.

Was manchmal hilft, ist mit 2 Stopbits zu senden. Ist aber auch keine 
Garantie.

mfg.
#4355813
Michael K. schrieb:
> Also wenn die eine Relevanz hat ist entweder der Code Mist oder der
> Resonator für die Tonne.

Der Code nicht unbedingt. Mit 8Mhz geht es ja.

Ausserdem sind noch 2 andere Kandidaten beteiligt, die ihrerseits auch 
wieder ihre Toleranzen mit einbringen. Da man auf die keinen Einfluss 
hat, sollte man wenigstens den einen auf 0 bringen. Zumindest schadet es 
nicht.

mfg.
Gast #4356491
Hello,
With 20MHz ceramic resonator try to use 2400 baud to see if data 
communication is OK. If it is, check with 19200 baud (error+0.2%). 
Anyway, you will not get 38400 baud with this resonator frequency due to 
great error (-1.4%).
OP #4356574
Also ich lass im Moment den 20Mhz Resonator weg, und nehme den internen 
8Mhz. Bis jetzt funktionierts ohne Fehler und die Geschwindigkeit reicht 
völlig aus.

Sollten in Zukunft weitere Funktionen dazu kommen, und der AVR evtl zu 
lahm werden, nehme ich dann einen richtigen Quarz.
Gast #4356635
nico_2010 schrieb:

> With 20MHz ceramic resonator try to use 2400 baud to see if data
> communication is OK. If it is, check with 19200 baud (error+0.2%).
> Anyway, you will not get 38400 baud with this resonator frequency due to
> great error (-1.4%).

That's nonsense.

Refer ATMega 328 data sheet page 193. Using U2X0=1 and UBRR0L=64 you'll 
get an systematic error of 0.2% only. This accuracy is much more than 
sufficient to establish a working connection.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.