UART und Datenmüll

Gast #131221
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.
Angehängte Dateien:
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.
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
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).
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.
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.