RS485 Half-Duplex on iMX8M Plus with Dahlia Carrier Board

Hello everyone,

I am working with the Verdin iMX8M Plus on a Dahlia Carrier Board and want to set up an RS485 connection in half-duplex mode. However, I noticed that the available UART interfaces, such as UART1 and UART2, only provide +1.8V TTL signals.

Has anyone successfully implemented RS485 communication in this setup?

Any insights would be greatly appreciated!

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

To set up RS485 communication in half-duplex mode on your Verdin iMX8M Plus with the Dahlia Carrier Board, you’ll need to address both hardware and software components.

Hardware Considerations

The UART interfaces on the Verdin iMX8M Plus provide +1.8V TTL signals. To interface with RS485, which typically requires higher voltage levels, you’ll need an external RS485 transceiver. This transceiver will convert the TTL signals to RS485 levels. Ensure the transceiver can handle the +1.8V input or use a level shifter to adjust the voltage levels appropriately.

Software Configuration

The i.MX 8M Plus module supports RS485 communication with auto RTS control, which is essential for managing the direction of data flow in half-duplex mode.

  1. Device Tree Configuration:

    • Modify the device tree to enable RS485 by setting properties such as linux,rs485-enabled-at-boot-time, rs485-rts-active-low, and rs485-rx-during-tx. This ensures the RS485 mode is active at boot and configures the RTS signal behavior.
  2. Userspace Configuration:

    • You can also enable RS485 using the ioctl system call with TIOCSRS485. This method allows you to configure RS485 settings dynamically from your application.

Steps to Implement

  1. Connect the RS485 transceiver to the UART pins on the Dahlia Carrier Board, ensuring proper voltage level conversion.
  2. Update the device tree or use ioctl to enable RS485 mode and configure the RTS signal for half-duplex communication.
  3. Test the setup by sending and receiving data to ensure the transceiver switches correctly between transmit and receive modes.

By following these steps, you should be able to implement RS485 communication successfully on your setup. If you encounter specific issues, consider checking the transceiver’s datasheet for additional configuration options or troubleshooting tips.

Best regards,
Toradex AI Assistant.

Please, also check if these links can help you solve your problem:

Issue receiving data on IMX8MM UARTs.

The RS-485 standard relies on differential signaling, which standard TTL UART of any voltage levels cannot support. To successfully implement RS-485 communication, you must incorporate a transceiver. For the Verdin iMX8M Plus on a Dahlia Carrier Board, use a transceiver compatible with 1.8V logic levels, such as the SN65HVD01, or another option of your preference.

Hi @GenericUsername !

In addition to Alex’s answer, please be sure to check our references:

Best regards,

Hi @GenericUsername!

Do you have any updates on this topic? Or is it solved?

Please let us know if you have further questions.

Best regards,

Thanks it’s solved.

Hi @GenericUsername !

Thanks for the info!

Please don’t forget to mark the most suitable message as the solution :slight_smile:

Best regards,