Forum: Mikrocontroller und Digitale Elektronik UART und Datenmüll


von Ralf Handrich (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich arbeite gerade das Tutorial durch und habe Probleme mit dem UART
(Kapitel 6). Der PC empfängt nur Datenmüll. Ich habe schon verschiedene
BAUD-Raten probiert - hilft nix. Meine Hardware ist ein ATMEGA8 und das
Board und den Programmieradapter hab ich hier aus dem Shop. Als
Software verwende ich das AVR-Studio, Pony-Prog und terminal.exe. Ich
habe die Fuse-Bits auf den externen Oszilator abgeändert - leider auch
ohne Erfolg. Hier im Forum hab ich zwar das Problem (Datenmüll kommt
an) gefunden, aber keine passende Lösung.
Im Anhang hab ich noch ein paar Screenshots. Das Programm ist
uart-mega8.asm (siehe Tutorial).

Ich danke schon mal für eure Hilfe.

von Ralf Handrich (Gast)


Lesenswert?

Einen Fehler hab ich gerade entdeckt - das Board hat einen 8Mhz Quarz
und keinen 4er :). Hilft aber auch nix. Der Datenmüll siht nur
gleichmäßiger aus. Er sendet jetzt 7 Zeichen (was auch richtig ist),
aber die falschen.

von Ralf Handrich (Gast)


Angehängte Dateien:

Lesenswert?

Wenn ich im Terminal-Programm an den Settings rumspiele, erhalte ich
manchmal die richtige Ausgabe (siehe Anhang)- ich kapier das nicht.
Kann mir jemand helfen ?

von dave (Gast)


Lesenswert?

du musst auf jedenfall mal das handschäik auf none stellen.. oder haste
das implementiert?

2tens hab ich nen gleines progrämmchen geschrieben (jaja.. sieht
beschissen aus, aber es funktioniert...)
http://www.b0nze.de/programme/baudrate/baudrate.zip
berechnet den prozentualen fehler bei quarzen/baudrates

dave

von Thorsten (Gast)


Lesenswert?

Das sieht sehr danach aus, daß was mit der Baudrate nicht stimmt. Ok,
deine Fuses sind auf externen Clock eingestellt, dieser beträgt 8MHz
(sicher?). Für 9600 Baud muß folgendes gelten:
UBRRL = 0x33 (hexadazimal)
UBRRH = 0
Berechnung gem. Datenblatt Seite 133. Hast du das so eingestellt?

Wenn möglich, messe die Baudrate mal mit dem Oszilloskop.

Gruß
Thorsten

von Thorsten (Gast)


Lesenswert?

Und ja, Handshake ausschalten.

von Ralf Handrich (Gast)


Lesenswert?

Hi Dave,
Danke schon mal für Deine Antwort. Ich glaube ich hab das Problem
gelöst. Ich muss immer zuerst das Terminal verbinden und dann den uC
starten - kann das sein ? Andersrum klappt es nicht (uC starten und
dann erst Terminal verbinden).

von Jens123 (Gast)


Lesenswert?

hi wie schon gesagt einmal handshake und zum anderen kontrolliere deine
fueses nicht, dass da was nicht passt..
bei mir hatte es auf anhip funktioniert war kein problem

Gruss Jens

von Ralf Handrich (Gast)


Lesenswert?

Hi Thorsten,

die Register stimmen. Ich glaube es liegt wirklich daran, wie man die
Verbindung aufbaut. Versteh ich zwar nicht ganz, aber das mag daran
liegen das ich (noch :)) kein Bus-Experte bin.

von juergen klauck (Gast)


Lesenswert?

hallo
nen andere frage
kann sollte man mit geraden (8MHz) clocken wenn UART bzw. rs232 genutzt
werden soll????
juergen

von Ralf Handrich (Gast)


Lesenswert?

Keine Ahnung, aber es geht jetzt bei mir (mit 8Mhz). Und da das Board
mit 8Mhz verkauft wird, denke ich mal, dass das so in Ordnung geht.

Gruß

von dave (Gast)


Lesenswert?

wenn ein hauptbestandteil uart ist, dann wäre es sinnvoll extra
uart-passende quarze zu verwenden.. bei hohen baudraten (sieht man in
meinem progrämmchen) wird der fehler bei schlechten frequenzen dann
schon größer und dann können übertragungsfehler auftreten.
wenn man dann noch die toleranzen der quarze miteinbezieht (der sender
tickt schneller, empfänger langsamer) und schon hat man nen kräftigen
prozentfehler ==> nix gut

bei kleinen baudrates isses aber recht egal

dave

von juergen klauck (Gast)


Lesenswert?

ahhhh
besten dank ... wusste da war doch was
juergen

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.