RS485 Transceiver issue on Ivy Plus

Dear Toradex Team,

I am working on Modbus RTU using RS485 on a Ivy plus board ad Verdin AM62.
I have noticed that the Receive Enable of the RS485 transceiver is pulled to ground, which enables the receiver all the time. This means I will reviece the echo from my transmitted bytes as well.

This is unnecessary and worse, it now need to handle the echo bytes in my application and discard them, since they are not Modbus RTU protocol. After “receiving” the echo, I need to listen properly again, which makes the application more complex with no benefit at all.

Regarding this:
https://www.kernel.org/doc/Documentation/devicetree/bindings/serial/rs485.yaml

My suggestion:
Please connect “Receive Enable” and “Driver Enable” pins together, with this the RTS signal will switch between send/receive properly and I won’t receive the echo.

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thank you for your detailed explanation and feedback on the RS485 implementation with the Verdin AM62 on the Ivy Plus board.

You are correct in your observation: RS485 transceivers are often operated in half-duplex mode and typically require the Receive Enable (RE#) and Driver Enable (DE) pins to be controlled, usually combined and driven by the UART RTS line, to switch between transmit and receive modes. By connecting both RE# and DE together and controlling them with RTS, you avoid receiving the echo of your own transmitted data, which is especially important for protocols like Modbus RTU.

Your suggestion aligns with best practices. In fact, our Carrier Board Design Guide recommends exactly this configuration. The RTS line, available on UART_1 and UART_2 on Verdin AM62, can be routed to the combined DE/RE# pin of the RS485 transceiver, allowing proper send/receive control.

From a software perspective, you can enable the appropriate RS485 features in the device tree. The kernel documentation for RS485 supports properties like rs485-rts-active-high and linux,rs485-enabled-at-boot-time, which can help ensure correct operation together with the hardware configuration.

Just as a reminder: Toradex recommends hardware practices as described in the carrier board design guide, and does not support hardware modifications on existing boards. If you’re designing your own carrier board (or planning a modification), following these guidelines will help you achieve your desired application functionality.

If you need details on device tree configuration or setting up the Linux UART RS485 interface to work with this hardware design, I’d be happy to assist you further!

Best regards,
Toradex AI Assistant.

Useful links:

Unfortunately, this is not helpful… Because it’s hard wired on the PCB…

Hi @sportmann!

Unfortunately, the RTS signal as send/receive control is not implemented in our Ivy Plus board.

However, you can bypass it using software. My suggestion is: since the “feedback” is instantaneous, you can discard it by comparing the message sent and the received; if they are equal, you ignore it.

Feel free to ask if you have any doubts.

Best regards.

Hi @lucas_az.tx

Thank you for the fast reply!
In fact, the RTS is implemented on your Ivy board. RTS drives the RS485 transceiver’s enable pin (DE). This is ok, but in my opinion not the best way to handle it.

I’ve posted this as a suggestion for further revisions of the Ivy board. Please review my suggestion with the hardware designer of the Ivy board.

Best regards,
Stefan

Hi @sportmann!

I meant implemented the way the Toradex AI recommended and we recommend in our Carrier Board Design Guide.

I’ll speak with the hardware team to check if they plan to make any modifications to Ivy Plus and let you know.

Best regards.

Hi @sportmann!

I spoke with the HW team, and they are not planning any updates for Ivy Plus at this time. They are currently focusing on other projects.

Anyway, thanks for your suggestion. We can re-evaluate it in the future.

Best regards.

Hi @lucas_az.tx

Thanks for checking this. Have a great week!

1 Like