IMX8M Mini UART unreliable

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8M Mini UART unreliable

929 Views
trevR
Contributor I

The processor is on a single board from MYiR, the MYS-8MMX, but they have been unable to provide any help. Perhaps someone here has some insight.

The board is running ubuntu 18.04.6 LTS. I was able to modify the device tree source file and rebuild the kernel to use some of the GPIO pins for UART as indicated in the SBC’s documentation. The TX line always functions. Unfortunately there is a 50% chance upon boot that the RX line does NOT function at all, but 50% of the time everything works great and can continue to run just fine for hours.

When the issue occurs after boot, it will usually receive the first input preceded by a ton of NULLs, and then won't receive any input at all after that. Sometimes it does not even receive the first input.

I have verified with a oscilloscope that there is not an issue with the serial cable i.e. the RX line on the board is receiving the bytes.

0 Kudos
Reply
1 Reply

898 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Let me assume you are using ECSPI1 pins for UART3:

 

  Open the Base board schematic of Imx8MM-EVK, and find page 10, we can see the following warnings:

b45499_0-1646113732819.png

 

         It means that internal pull(up/down) is invalid when using 3.3V IO, so we should disable internal pull(up/down) of UART pins of CPU.

         For example, some customers use ECSPI1 PADs to multiplexed UART signals:

b45499_1-1646113732828.png

 

 

Device tree should be changed like below:

Open linux-imx/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi, and find pinctrl_uart3 node, modify PAD strength from 0x140 to 0x40, like below:

         pinctrl_uart3: uart3grp {

                  fsl,pins = <

                          MX8MM_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX           0x40

                          MX8MM_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX           0x40

                          MX8MM_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B          0x40

                          MX8MM_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B        0x40

                  >;

         };

       Above code was validated on i.MX8MM-EVK+AW-CM276-uSD January 2021.

[Note]

As for my personal opinion, probably even if IO=1.8V, timeout issue also occur, so above code can also be used.

 

Above code has been validated for Bluetooth which uses UART3 port.

You can try it.

0 Kudos
Reply