mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART spricht merkwürdig ...


Autor: joerg_seemann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo, hallo

juhu, habe die UART-kommunikation (einseitig TX) mit dem ATmega168 in 
.asm gebastelt. Erste Versuche mit nem Terminalprogramm ergaben:

Ursprungstext:   Joerg

draus geworden:  ...Mé+r¦... bzw. ...233 43 114 166 77...

Was ist da los?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus der Reihe "Passende Kommentare" ;-)
ldi temp, LOW(UBRRVAL)    ; Highbyte: 0x00    
sts UBRR0L, temp      ; im Register setzen  
ldi temp, HIGH(UBRRVAL)    ; Lowbyte: 0x2F    
sts UBRR0H, temp      ; im Register setzen

Ich habe nicht geprüft, ob das das Problem ist.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt die Baud Rate überein ???

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joerg,

Interessant wäre in diesem Zusammenhang zu wissen, was Du senden willst 
(Originalnachricht). Es scheint ja erstmal was zu passieren, das ist 
nicht schlecht.

Wie sendest Du die Daten an den PC? Mittels MAX232 oder ähnlichem?

MfG Thomas

Autor: joerg_seemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sende über max232 und hab grad mal mit dem oszi gemessen, dass die 
bitlänge 0,09868ms beträgt. Resultierende BAUD: 10134, also 
timingproblem.

habe ein 7.3728MHz Quarz und dieses auch in den fusebits eingestellt.


Autor: joerg_seemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
trotzdem geht´s nich...

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@joerg_seemann

>sende über max232 und hab grad mal mit dem oszi gemessen, dass die
>bitlänge 0,09868ms beträgt. Resultierende BAUD: 10134, also
>timingproblem.

>habe ein 7.3728MHz Quarz und dieses auch in den fusebits eingestellt.
>trotzdem geht´s nich...

Waaaaas? Soooo ein toller Baudratenquarz und der UART geht trotzdem 
nicht? Kaum zu glauben!!!!

Ok, das musst jetzt raus, war nicht persönlich gemeint.

Aber wieso verwendest du immer STS um die Konfigurationsregister zu 
schreiben? Die Registernamen sind für die Verwendung von IN/OUT 
ausgelegt. Ausserdem ist der Befehl STS 2 Worte lang, OUT nur einen. Das 
da überhaupt was zuckt wundert mich sowieso.

MfG
Falk


Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich behaupte:
ldi temp, 0x03    ; Asynchron, Paritätsbit N, Datenlänge 8Bit, Stopbit 1      |
sts UCSR0C, temp
ist falsch
(ok, war unfair, ich hab im Datenblatt nachgeschaut, d.h. ich weiß, dass 
das falsch ist) -> du stellst auf 6 datenbits und UCPOL0 gesetzt
ldi temp, 1<<UCSZ1 | 1<<UCSZ0
...
geht wahrscheinlich

@Falk:
st(s) ld(s) sind bei den megax8ern nötig, die USART regs liegen 
außerhalb der 64 I/Os :(

Autor: joerg_seemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bedanke mich und bitte um nachsicht, bin erst seit knapp 14 tagen 
mit AVR
und ASM beschäfftigt...

nen perfekten tag wünsch ich...

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.