Forum: Mikrocontroller und Digitale Elektronik BTM-222 Empfangen falsch - Senden richtig


von Hans (Gast)


Lesenswert?

Hallo Leute,

mein BTM-222 übernimmt bei mir die Kommunikation vom ATMega128 zum 
PC(LabVIEW).
Das Senden funktioniert einwandfrei, nur beim Empfangen habe ich 
Probleme.
Zum Testen habe ich jetzt mal von LabVIEW ein 's' gesendet und wenn es 
beim µC ankommt soll er das empfangene Zeichen zurücksenden.
Es kommen aber irgendwelche willkürlichen Zeichen am PC an.
Zur Kontrolle habe ich noch jedesmal den Dezimalwert von 100 bei jedem 
Rücksendevorgang übertragen.
Dieser Dezimalwert von 100 kommt immer richtig an.
Also kann es ja nicht an einer falsche Baudrate liegen.

Was kommt noch als Ursache für diesen Übertragungsfehler in Frage?

Gruß Hans

von Martin S. (drunkenmunky)


Lesenswert?

Kannst du mal (mit dem Debugger) schauen was für ein Zeichen am uC 
ankommt?

von Alex W. (a20q90)


Lesenswert?

Empfang invertieren!

von Hans (Gast)


Lesenswert?

Martin S. schrieb:
> Kannst du mal (mit dem Debugger) schauen was für ein Zeichen am uC
> ankommt?

Leider habe ich keinen Debugger zur Verfügung!

Alex W. schrieb:
> Empfang invertieren!

Das empfangene Byte invertieren? Was soll das bringen?

von Martin S. (drunkenmunky)


Lesenswert?

Invertieren wird nicht viel bringen, wenn willkürliche Zeichen am 
Computer ankommen.

Auch kein Oszi oder Logic Analyzer zur Hand?

von Hans (Gast)


Lesenswert?

Martin S. schrieb:
> Invertieren wird nicht viel bringen, wenn willkürliche Zeichen am
> Computer ankommen.
>
> Auch kein Oszi oder Logic Analyzer zur Hand?

Ja doch ein Oszi hätte ich da, dann werde ich mir damit mal angucken wie 
das empfangen Zeichen am µC aussieht.

von stefan us (Gast)


Lesenswert?

Womit taktest Du den Mikrocontroller? Hoffentlich nicht mit einem R/C 
Oszillator.

von Hans (Gast)


Lesenswert?

Externer Quarz mit 14,7456 Mhz.

von Rainer B. (katastrophenheinz)


Lesenswert?

Hans schrieb:
> Also kann es ja nicht an einer falsche Baudrate liegen.
UART ist nicht Baudrate allein. Was ist mit Parity-Bit, Anzahl Stopbits 
?
Überall gleich? (Überall=PC, BTM-222, AVR) Und hast du mal vor dem Lesen 
den UART-Datenregisters die Fehlerbits ( Parity, Overrun, Frame-Error ) 
abgefragt? Vllt. geben die dir auch einen Hinweis.

Gruss, Rainer

: Bearbeitet durch User
von nicart (Gast)


Lesenswert?

Hans schrieb:
> Dieser Dezimalwert von 100 kommt immer richtig an.
> Also kann es ja nicht an einer falsche Baudrate liegen.

Also eigentlich ist so ein Dezimalwert ja nichts anderes.
Dieser Int oder Char - Wert wird in einen String umgewandelt und dann 
jedes Zeichen des Strings übertragen.

SG,
nicart

von Hans (Gast)


Lesenswert?

Danke für eure Hilfe!

Der Fehler lag beim Pegelwandler der nicht richtig funktionierte...am 
BTM-222 kam das 's' immer richtig an.

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.