Hi,
We are using apalis imx6q.
we are trying to use UART4 with RTS and CTS enabled.
We are using these pins (134 tx, 136 rx, 177 cts , 179 rts) with this configuration:
Hi @gclaudino.tx ,
the CSI interface is disabled, also the peripheral cannot work is some pins are
defined into another device. UART4 is up and running and TX, RX, CTS and RTS
pins are all connected to it only.
Can you explain that note please? Why does UART4 cannot work if
pinctrl_uart24_forceoff is not in place? What is the effect of such settings?
Before we can continue, please specify the following information:
Which exact Apalis iMX6Q are you using? Please share its whole name and version.
Which exact Carrier Board are you using? Please share its whole name and version.
Did you try to enable
Please share all modifications you realized
Please share which exact method you are using to evaluate the UART with RTS/CTS (script/source code/etc). This is really important to know how you are configuring the interface before usage.
From your last message:
Does it mean that you solved the issue? Or only RX/TX are working and RTS/CTS are not working yet?
Which exact Apalis iMX6Q are you using? Please share its whole name and version.
We are now using an Apalis iMX6D 1GB IT V1.1B, but we will also use V1.1C and V1.1D.
Which exact Carrier Board are you using? Please share its whole name and version.
Our proprietary carrier with the signals connected directly to the 232 transceiver
Did you try to enable
What do you mean?
Please share all modifications you realized
What do you mean?
No hardware changes have been made, the pins are connected directly to the 232 transceiver.
Please share which exact method you are using to evaluate the UART with RTS/CTS (script/source code/etc). This is really important to know how you are configuring the interface before usage.
We used minicom, enabling and disabling hardware flow control. The serial is then connected to a PC with hyperterminal.
Note that this simple test mode works fine on UART1, which is configured with CTS and RTS.
Does it mean that you solved the issue? Or only RX/TX are working and RTS/CTS are not working yet?
The serial UART4 iMX6 (UART3 Apalis) works fine without hardware flow control if only the TX and RX pins are defined in the yocto configuration.
If we add the CTS and RTS pins to this yocto configuration,
the serial no longer works, even if flow control is disabled in minicom.
Looking at the link it appears that there is no CTS and RTS support for the iMX6 UART4 (UART3 Apalis). However, reading the datasheet, the pins are present on the connector and appear to be used for the CSI interface.
Is it possible that there is additional hardware on the Apalis that does not allow the use of these pins as CTS and RTS?
In any case why do RX and TX no longer work when CTS and RTS pins are defined in yocto configuration even when hardware flow control is disabled?
We checked on the Datasheet of the module (https://docs.toradex.com/101770-apalis-imx6-datasheet.pdf) and the RTS and CTS Functions for pins 177 and 179 are the ALT3 Function. On the same datasheet you can also see on table 4-1 that ALT3 is defined with the following bits: 011. Therefore, We’d suggest you to change
we applied your suggestion (“0x1b0b3”) but nothing has changed.
Could you please answer this?
Is it possible that there is additional hardware on the Apalis that does not allow the use of these pins as CTS and RTS?
In any case why do RX and TX no longer work when CTS and RTS pins are defined in yocto configuration even when hardware flow control is disabled?
This was supposed to be only on RTS and CTS as the other pins were already working on their right alternate function.
We’ll be looking on your device tree to see if there’s something that we can spot that could be leading to this behavior. In the meantime, we’re also checking with our hardware team about your point.
any news about uart problem?
It is very critical for us to know if it is possible use this usart with cts and rts because we have our production stopped.
We tried to take a look at your PDF schematic, but we can’t perform a text search on it. Could you please share a PDF that allows text search? This will make everything easier
I was able to communicate using UART with RTS/CTS between:
Apalis iMX6D 512MB V1.1B + Ixora V1.1, and
Colibri iMX6DL 512MB V1.1B + Iris V1.1
I used only TTL level. On Ixora, I used the pins:
Apalis pin name
iMX6 Ball name
SODIMM number
Ixora pin
On device tree overlay
CSI0_DATA13
CAM1_D1
185
X14.8
MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x1b0b1
CSI0_DATA12
CAM1_D0
187
X14.7
MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x1b0b1
CSI0_DATA16
CAM1_D4
179
X14.11
MX6QDL_PAD_CSI0_DAT17__UART4_RTS_B 0x1b0b1
CSI0_DATA17
CAM1_D5
177
X14.12
MX6QDL_PAD_CSI0_DAT16__UART4_CTS_B 0x1b0b1
These Apalis pins are also referenced on node adv_7280, but this node is disabled by default.
For completeness, by default, we have the following on Colibri iMX6:
Colibri pin name
iMX6 Ball name
SODIMM number
Iris pin
On device tree
UART_B TXD
SD4_DATA4
38
X16.32
MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x1b0b1
UART_B RXD
SD4_DATA7
36
X16.31
MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x1b0b1
UART_B RTS
SD4_DATA6
34
X16.30
MX6QDL_PAD_SD4_DAT6__UART2_RTS_DATA 0x1b0b1
UART_B CTS
SD4_DATA7
32
X16.29
MX6QDL_PAD_SD4_DAT5__UART2_CTS_DATA 0x1b0b1
To use this interface on TTL level, we also need to disable the RS232 IC, as noted on the Iris’ datasheet. This is done by setting the SODIMM 104 (gpiochip1 - line 8) to low.
Here is a screenshot of both modules communicating