www.mikrocontroller.net

Forum: Compiler & IDEs RC-Oscilator mit myAVR atmega88


Autor: Franz-Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du die Fuses richtig eingestellt?

Hatte das Problem, dass zwar auf 8MHz eingestellt war, jedoch
zusätzlich noch ein Prescaler mit dem Faktor 8 aktiv war - dies
wiederum resultierte statt einer Baudrate von 9600Baud in 1200 Baud *im
Nachinein eh klar*

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der prozessor läuft mit 8mhz

Das ist arg langsam. Da bekommt er ja nur einen Taktzyklus alle zwei
Minuten.

Autor: Holger Gerwenat (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den internen Takt verwendet - absolut keine Probleme bei 9600
Baud

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.