Hi, I use MCIMX6S6AVM08AC chip with Linux(imx_4.1.15_2.0.0_ga) and I try to use UART with flow control.
Issue 1:
It works, but RTS and CTS signals are inverted!(uart_work.png)
On schematic(DEV_* - pins from LBEE5KL1DX):
D25(ALT2 = UART3_CTS_B) connect to DEV_CTS
F23(ALT2 = UART3_RTS_B) connect to DEV_RTS
# Test devmem2 utility(read USB_nID reg)
$ devmem2 0x2184000
E401FA05
# Read UART3_UFCR reg
$ devmem2 0x21EC090
00000801
As you can see DCEDTE-bit is 0, but the signal from D25 is still like RTS.
Issue 2:
I have another device where the connection was changed(in the correct way):
On schematic(DEV_* - pins from LBEE5KL1DX):
D25(ALT2 = UART3_CTS_B) connect to DEV_RTS (direction <- ONLY from rts to cts)
F23(ALT2 = UART3_RTS_B) connect to DEV_CTS (direction -> ONLY from rts to cts)
Now it doesn't work, because between iMX and LBEE5KL1DX I used SN74AVC4T245 and data transmission allowed only
in the above direction. The "fsl,imx21-uart" driver have the "fsl,dte-mode" option. I checked this feature and signals swapped but Tx doesn't work.(uart_don't_work.png)
If I physically rewired signals from iMX (UART3_CTS_B and UART3_RTS_B) it works.
Question:
Can I swap cts and rts signals on iMX without board damaging?
Hello Ilya Byckevich,
Please look at the following thread, which clarifies this matter.
https://community.nxp.com/thread/397985
The DTE/DCE modes on the i.MX6 UART follow a logic that may differ from what would be considered the standard. You can find how the signals are mapped in section 64.2 of the i.MX6S Reference Manual. (Since the time that thread was posted the Reference Manual was updated).
I hope this information helps!
Regards,
Hi, Thanks, it helps. I missed this topic.