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...


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ I think it's worth investigating why it's not meeting the datasheet specification - it may be a simple fix. \$\endgroup\$ – pjc50 May 21 '13 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 May 21 '13 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 May 21 '13 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 May 21 '13 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\$ – Adam Lawrence May 21 '13 at 15:58

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 ;)

  • \$\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 Jul 11 '13 at 23:00

protected by W5VO May 21 '13 at 15:35

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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