[IMX6DL]UART3 RX failed with 921600bps or faster baudrate

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

[IMX6DL]UART3 RX failed with 921600bps or faster baudrate

1,660 Views
cliffhuang
Contributor II

Hi,C

We use IMX6DL CPU on our device and use UART3 for BT connection.

The pads configuration we use are described below.

We have a problem the BT cannot work on 921600bps or higher baudrate.

We have tried to disconnect BT chip and sent UART data to IMX6DL with 921600 baudrate,

we found the received data in UART RX sometimes is wrong.

But TX is work fine with 3M baudrate.

Do you have any idea about how to fine tune UART RX performance?

MX6DL_PAD_EIM_D23__UART3_CTS, /* UART3_CTS */
MX6DL_PAD_EIM_EB3__UART3_RTS,
MX6DL_PAD_EIM_D24__UART3_TXD,/* UART3_TXD */
MX6DL_PAD_EIM_D25__UART3_RXD,/* UART3_RXD */

#define MX6DL_PAD_EIM_D23__UART3_CTS                                           \

  IOMUX_PAD(0x0530, 0x0160, 2, 0x0000, 0, MX6DL_UART_PAD_CTRL)

#define MX6DL_PAD_EIM_EB3__UART3_RTS                                           \

  IOMUX_PAD(0x05A0, 0x01D0, 2, 0x0908, 3, MX6DL_UART_PAD_CTRL)

#define MX6DL_PAD_EIM_D24__UART3_TXD                                           \

  IOMUX_PAD(0x0534, 0x0164, 2, 0x0000, 0, MX6DL_UART_PAD_CTRL)

#define MX6DL_PAD_EIM_D25__UART3_RXD                                           \

  IOMUX_PAD(0x0538, 0x0168, 2, 0x090C, 1, MX6DL_UART_PAD_CTRL)

Best regards,

Cliff

Labels (1)
Tags (2)
0 Kudos
3 Replies

791 Views
Pavel
NXP Employee
NXP Employee

The main problem for high-speed UART is noise or spikes on the RX. UART receiver usually uses three samples per bit. Three samples per bit mean that bit time interval is divided into four parts. Start of sampling is negative edge of start bit. If start of sampling detected too early or too late, UART byte will be received incorrectly. Especially it happens if long UART wires are used.

Check please noise or spikes on the RX of the UART3.

Test your board using external loopback of the UART.


-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

791 Views
zutter
Contributor II

Hello,

i have same problem (on every UART). Everything works fine up to 115200Baud. Adjust higher baud rates causing errors.  Can't see noise and can't improvements when go from 921600Baud stepwise back to 230400Baud. Checked "module_clock" and UFCR, erverything seems to be right - any hints?

Thanks.

0 Kudos

791 Views
zutter
Contributor II

Ok, in may case the problem was not on imx6 side.

Using two imx6 for UART communication 921600Baud works fine.

0 Kudos