1

I'm having an issue where an arduino Mega has been used to communicate with an RS485 bus, using an MKR shield [1] as a breakout board. When I build it with a Mega, the system works fine. I've torn down and rebuilt multiple times, and it works every time, no troubles.

However when I build it with a nano it does not work - rx is faulty. Devices on the bus can hear the nano, and a response pulse train is sent back correctly, so outgoing communication is fine. However at the RX pin on the nano, the serial signal is present when viewed on an oscilloscope, but ranges between +5V and 4.5V, and the RX LED never flashes.

The layout is a simple wiring, there are no (relevant) external components (there is an LCD, but this works fine), just pin-pin connections.

Why is it the mega seems to work, but the nano not? I'm currently guessing that the /RE pin on the MKR RS485 device (MAX3157 [2]) is not being powered properly, and I am seeing the un-amplified serial output? I can't understand why this would be, though, as both the mega and the nano have the same rated max current per-pin.

I've checked the /RE line alone when disconnected, and it is correctly at 5V when not driven, and drives to 0V when the pin is pulled low.

Is there an alternative fix I could use to bring the +5V-4.5V to +5V-0V ? Do I need to have the

[1] MKR Shield schematic : https://www.jameco.com/Jameco/Products/ProdDS/2294031Schematic.pdf

[2] Max datasheet : https://datasheets.maximintegrated.com/en/ds/MAX3157.pdf

2
  • Are you sure that the RX pin is in input mode? Dec 31, 2021 at 10:33
  • Try removing R5 and R6. You can also reduce R3 to 1K.
    – user81882
    Jan 11, 2022 at 14:05

1 Answer 1

1

OK, answering myself here. It looks like the output of the shield is unable to drive hard enough against the internal pullups of the nano, for some reason. (Yes, its definitely in input mode, you check check the port values, and it is correct)

Leaving the RX output from the shield to float, it works fine, but if connected to an external pullup resistor, then it does not - and I get the same behaviour as when the RX is tied to the nano.

I've been unable to disable the nano's internal pullups in software for some reason. It looks like I will need to add a buffer to increase the drive current. This is a little irritating as it means another breakout board!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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