I have connected UART on X-16 header(GND-2,RX-27,TX-28) of Iris Carrier Board. On booting I can see debug prints on serial console but not able to provide input from keyboard. While plugging Colibri iMX7 Dual in Colibri Evaluation Board, I can able to read/write through UART. Can anyone please help why TX is not working in Iris Carrier Board?
I guess you missed the following remark on page 21 of the Iris datasheet:
The RS232 serial transceivers can be shut down via two GPIOs which have been connected to the ForceOFF# pin. This is needed in order to use the UART signals that are on the extension connector at TTL logic level. The following table shows the SODIMM pin assignment of the GPIOs reserved for this purpose...
But same Iris Carrier Board’s uart is working fine with Colibri VF61 module.
I am not sure why it works for the Colibri VF61, it really should not work either.
In the end the RS232 serial transceiver as well as your UART adapter connected to X-16 drive the TX pin, which is not proper.
Whenever you want to make use of the TTL UART on X-16, you need to make sure to disable the on-board RS232 serial transceiver by driving the
FORCEOFF# pin (SODIMM 102) low.
Thanks for update but Rx-TX is also working with Iris Carrier Board with Colibri iMX6ULL module. Why its not working with iMX7dual?
As already said, you did connect the output of the Iris RS232 <-> CMOS transceiver IC4 with the output of your UART on CMOS levels you did connect to X16-28. Likely you now have a signal which is at 3.3V if you send ‘1’ and depending on the drive strength of the two outputs somewhere around 1.65V when you send ‘0’.
Possibly your specific Colibri VF61 works because it has a little higher threshold voltage than the Colibri iMX7.
However the interesting thing here is if the i.MX7 works if you disable the transceiver by clearing FORCEOFF# pin.
@max.tx : Thanx for help but can you please help me how to disable transceiver by clearing FORCEOFF# pin.
Have a look here.
On the Colibri iMX7 the SODIMM 102 pin goes to i.MX 7 pin SD2_DATA3. This pin provides the GPIO5_17 function which corresponds to Linux gpio number 145.
$ echo 145 > /sys/class/gpio/export $ echo "out" > /sys/class/gpio/gpio145/direction $ echo "0" > /sys/class/gpio/gpio145/value
to have the expected effect.
Since you don’t have a working UART console you can e.g. open a terminal on the graphical desktop or connect the module to ethernet and login over SSH to execute the commands.