5V RS-232 to 3V RS-232 converter

Hi, I have Arduino and PC. Arduino sending data over RS-485 to PC (only 2 device). PC to Arduino do not send any data - I have one direction communication.

PC is TL-WR741ND v4.x WiFi router. In OpenWrt wiki is:

Output level is 2.5V with good flanks (measured with digital oscilloscope). Input is via a 1k/3k voltage divider, which does not make the RX line 5V tolerant! Connection needs a 3.3V RS232 level shifter, or can be directly done with, e.g., the Bus Pirate. Pins on the connector in the photo are from the left TX-RX-GND-3V3, as expected.

I measured RS-232 (UART) output from MAX485 using voltemetter on PC side and incomming data has about 5V.

How can I reduce 5V output to 3.3V only in one direction. Can I use resistor? Or must I have complicated part as MAX232 (some version for 3.3V)?

Thank you for your help!


The most common method would be to use a voltage divider consisting of a 1.8k and 3.3K resistor. the 1.8k goes to your 5v signal. the 3.3K goes to ground, then the loose ends are joined together and this junction, will effectively be 3.3v. (or close enough to cause no concern)

What KenTF suggests will work, but

I measured RS-232 (UART) output

for future reference RS-232 is not UART. RS-232 is a voltage spec in the same way that RS-485 is, UART is a common term for async serial data at any voltage levels.