Arduino Toggling MAX3485 (RS485)

I am having intermittent problems interfacing to a MAX3485 (RS485) chip. I have an Arduino communicating half-duplex with a proprietary device via RS485. I tied the enabling pins 2 and 3 on the MAX3485 together and have the Arduino toggle the enable pin LOW for RX and HIGH for TX. When I had this all on my wokbench everything worked fine but once I set up in "real life" the RS485 is not receiving. My scope shows that I can set the RS485 enable pin HIGH just fine (I read 3.3 vdc on my scope) but pulling the enable pin LOW is only bringing it down to about 1.6 vdc relative to ground. The datasheet for the MAX3485 shows the high and low thresholds as 2v and 0.8v respectively so I assuke my 1.6v looks like it is a floating value. Since the Arduino can set the pin high just fine I figure there is no problem with the Arduino. I can't figure out why it all worked so well on my workbench. Can I just add a 10-20k pull-down to ground on the pin?? Will that mess up things when I need to set it HIGH for transmit?

thanks in advance for any advice
Jerry

Do you have a common signal ground between the receiver/transmitter?

I added a 4.7K resistor tied to ground and now the Arduino pin when set low pulls all the way done and everything works fine. I was curious why the Arduino was unable to do this withput the pulldown. I changed the MAX3485 but same result until I added the pull-down resistor.

thanks

You have fixed the symptoms but the problem still remains. There's no way an AVR pin will only go down to 1v6 unless there is a fault somewhere.

Have you tested without the MAX3485 connected? With a different AVR pin? Are you sure you've set the pin as an output? Etc.


Rob

Hello, you might be interested in the posting Support for Arduino RS485 concurrent multi-drop communication on this site.