RS485 Usage question

Hi Toradex,

1.) We want to use RS485 on the Colibri imx6 module (UARTb/MXC1). We want to be able to automatic switch the Data enable signal when the colibri module is sending and go back to receiving after sending first of all is this possible?

2.) As far as i understand this should be possible but only using the predefined ports like UART_B_RTS (SODIMM 34) ?

3.) I tried to create a test setup on the Colibri development board 3, but sodimm 34 always stays high. My expected behaviour was that sodimm stays low until some rs485 traffic is send. We could use this signal as input to the transmitter for the data enable signal switch

We applied the RS485 patch available on the toradex GIT (linux-toradex.git - Linux kernel for Apalis, Colibri and Verdin modules). We enabled rs485 at boot time and has-cts-rts in the device tree. What do we need to do to get this test setup working?

The most important question for us now would be point 1 and 2 because we’re a few days away from letting our next generation carrier board go into production.

  1. We want to use RS485 on the Colibri iMX6 module (UART_B/MXC1). We want to be able to automatically switch the data enable signal when the Colibri module is sending and go back to receiving after sending. First of all is this possible?

Yes, it is possible.

  1. As far as I understand this should be possible but only using the predefined ports like UART_B_RTS (SODIMM 34)?

As per Colibri family standard only two UART ports are available with flow control. Said that, one can always choose any available free RTS/CTS of other UART ports. Refer datasheet of Colibri iMX6 for info on available additional UART ports (Note that the additional UART ports are available as alternate functions).

  1. I tried to create a test setup on the Colibri development board 3, but SODIMM 34 always stays high. My expected behaviour was that SODIMM stays low until some RS485 traffic is sent. We could use this signal as input to the transmitter for the data enable signal switch.

The reason for setting it to logic high is the active state of UART is logic low. One can still use the inverted logic from driver side. On Colibri Evaluation board the active logic level is considered as low. Refer the schematics of Colibri Evaluation Board for more information. Documentation on configuring RS485 is available here.