Serielle Schnittstelle atmega unlesbare Zeichen

OP #1661727
Lesenswert?
• ▲
▼
Hallo,

ich beschäftige mich zum ersten Mal mit den AVR Microcontrollern, 
speziell mit dem ATMEGA8. Ich habe den Prozessor mit der seriellen 
Schnittstelle des Rechners verbunden. Die Daten kommen auch an, sind 
aber nicht lesbar!
Ich vermute es stimmt etwas mit dem Timing nicht oder die Bits sind 
verschoben!
Die Schnittstelle ist mit 9600 8N1 im HyperTerminal konfiguriert, im 
Atmel:
#define F_CPU 8000000UL  // 8 MHz
#define BAUD_RATE 38400
UCSRB=(1 << TXEN);
UBRRL=(F_CPU / (BAUD_RATE * 16L) - 1);

Zwischen dem Atmel und dem PC ist ein MAX232 als Schnittstellenwandler 
eingesetzt.

Geschickt werden an den PC nur Zahlen heraus kommen z.B. die Hex Werte: 
20,94,54,39 ... also alles Andere nur nicht das was ich schicke!
Hat jemand eine Idee, was nicht stimmt, oder woran es liegen kann, und 
wie ich das Problem lösen kann?

Viele Grüße
Volker
Gast #1661902
Lesenswert?
• ▲
▼
Volker Knobe schrieb:
> Die Schnittstelle ist mit 9600 8N1 im HyperTerminal konfiguriert, im
> Atmel:
> #define F_CPU 8000000UL  // 8 MHz
> #define BAUD_RATE 38400

Dir sollte klar sein das nur Datenmüll ankommen muss, wenn beide 
Schnittstellen mit unterschiedlicher Baudrate arbeiten.
Gast #1661904
Lesenswert?
• ▲
▼
Volker Knobe schrieb:
> UBRRL=(F_CPU / (BAUD_RATE * 16L) - 1);
kann der compiler das? UBBRL ist ein 8bit register, du willst 16 bit 
laden.
das klappt vllt mit der datenrate, aber sicher nicht garantiert mit 
jeder.
Gast #1663526
Lesenswert?
• ▲
▼
Spendiere den seriellen Datenleitungen  12V- oder 15V-VDRs 
(Überspannungsableiter), dann leben die Pegelwandler länger.

So lange es nur leicht ausgauschbare MAXe sind, geht es noch, was aber, 
wenn er auf dem Mainboard sitzt?

Oftmals wird zuerst eine Datenleitung verbunden, dann Gnd. 
Potentialunterschiede werden über Signalleitungen  ausgeglichen, das 
geht oft nicht gut.

Ein häufig übersehener Punkt ist bei HyperTerminal  das Handshake = 
none.
OP #1663585
Lesenswert?
• ▲
▼
Hallo,
danke für den Tip.

Das Problem am Anfang ist halt immer, das man nie weiß wo man mit der 
Fehlersuche ansetzten soll. Neuer Microcontroller, neue Kabel, neuer 
Pegelwander, neuer Programmer, neues Programm...
Wenn es einmal läuft hat man eine Referenz wo man vergleichen kann .

Gruß Volker

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.