Erste Schritte RS232 mit ATMega, wer kann helfen?

OP #5255377
Lesenswert?

Hallo zusammen,

ich habe das myavr Board MK2 und versuche mich gerade an einem 
Demoprogramm, welches ich aus der SiSy Bibliothek habe.
Dieses lässt den uC (Atmega 88) ständig das Zeichen "A" senden.
Auf dem myavr Center wird jedoch die "8" ausgegeben, also passt 
irgendwas mit dem Takt bzw. der Schnittstelle nicht.
Der Takt steht auf 3686400Hz (interner Oszillator) und die Baudrate auf 
9600 Baud (ubrr0 auf 23). An die Fuse Bits zur Umstellung auf den Quarz 
habe ich mich noch nicht rangetraut, weil ich gelesen habe, dass die 
Übertragung bei der Geschwindigkeit auch so funktionieren soll.
Was kann hier noch schiefgelaufen sein?

Danke schon mal.
Daniel
Gast #5255386
Lesenswert?

Falls nur der interne Oszillator vorhanden ist.. was schlecht waere .. 
kann man nur am Clock Korrektur Register drehen bis es passt. Allerdings 
ist dieser Wert nicht stabil, aendert sich mit Temperatur und 
Speisespannung.
Gast #5255442
Lesenswert?

>> Der Takt steht auf 3686400Hz (interner Oszillator)

> Beim m88 läuft der interne Ossi mit nominell 8MHz.

>> An die Fuse Bits zur Umstellung auf den Quarz
>> habe ich mich noch nicht rangetraut

Standardmäßig hast du 1Mhz Systemtakt aus dem internen 8Mhz R/C 
Oszillator, da die CLKDIV8 Fuse aktiviert ist.
OP #5255454
Lesenswert?

Danke, mit der Info kann ich arbeiten.

Dann ginge es nun quasi weiter mit den Fuse Bits. Da bin ich mir noch 
nicht ganz sicher.
Vorhanden ist aber ein Quarz mit einem Takt von 3,6864 MHz (Aufschrift 
KDO810), dazu zwei 22pF- Kondensatoren.
Es stehen mehrere Einträge unter "Ext. Crystal Osc." zur Verfügung. Ich 
weiß zwar, dass es was mit der Einschwingzeit zu tun hat, aber 
vielleicht kann mir ja jemand mal eine solche Zeile als Beispiel genauer 
erklären:
Ext. crystal Osc.;Frequency 3-8MHz; 16K CK/14CK + 65ms.

Vor allem, welchen Wert nehme ich letztendlich?
Gast #5255567
Lesenswert?

> ...ubbr0 auf 6 gesetzt, weil 1MHz. Sieht nun besser aus
Äußerst merkwürdig, bei einem Fehler von 7 %.

Aber mit Setzen von UCSR0A.U2X sowie UBRR0=12 könnte es etwas werden, 
vorausgesetzt, der RC-Oszillator dieses ATmega88 läuft unter den 
gegebenen Umgebungsbedingungen hinreichend genau.

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