Code: Select all
LaCrosse WS-23xx (and other) Serial Port Operation Al Testani 10/18/2011 This write-up is a compilation of what others have contributed on the subject and my own experimentation and design. I needed to understand exactly how this worked to be able to design a pair of radio modems to allow at least ¾ mile separation of the console and the Internet connected computer. The modems are built and operating (on the bench at this point) so the information below is correct. The WS-23xx stations and probably other LaCrosse models use a strange physical serial communication scheme. The cable pinout is as follows (thanks to na1db for posting the following to the LaCrosse Yahoo group): On RJ-11 Side (clip down, telephone style connector) From left to right looking down on the connector Color: Blue Brown Green White On the 9 Pin D-Shell (PC Interface) Signal: RTS RXD TXD DTR Pin...: 7 2 3 4 So Blue -> Pin 7, Brown -> Pin 2 etc. Note that there is NO connection to the RS-232 ground (pin 5)!!! A diagram of each end of the cable looking from the front: DB9 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ \ 5 4 3 2 1 / \ 9 8 7 6 / ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ RJ11 connections to DB9 |‐‐| (tab) ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ | | | 7 | 2 | 3 | 4 | ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ RTS and DTR are typically used for handshaking in a serial link but are NOT used for that purpose here. Lacrosse took this unique approach to serial communication to save a few cents in the hardware and while it does work with "real" com ports on PCs and the better grade of USB to serial adapters, it is a cheap kludge of a way to implement serial communications. It appears that to avoid the cost of a MAX232 type device (used ubiquitously for RS-232 connections) and 6 capacitors, what they did was to "steal" +V and -V from the PC or USB to serial adapter if it supports all the handshake signals. By setting RTS to +V and DTR to -V they effectively have these voltages and a virtual ground between them and they got it all for free. Quite clever, actually, but it has caused hassles for lots of people. For receiving commands from the PC they compare the incoming RXD signal (which swings +/-) to the virtual ground. For responses transmitted back to the PC they simply connect either the RTS or DTR "voltages" to the TXD pin. There is NO handshaking going on in this interface. It is a simple Rx/Tx interface. In the simplest terms one could implement the “DTE” side of a link (e.g. from a microprocessor, radio modem, etc.) as follows: For direct computer connections the polling software (e.g. WUHU, HeavyWeather, etc.) sets RTS to a high voltage level and DTR low so communication can commence. A complete circuit implementation is like this: This is how I did it for the radio modems I developed and it works well. For those who aren’t engineers and wonder how this works, the circuit operation is as follows: The MAX3232 IC uses one input voltage (VCC = 3.3V) and creates +/- voltages since RS-232 requires signals that swing +/-3V to +/-15V. In the case above, the MAX3232 creates about +/-6V. The overall operation is that the IC receives RS-232 level signals and converts them to logic levels (approx. 0 to 3V) and vice versa for outputs. So the RXD and TXD signals are logic level signals and the TXOUT and RXIN are RS-232 level signals. The +/- 6V the IC creates are available on pins so the RTS_high signal is simply connected to the +V pin and puts +6V on pin 7 of the DB9 connector. For the DTR_low signal, -6V is required on DB9 pin 4. In this case I used one of the outputs of the IC (T2out) instead of tapping the V- pin directly. All of the gates in the MAX3232 are inverting so this is why 3.3V is connected to T2in which is inverted and results in -6V on T2out. That’s all there is too it. I hope this information proves useful in: 1) Understanding why some USB to serial adapters don’t work where others do. It is simply that the bad ones do not connect anything to RTS, DTR, etc. or any other pin besides Rx and Tx (and ground). 2) Having a clear picture of how LaCrosse implements the serial port on their units. 3) For DIY projects, have the equivalent circuit and an example application circuit to refer to. Thanks to all who have worked on this problem in the past and supplied information which I was able to use.