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

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