# MAX485 controlling output voltage

I'm trying to use a MAX485 module to interface a RS-485 domotic bus, when I use the oscilloscope I see that the original bus signals (A and B) are between 1.9 V high and -2.250 V low (4.15 V amplitude, total differential between A and B of 7.3 V):

When using the MAX485 module with an Arduino Uno, I can't seem to get those kind of output voltages. I've tried connecting the module's VCC and DE/RE with several different voltages (3.3 V up to 11.7 V) but I can never get a diferential as high as the BUS i'm trying to interface:

On the spec sheet (data sheet link) it says "Driver Output Voltage (A, B) -8 V to +12.5 V", but there seems to be no big difference on the output voltages using either 5V or 11.7V VCC, so how do I control the output voltage?

• Please show the schematic of your circuit and where these readings are taken from. – Eugene Sh. Apr 29 at 15:38
• RS485 bus voltages are not supposed to be negative (when measured with respect to 'ground'). How are you making these measurements? Are you connecting your 'scope's ground clip to one of the RS485 bus lines? – brhans Apr 29 at 15:40
• This "Driver Output Voltage" is the difference between A and B as it is a differential signal. – Eugene Sh. Apr 29 at 15:42
• Your MAX "worked" well, the differential voltages are low voltage. Check RS485 standard. You shouldn't exceed absolute maximum rating (not nearly). – Marko Buršič Apr 29 at 15:48
• @EugeneSh. brhans, I've updated the question adding schematics on how the readings were done and adding the second data channel to better apreciate the RS-485 voltage differential. – xfze Apr 30 at 1:12

There is no need to raise Vcc above 5V for your application. You must be looking at the "no load voltage".

This chip drives the differential outputs with an output resistance of 41 Ohms (typ)
41 Ohms = Voc/Isc = 3.7 V / 90 mA. With this, it can guarantee the min. standard 1.5V differential into a bus termination of 54 Ohm with up to 128 Rx ports on the bus.

This IC has common mode Tx voltage is 3V with no load and 1.5V loaded with +/- 0.75V minimum guaranteed. (anything more is "gravy" , too much, >12V will damage the IC.)

Again, nothing you have said indicates you need Vcc=12V. ("Absolute Max" Do not exceed)

That is for cases with long (up to 2km) cable loss and possibly some active terminator voltage.

If you want to improve signal integrity, use the correct cable and impedance.

You do not not need to have more 0 to 3Vdc on the bus.

The threshold for data 0,1 is 0V differential. This balanced approach with termination R gives a high Signal to Noise ratio for good signal integrity.

• I've updated the question with more clear schematics and full diferential between A/B RS-485 signals. The proprietary protocol via RS-485 i'm trying to interface shows 7.3 V of signal differential but I can only generate 5.6 V with the MAX485. My question is: is it possible that these signals are "disregarded" as this RS-485 implementation has a higher signal voltage treshold? And if so can I get the MAX485 to output signal voltage on that range? – xfze Apr 30 at 1:19
• You do not need to create the same voltage. It says it is RS-485 compatible (physical layer) so your Rx will accept these inputs and Domotic Rx will accept your Tx output. You will find that the voltages will drop up to 50% with 120 Ohm differential terminator added at both ends of the bus, chosen to match the RS-485 cable impedance. No need for the negative voltage. The concept is to have a low impedance with a differential voltage and the differential voltage threshold is 0V with balanced impedance on each line.. – Sunnyskyguy EE75 Apr 30 at 1:45
• yes, tried some more analyzing and it got me some code that worked over the MAX485! – xfze Apr 30 at 7:13
• Did you have 120R at both ends? (no?) with these measurements? What was the distance? ( not very long?) – Sunnyskyguy EE75 Apr 30 at 15:04