Forum: Mikrocontroller und Digitale Elektronik Erste Schritte RS232 mit ATMega, wer kann helfen?


von Daniel L. (dannynrw)


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

von Löser (Gast)


Lesenswert?

Avr uart geht nur mit externem Oszillator, da der interne rc zu ungenau 
ist.

von Biertrinker (Gast)


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.

von g457 (Gast)


Lesenswert?

> Der Takt steht auf 3686400Hz (interner Oszillator)

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

von Stefan F. (Gast)


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.

von Daniel L. (dannynrw)


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?

von Daniel L. (dannynrw)


Lesenswert?

Stimmt Stefan, der Vorteiler ist aktiv.

von Stefan F. (Gast)


Lesenswert?

> Ext. crystal Osc.;Frequency 3-8MHz; 16K CK/14CK + 65ms.

Nimm das. Bei den Millisekunden nimmt einfach die höchsten Werte wenn du 
unsicher bist.

von Daniel L. (dannynrw)


Lesenswert?

Habe eben mal ubbr0 auf 6 gesetzt, weil 1MHz. Sieht nun besser aus, 
Danke :-)

von Karl M. (Gast)


Lesenswert?

Daniel L. schrieb:
> Habe eben mal ubbr0 auf 6 gesetzt, weil 1MHz. Sieht nun besser aus,

nee, so ein mist, das sind nur so ca. 8928 Bit/s.

Warum stellst Du die Fusebits nebst Vorteile ein?

von Daniel L. (dannynrw)


Lesenswert?

Ich habe an den Fuse Bits nichts gemacht. Der Vorteiler ist 
standardmäßig von Atmel aktiviert.

von S. Landolt (Gast)


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.

von Stefan F. (Gast)


Lesenswert?

> Äußerst merkwürdig, bei einem Fehler von 7 %.

Wenn er Glück hat, läuft der R/C Oszillator zufällig schneller als 
gewollt und dann hat er weniger als 7% Abweichung.

von S. Landolt (Gast)


Lesenswert?

Dazu müsste man wissen, was unter
> Sieht nun besser aus
zu verstehen ist.

von Helge (Gast)


Lesenswert?

Daniel L. schrieb:
> Dieses lässt den uC (Atmega 88) ständig das Zeichen "A" senden.
> Auf dem myavr Center wird jedoch die "8" ausgegeben, also passt

Was ist denn das myavr Center? google sagt mir dazu nichts :-(

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.