UART: Probleme bei der Synchronisation

Gast #31521
Hallo zusammen,

ich experimentiere gerade etwas mit dem A90S4433 und habe ein Problem 
mit dem Hardware UART:

Ich lasse folgendes Testprogramm laufen

ldi temp, RAMEND
out SPL, temp

sbi UCSRB,TXEN                 ;TX aktivieren
sbi UCSRB,RXEN                ;RX (Empfang) aktivieren
ldi temp,12 ;Baudrate 19200 einstellen (4MHz)
out UBRR,temp

loop:
  ldi temp, 'T'
  rcall serout
  ldi temp, 'e'
  rcall serout
  ldi temp, 's'
  rcall serout
  ldi temp, 't'
  rcall serout
  ldi temp, '!'
  rcall serout
  ldi temp, 10
  rcall serout
  ldi temp, 13
  rcall serout
  rjmp loop

serout:
  sbis UCSRA,UDRE  ;bereit?
  rjmp serout
  out UDR, temp
  ret               ;zurück


und lasse mir PC-seitig mit minicom unter Linux die Kommunikation auf 
der seriellen Schnittstelle anzeigen.
Parameter von minicom sind 19200 bps/8N1, keine Hardware-Flusskontrolle, 
keine Software-Flusskontrolle.

Von Zeit zu Zeit scheint die Synchronisation mit dem AVR nach einem 
Reset (z.B. nach Neuprogrammierung des Flash) nicht zu tun, minicom 
zeigt mir Datenmüll an, und ich muss den AVR noch einige Male resetten 
bis es tut.

Wie kann ich dieses Problem beheben?

Viele Grüße,

Uli
Gast
Hallo Gerhard,

danke, aber ich konnte das Problem damit lösen, dass ich nach der 
Initialisierung des UART erstmal einige Zeit Nichts mache (>120000 
Takte).
Nachdem der Ruhepegel des UART einige Zeit anliegt klappt es anscheinend 
immer mit der Synchronisation.

Viele Grüße,

Uli
Gast
Scheint so, als ob beim Init schon das erste Zeichen gestartet wird, 
z.B. wenn der Treiber für TxD eingeschaltet wird. 120.000 Takte sind 
aber bei 19k6 etwas länger als ein kaputtes Zeichen.

MfG
Gerd
Gast
>120.000 Takte sind aber bei 19k6 etwas länger als ein
>kaputtes Zeichen

Ich dachte mir: Viel hilft viel, und nachdem mein AVR beim Start ohnehin 
erstmal 1-2 Sekunden mit dem key-schedule beschäftigt ist, kommt es 
darauf auch nicht mehr an :-)


Uli

Antwort schreiben

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