mikrocontroller.net

Forum: Compiler & IDEs UART- weitere Fehlerquelle bei falschen Zeichen.


Autor: John Schmitz (student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

es gibt ja reichlich Fehlerquellern bei der UART Progammierung - aber 
eine besonders schön dähmliche habe ich mir geleistet:

Habe auf meinem gekauften Board DIISPLAY3000 nicht erkannt, dass der 
UART1 gar nicht am MAX232 angeschlossen ist (sondern der UART0).
Gibt einen wunderschönen Fehler:

Bei allen Baudraten ergeben sich reproduzierbar die falschen Zeichen 
d.h. die Kommunikation läuft schon (zumindestens vom Hyperterminal zum 
AVR, umgekehrt nicht, d.h. das Terminal zeigt nichts an).

Das liegt natürlich daran, dass der MAX232 nicht nur die Spannung von 
TTL auf +12V/-12V erhöht, sondern auch noch die Manchestercodierung auf 
das Signal aufbringt ...!

Schön, dass der AVR Eingang die 12 V verkraftet hat ...!

Dabei ein ganz besonders Lob an Peter Fleury: Seine Interrupt gesteuerte 
UART Lib mit Ringpuffer Verwaltung ist allerfeinste Sahne. Hat auf 
Anhieb gefunzt. Dabei habe ich das DISPLAY3000 als Scroll-Terminal für 
die übertragenen Datensequenzen / Telegramme benutzt - Super Tool zur 
Fehlerdiagnose.

Da lässt sich nun wirkllich schnell der Fehler eingrenzen.

Es liegt also nicht immer an den Fuses und Frequenzen.

Aber das ist ja schon ausreichend alles behandelt worden.

Weiterhin viel Erfolg bei der Fehlersuche.

Grüsse

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute mal, Dein Kauderwelsch kann kein einziger verstehen.


Wenn Du die UARTs vertauschst, dann passiert garnichts, die liegen 
nämlich auf völlig verschiedenen Pins.

Oder hast Du sie mit den berühmten WLAN-Kabeln verbunden?

Daß ein MAX232 Manchester codieren kann, ist totaler Quatsch. Dazu müßte 
er ja den doppelten Baudratentakt zugeführt bekommen.

Wenn Du +/-10V auf den AVR bekommst, dann hast Du einfach nur Eingang 
mit Ausgang vertauscht.
Mach Dir nichts draus, ist mir auch schon mal passiert.
Kaputt gehen kann dabei kaum was, die Ladungspumpen sind ja nicht als 
Schweißtrafo ausgelegt.


Peter

Autor: John Schmitz (student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Uuuppps, sorry, Peter hat natürlich Recht.
Ich habe mich früher beruflich mit der Digitalen Funkübertragung 
beschäftigt, wo zur Vermeidung von von Gleichanteilen in den Bitfolgen 
Manchestercodierung zum zwecke der Taktrückgewinnung auf der 
Luftschnittstelle zum Einsatz kommt.

Ohne über Baudraten nachzudenken habe ich gedacht, das würde auch bei 
der seriellen leitungsgebunden Kommunikation eingesetzt. Wie gewinnt man 
eigentlich hier die Taktung bei einer Folge von geichen Bits zurück ?

Der Rest simmt aber: Vergisst man auf AVR Seite den MAX232 an den 
Portausgang zu hängen, dann sind die gesendeten Bitfolgen für den 
Empfänger immer 1:1 invertiert. Dann kommt es zu der Fehlersymtpmatik, 
dass alle Zeichen reproduzierbar GLEICH falsch sind - unabhängig von der 
eingestellten Baudrate.

Dies ist ein guter Fehlerhinweis, dass Fuses und Frquenze stimmen, aber 
eben der MAX232 nicht zwischengeschaltet ist (wenn man vorher gepennnt 
hat).

Nix mehr und nix weniger wollte ich sagen. nachts sollte man besser 
schlafen!!!

Grüsse

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.