4
\$\begingroup\$

I've built a UART-RS232 converter based on max232 and it works well... but not for what I need :)

According to Maxim's datasheet the RS232 side signal voltage should be theoretically +/-10v (5v * 2), but in practice it is +/-8v.

This isn't a problem when you use the interface on standard RS232 ports but in my case it simply doesn't work and investigating on the PCB of my device of interest, that exposes a DB9 connector, I've found it isn't a real standard RS232 port but the RX and TX pins are connected, through 2 transistors, to a microprocessor UART interface.

This kind of port works well with the PC RS232 that uses a +/-12v voltage levels so I suspect the max232 output is simply too low for it.

Is there a way to boost up the max232 +/-8v output to +/-12v?? If it's useful I can take 12v from the device.

Edit: What about "combine" two identical RS232 signal (max232 has two converter but I'm actually using only one of them) forming a new signal equal to twice voltage level? Is it possible?

Edit2 - 2013/05/22: The signal voltage levels don't seem to be the problem just because that device works using a USB-RS232 adapter and in this case the signal levels are about +/-6.5v (at least on my converter).

I drew the interface circuit from the device pcb to better understand what's happening :) device schematic

Notice: I don't know if that diode is a zener or not

Then I made some new tests using my breadboard sniffing data directly from the cable.

I found that the RS232-RX part works as expected: if I "stimulate" the device sending data on the RS232-TX not from the max232 but from the PC serial port the device replies as expected on the RS232-RX line and the max232 translates the received signals as expected.

So at this point I need to know in which max232 output line and my PC serial port output line are different. What should I try in your opinion??

Edit3 23/05/2013: Just to better explain what I'm speaking about...

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$
14
  • \$\begingroup\$ I think it's worth investigating why it's not meeting the datasheet specification - it may be a simple fix. \$\endgroup\$
    – pjc50
    Commented May 21, 2013 at 14:02
  • \$\begingroup\$ Actually with a 3K load +/- 7.3v is in spec from what I can see for a MAX232. I can't think of an easy solution, you could use a DS1488 like a PC uses but then you'll need your own +/- 12V supply. \$\endgroup\$
    – PeterJ
    Commented May 21, 2013 at 14:08
  • \$\begingroup\$ @pjc50 8v is actually in spec and accordingly with the datasheet "The typical driver output voltage swing is ±8V when loaded with a nominal 5kΩ RS-232 receiver and VCC = +5V.". The 10v is theoretical just because it comes from a voltage doubler. \$\endgroup\$
    – mrfree
    Commented May 21, 2013 at 15:15
  • \$\begingroup\$ @PeterJ I think I'll explore your solution... if I could recycle a ds1488 from an old mobo it should be a great solution. The 12v isn't a problem in my case. \$\endgroup\$
    – mrfree
    Commented May 21, 2013 at 15:18
  • \$\begingroup\$ A two-variable problem here. If communications to/from a PC work (presumably via a terminal program), communications to/from a UART via a MAX232 don't work, and the voltage levels out of the MAX232 are in spec, the problem seems to be with the UART and not the hardware - i.e. the protocol / speed / data, not the signal levels. You could always convert the PC serial port data to UART with another MAX232, then back to RS232 to really understand if voltage plays a role. \$\endgroup\$ Commented May 21, 2013 at 15:58

1 Answer 1

3
\$\begingroup\$

The problem was an undocumented even parity bit required by the device I need to control (a Bentel Kyo300 alarm security panel), but even if I found which the problem was a limitation in the serial wireless modules prevents to re-generate the parity bit on the destination end-point.

Those serial-wireless adapters have, in fact, fixed serial-side configuration of 8N1... I solved buying better and configurable serial wireless modules (APC220) :)

I've learned a lot about hardware-level serial communication during this discussion so I'm happy even if I spent few more euros ;)

\$\endgroup\$
1
  • \$\begingroup\$ Now that you posted your own answer, don't forget to accept it! Otherwise the question will remain open in the software and get periodically bumped up and affect statistics. \$\endgroup\$
    – AndrejaKo
    Commented Jul 11, 2013 at 23:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.