I would like to ask a question about Seeed’s RS-485 Shield for RPi.
To my knowledge the IO-Pins of the RPi work with a 3.3 V logic,
whereas the MAX485ESA+ on the Shield uses a VCC of 5V; its Receiver Output pin (RO) may show levels from 3.5 to 5V.
The RO pin is linked via a series resistor of 20 Ω to the RPi’s RX Pin (GPIO15).
Doesn’t this include the risk that - if the receiver output level is “high” - a voltage is applied to RPi’s RX’s pin that may be above the tolerated level? (The voltage drop along the 20 Ω resistor appears too small to actually reduce the voltage level significantly).
Shouldn’t there be a voltage divider that adapts the MAX485’s logic level to RPi’s, as suggested by various sources – like in this posting – to avoid damage?
Apparently not (since the shield has been in use by other people), but why?
Why is the voltage difference not a problem? Or is it? - Maybe it works because the RPi-GPIOs are tolerant enough. At Practical limits on Raspberry Pi GPIO pin voltages - Electrical Engineering Stack Exchange a maximum of 4.1 V is stated. At the RO pin I’m measuring up to 4.9 V; this would be too much.
By the way, I’m using the RS-485 shield successfully together with a Seeed i.MX6ULL NPi, which has a RPi compatible 40-pin-header, but I have put a 5.6k/6.8 kΩ voltage divider in between MAX485’s RO and NPi’s RX pin. I wouldn’t rather leave it out, unless I’m sure not to damage the NPi.