Forum: Mikrocontroller und Digitale Elektronik wieder mal uart. Falsche Zeichen


von Sacha (Gast)


Lesenswert?

Hallo zusammen

Habe das Tutorial UART nachgebaut und getestet(mega8 4MHz).
Nur ist das Ergebniss nicht so wie es sein soll.
Irgendwie werden die Zeichen "verdreht"

Beispiel:

Das 'T' wird zum 'W'
aus Binär 01010100 wird 01010111
nach weiteren Tests folgendes Ergebniss

Alle Bits werden invertiert und nach links geschoben,
wobei Bit 0 (rechte Bit) gleich dem Bit 7 (das nach links
"rausgeschobene" Bit ist).

Für das 'T'
            invertiert  verschoben
01010100 -> 10101011 -> 010100111

Muss ich nun alles per hand umrechnen oder was läuft Falsch.

von Benedikt (Gast)


Lesenswert?

Hast du einen Max232 o.ä. zwischen PC und uC ?

von Sacha (Gast)


Lesenswert?

Den CD4066 habe ich zwischegeschaltet.
Der Max232 macht doch nichts anderes als den Pegel zu wandeln, oder.
Habe es auch mit nem OP versucht mit selben ergebniss.
ich bekomme es nur in den griff mit folgendem Code.

serout:
        sbis UCSRA,UDRE
        rjmp serout
    mov temp2 ,temp
    ldi r18, 0b11111111
    eor temp, r18
    eor temp2, r18
    rol temp2
    rol temp
        out UDR, temp

        ret

ist noch nicht das ware aber es läuft.

das kann doch nicht sinn des ganzen sein.

von Tobi (Gast)


Lesenswert?

imo invertiert der max die zeichen auch..

von Sacha (Gast)


Lesenswert?

ja wenn ich den max richtig verstehe
wandelt er nur den pegel von +-12 auf ttl und umgekehrt
aber das erklärt noch nicht die verschiebung.
ist mega8 defekt?was ich nicht glaube da alles so ist wie in Tutorial
ASM.
mit der konvertierung geht es ja.

von Benedikt (Gast)


Lesenswert?

>imo invertiert der max die zeichen auch..

Und genau das verursacht den Fehler.

von Stefan Kleinwort (Gast)


Lesenswert?

Der Effekt mit dem um 1 Bit verschieben liegt wahrscheinlich am
ebenfalls invertierten Startbit.
Immerhin ganz witzig, dass überhaupt noch was sinnvolles rauskommt bzw.
dass Sacha einen Zusammenhang gefunden hat ...

Stefan

von A.K. (Gast)


Lesenswert?

High Pegel am UART <=> negative Spannung an V24
Low Pegel am UART <=> positive Spannung an V24

wird bei selbergebastelten V24 Pegelkonvertern bisweilen vergessen.

von T.Stütz (Gast)


Lesenswert?

Das zu übertragende Zeichen wird so auf der Leitung erscheinen:

Startbit,D0,D1,D2,D3,D4,D5,D6,D7,[Parität,]Stopbit,[2.Stopbit]

es wird also zuerst das unterste datenbit übertragen.

Gruss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.