PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MAX232 fügt Zeichen hinzu



t0bias
30.05.2013, 15:42
Hallo,

ich verwende die UART-Schnittstelle zwischen einem RN-Control, einem Serial-Ethernet-Server und einem AVR-Universal.
Wegen dem Ethernet-Server fällt die Möglichkeit weg, im TTL-Level zu kommunizieren.
Den MAX232 habe ich direkt nach dem AVR-Universal eingesetzt.
Dazwischen hängt ein Splitter nach diesem Vorbild:
http://www.compuphase.com/electronics/rs232split.htm
Grundsätzlich funktioniert das auch; allen Strings die vom MAX232 kommen, sind aber jeweils zwei scheinbar zufällige unlesbare Symbole vorangestellt. Der String selber folgt dann aber korrekt. Wenn ich den AVR-Universal ohne MAX232 über USB am PC anschliesse, taucht das Problem nicht auf.

Wo könnte das Problem liegen?

Grüsse

Tobi

BMS
30.05.2013, 17:19
Hallo,
dieser "Splitter" hat den ungewünschten Nebeneffekt, dass zwischen RX und TX eine gewisse Kopplung herrscht. Das passiert über die beiden 4k7-Widerstände und Dioden im verlinkten Schaltplan.

The RS232 connection has separate transmit and receive lines, which means that the hardware can send data and receive data at the same time ("full duplex"). However, the majority of the protocols are half duplex: also called "master-slave" or "query-reply". What the splitter cable does is to re-route the transmit lines of both devices to the read line for the monitoring PC. This will only work correctly for half duplex protocols; when both devices that are involved in the serial connection send at the same, the signals will collide on the split-off receive line.
[...]
The two 4k7 resistors cause some cross-talk between the transmit lines of the two communicating devices...
Grüße,
Bernhard

t0bias
30.05.2013, 21:02
Oha! War mir nicht bewusst, dass sich das in dieser Form auswirken würde..

Wie liesse sich dieses Problem denn alternativ lösen?

BMS
30.05.2013, 22:20
Kannst du zwei separate RS232-Verbindungen realisieren?
Im MAX232 sind genug Pegelwandler vorhanden für 2 serielle Schnittstellen.

Oder du versuchst irgendwie, dass immer nur entweder RX oder TX aktiv wird, z.B. mit Wartezeiten im Programm. Damit es wirklich halb-Duplex wird.
Grüße, Bernhard