www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART und Datenmüll


Autor: Ralf Handrich (Gast)
Datum:
Angehängte Dateien:

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

Autor: Ralf Handrich (Gast)
Datum:

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

Autor: Ralf Handrich (Gast)
Datum:
Angehängte Dateien:

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

Autor: dave (Gast)
Datum:

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

Autor: Thorsten (Gast)
Datum:

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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ja, Handshake ausschalten.

Autor: Ralf Handrich (Gast)
Datum:

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

Autor: Jens123 (Gast)
Datum:

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

Autor: Ralf Handrich (Gast)
Datum:

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

Autor: juergen klauck (Gast)
Datum:

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

Autor: Ralf Handrich (Gast)
Datum:

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

Autor: dave (Gast)
Datum:

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

Autor: juergen klauck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ahhhh
besten dank ... wusste da war doch was
juergen

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.