Hallo, vielleicht weiß jemand einen Rat. Mein RS232 Signal geht über eine Baugruppe welche aus einem H-Pegel einen L-Pegel macht. Dadurch kommen auf der Empfängerseite andere Werte an als abgesendet. So z.B. bei einem M 0100 1101 kommt ein Y 0101 1001 oder N 0100 1110 , 0010 1100 oder O 0100 1111 X 0101 1000 Wie kann ich nun das empfangene Byte mit BASCOM bearbeiten damit ich wieder auf das "richtige" Byte komme? Bedanke mich für jegliche Hilfen... mfg Jürgen
Ich denke, das wird gar nicht gehen. Aus deiner Beschreibung entnehme ich mal, daß das ganze TX-Signal invertiert wird. Dann hat der Empfänger gar keine Chance, das richtige Start-Bit zu sehen um die folgenden Bits einzurotieren, er kann nur irgendeine passende fallende Flanke nehmen, die folgenden 8 Zeiteinheiten stumpf einrotieren und wenn dann der Zustand der Leitung für ein Stop-Bit reicht meldet er keinen Framing-Error.... Du solltest einen Inverter davorschalten.
Jürgen E. schrieb: > Bedanke mich für jegliche Hilfen... Wenn du ein Hardware UART verwendest, wird das nicht gehen, weil das Startbit beim Empfänger nicht als solches erkannt wird und deshalb ein gesendetes Byte vom Sender gar nicht als vollständiges Byte beim Empfänger ankommt. Da hilft nur das Signal zu invertieren.
Vielen Dank für die bisherigen Antworten, Diese Baugruppe, welche das Signal invertiert, dient als Pegelanpassung zwischen einem KfZ Steuergerät und einem Messgerät für die Parameter. Könnte es vielleicht sein, dass das KfZ-Steuergerät die Signale schon im invertierten Zustand ausgibt? Nach einer nochmaligen Invertierung würden sie doch dann passen, oder? Bei meinem Test habe ich zunächst "richtige" Signale verwendet und dann diese Invertierung bemerkt. Ich wollte mir halt die Signale mal ansehen um einige Anzeigen zu realisieren. Ja, ich nutze eine Hardware-UART. Mein Test mit einer Software-UART ist leider gescheitert das sich beim ATMEGA328p kein Puffer einrichten lies für die Soft-UART und daher die meisten Zeichen verloren gingen wenn ich mal einen langen String gesendet hatte. Das Problem hatte ich zuerst auch mit der Hardware-UART konnte dies dann aber mittels Config Serialin = Buffered , Size = 64 lösen mfg Jürgen
Jürgen E. schrieb: > Diese Baugruppe, welche das Signal invertiert, dient als Pegelanpassung > zwischen einem KfZ Steuergerät und einem Messgerät für die Parameter. > Könnte es vielleicht sein, dass das KfZ-Steuergerät die Signale schon > im invertierten Zustand ausgibt? Normale RS232-Treiber invertieren immer. Von was für Pegeln reden wir denn. Welcher Pegel liegt an, wenn kein Zeichen übertragen wird. Auf der RS232-Schnittstelle wird negative Logik verwendet (High = -3..12V, Low = +3..12V)
Hallo, aus der von mir genutzten Baugruppe liegen bei L 0V und bei H knappe 5V an. Kann sein, dass im Original ein RS232 Pegelwandler zum Einsatz kommt. Dies brauche ich allerdings nicht. Ich werde mal das Signal invertieren und dann weitersehen... Besser wäre es natürlich, ich könnte die Software UART nutzen, leider weiss ich da nicht, ob man da auch so einen Buffer einrichten kann wie bei der Hardware-UART. mfg Jürgen...
So, habe nun einen Inverter aufgebaut und es funktioniert.... Danke an alle die mich abgehalten haben weitere Software-Experimente durchzuführen... mfg Jürgen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.