AnsweredAssumed Answered

i.MX6 UART hardware misbehaves on baudrate mismatch

Question asked by Troy Kisky on May 13, 2014
Latest reply on Mar 20, 2018 by Fabio Estevam

I have a weird serial port issue. When I initialize uart1 at 19200,8,n,1
and send the letter 'b' at 115200,8,n,1 then the uart will continuously
receive 0xff's. Sometimes I have to send 'b' twice to get into this weird
state. Then, when I type the letter 'a', it gets out of this state.

I've done this on a board with a i.MX6Q and a board with a i.MX6S (solo) processor.

Here's test results under u-boot to get any software issues out of the mix,
but I've seen the same results using Linux.

Note: uart1 base 02020000(URXD), uart2 is u-boot console.


/* 1st initialize same as Linux for 19200,8,n,1 */
U-Boot > mw.l 02020080 00000221 && mw.l 02020084 00004027 && mw.l 02020088 00000704 && mw.l 0202008c
00004000
U-Boot > mw.l 02020090 00000b01 && mw.l 02020094 00002040 && mw.l 02020098 00005088 && mw.l 0202009c
0000002b
U-Boot > mw.l 020200a0 00000000 && mw.l 020200a4 00000053 && mw.l 020200a8 00000c34
U-Boot > mw.l 020200b0 00002ca4 && mw.l 020200b4 00000060 && mw.l 020200b8 00000000
U-Boot > md.l 02020000 1
02020000: 00000000                               ....
U-Boot > #press a at 19200,8,n,1
U-Boot > md.l 02020000 1
02020000: 00008061                               a...
U-Boot > md.l 02020000 1
02020000: 00000000                               ....

U-Boot > #press b at 19200
U-Boot > md.l 02020000 1
02020000: 00008062                               b...
U-Boot > md.l 02020000 1
02020000: 00000000                               ....
U-Boot > #press b at 115200,8,n,1
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 00000000                               ....
U-Boot > md.l 02020000 1
02020000: 00000000                               ....
U-Boot > md.l 02020000 1
02020000: 00000000                               ....
U-Boot > #press b at 115200,8,n,1
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > #press a at 115200,8,n,1
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 000080ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 0000e0ff                               ....
U-Boot > md.l 02020000 1
02020000: 000000ff                               ....
U-Boot > md.l 02020000 1
02020000: 000000ff                               ....
U-Boot > #press c at 19200
U-Boot > md.l 02020000 1
02020000: 00008063                               c...
U-Boot > md.l 02020000 1
02020000: 000000ff                               ....
U-Boot >

Outcomes