RC-Oscilator mit myAVR atmega88

Gast #365758
Lesenswert?
• ▲
▼
hallo,

ich versuche gerade mit dem atmega88 daten per uart zu senden! aber
irgendwie will das nicht! der prozessor läuft mit 8mhz und ich habe
schon versucht wie es beschrieben ist den rc-Oscilator zu kalibrieren
aber trotzdem funktioniert das nicht! kann mir da jemand mal ein tipp
geben wie man das richtig kalibriert!

gruß
Gast #365759
Lesenswert?
• ▲
▼
Hi, Franz,

gehe ich Recht in der Annahme, Du hast kein JTAG/ICE mit 1-wire?

Ungetester Code + unsichere Quarzfrequenz - das ist eine Unbekannte
zuviel.
1. Verschaff Dir ordentliches Meßzeug.
2. Reduziere die Zahl der Unbekannten, und debugge das Unbekannte.

Beispiel:
Setze einen Quarz ein, oder speise ein Quarzsignal ein.

Ich behelfe mir, indem ich Programme erst für den Atmega16 entwickle
und mit JTAG/ICE (hab' nur MkI) debugge. Wenn sie dann laufen, dann
schreibe ich sie um auf ATMega8.

Ciao
Wolfgang Horn
Gast #365762
Lesenswert?
• ▲
▼
Hi,

es löst zwar nicht das Problem... aber ich bin gerade dabei einen
Sensor aufzubauen, der sein Ergebnis per UART verschickt. Das
wesentliche: Ich bin in mehreren Tests nicht mit einem RC-Oszillator
hingekommen, trotz (recht) langsamen 1200 Baud. Erst mit einem 2 MHz
Quarz scheint es stabil zu funktionieren.

Gruss Holger
Moderator Persönliche Seite #365764
Lesenswert?
• ▲
▼
Man muss beim internen Takt nur auf die Kalibrierbedingung
achten: bei den meisten Chips Vcc = 5 V, Tamb = 25 °C, falls
mehrere Frequenzen möglich sind, ist der Oszillator für 1 MHz
automatisch kalibriert.  In diesem Rahmen ist er durchaus für
UART-Betrieb geeignet, ansonsten muss man nachkalibrieren
(entweder über EEPROM-Werte oder zur Laufzeit dynamisch, falls
man ein anderes Normal hat, z. B. einen 32-kHz-Quarz).

Zu beachten ist natürlich noch, dass 1 MHz nur für 9600 Bd
geeignet ist, wenn man das U2X-Bit setzt und damit das
Oversampling von 16fach auf 8fach reduziert.

Ob man ,nur' mit 1200 Bd oder schneller arbeitet, ist übrigens
(bis auf U2X bei 9600 Bd) egal, da der relative Fehler des
internen Oszillators gleich bleibt, damit auch die möglichen
Abtastfehler eines externen Empfängers.  Wenn die Frequenz nicht
stimmt, dann gehen eben 1200 Bd genauso schlecht wie 9600 Bd.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.