www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART-Timing?


Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hoffe, mir kann einer helfen. Mein UART will nicht so wie ich. Ich
habe einen AT MEGA 128 und einen anderen Controller daran
angeschlossen, Rx und Tx halt gekreuzt. Der sendet seine Daten mit 9600
Baud, 1 Stopp-Bit, kein Handshaking, genauso habe ich es im Mega
eingestellt. Dann habe ich eine Routine, die beim Auslösen des
Interrupts den Kram an einen schon vorhandenen String klatscht. Alle
paar Sekunden gibt mir der Mega den String auf dem LCD aus und leert
ihn wieder. In der Theorie und im Simulator funktioniert das auch.

Nicht aber in der Praxis! Beim allerersten Übertragen werden die ersten
beiden Zeichen korrekt übertragen, danach spuckt mir der Mega nur noch
kryptische Zeichen aus. Allerdings sind es immer die gleichen Zeichen,
völlig konstant und reproduzierbar.

Der Mega läuft intern mit 4 MegaHerz (durch Setzen der Fusebits), das
stimmt auch. Ich habe im Programm auch mal die Taktfrequenz in den
Grenzen der Toleranz variiert, aber das brachte auch nix. Hat jemand
Rat?

Grüße an alle,
Stephan

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich nun alle Taktfrequenzen durch habe, stelle ich fest, dass
es gar nicht daran liegt. Der zweite Baustein, den ich leider nicht
beeinflussen kann, gibt sein Signal invertiert aus!

Kann man das per Software umdrehen?

Grüße an alle,
Stephan

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Stephan,

Invertierung:

USART0_RX_complete:
  in     r16,UDR0        ;read value

      ldi    r17,0xFF
      eor    r17,r16         ;r17 enthält das Ergebnis
reti

Sebastian

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.