0
\$\begingroup\$

In my application, I need to transmit data between two arduinos, one as a master and the other as a slave using 485. The arduinos are connected to these modules, which have a Max485:

enter image description here

Schematic:

enter image description here

With these modules everything is working fine (38400 bps). Next, I want to use Max13487 so I don't have to care about the direction control lines. As I understood, Max13487 is the automatic direction control version of Max485, and their foot prints are compatible. I took these modules, desoldered the Max485, and soldered the Max13487. RE and DE (now RE and SHDW) are tied together and pulled high.

What happens next is that communication is not working. I can see data going out from the master driver, but the slave receiver is not converting it back to 5V.

The voltages on the data lines are different for the 485 and the 13487:

                   Low   High
 - MAX 485:  -A    3.3V  2.3V  
 - MAX 485:  -B    1.3V  3.3V 
 - MAX13487: -A    2.3V  1.3V  
 - MAX13487: -B    2.3V  3.5V  

What am I missing? Thanks.

\$\endgroup\$
  • \$\begingroup\$ • AutoDirection Enables Driver Automatically on Transmission, Eliminating an Opto or Other Discrete Means of Isolation - Transmission, not the reception. You have disabled your RE by pulling it high. \$\endgroup\$ – Eugene Sh. Nov 20 '17 at 19:00
  • \$\begingroup\$ Is not like that. From the datasheet: RE, Receiver Output Enable. Drive RE low to enable the RO. Drive RE high to let the AutoDirection circuit control the receiver. More over, I did another test: slave always with MAX13487, master with MAX485, and the thing is working, so the RE high at the MAX13487 doesn't seems to prevent reception. \$\endgroup\$ – gotramaval Nov 20 '17 at 19:47
  • \$\begingroup\$ Yeah. Missed that table. \$\endgroup\$ – Eugene Sh. Nov 20 '17 at 19:49
  • \$\begingroup\$ These 20k bias resistors (R5 and R6) looks fishy to me. Normally you need to guarantee Vab > 200 mV, hence not more than 650 Ohms bias resistors for standard receiver input resistance (12k) and Vcc = 5V. But this isn't probably your main problem as in that case you would have fault receptions. I advise you to connect one module with MAX13487 to the one with MAX485, and check if you have any reception at all \$\endgroup\$ – GAttuso Nov 21 '17 at 8:19
  • \$\begingroup\$ I've changed the 20k resistors by 560Ohm, negative result. Connected just both modules, negative results. Only thing that worked for me was to have master with Max13487 and slave with Max485. Like this, slave has to control the RE line, but for my application is fine. \$\endgroup\$ – gotramaval Nov 23 '17 at 20:03
1
\$\begingroup\$

This is probably too late to do any good, but I successfully used these chips a decade ago, talking only to each other (as you're attempting to do here). The only difference between my setup and yours is that I did set the RE_ line low, instead of high. From my reading of the data sheet, this causes the receiver (but not the transmitter) to be permanently enabled, rather than counting on the internal state machine to enable it. That project had numerous other problems, but I was happy to find that these worked first try, with no tinkering.

Looking back at my schematics for that project, I see that I didn't put any pull-up/pull-down resistors on the modules at all, and it still worked. I agree with your choice of the 20k resistors though (I'm putting 10k ones on my current project).

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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