We have a custom imx6ULL board using RTEMS with 5 UARTs, we have an internal connection on UART5 that runs @ 230400 baud, N81. This board is a replacement board for an older ARM9 processor.
We have been experiencing a high number of framing errors (on RXD) on this port with no obvious reason, including checking the oscilliscope and the framing on the 8N1 characters look fine.
We do not use DMA for the Rx (as have had issues on other Freescale processors not handling errors well with DMA), but we have the Rx FIFO watermark set to 8 bytes with the aging timer set.
We are seeing these framing errors, usually on a 0x00 or 0x01 or 0x02 character, and sometimes even though the FIFO shows a framing error, the character is still correct.
We have checked the baudates and all looks good, but the problem has persisted.
Today I setup a test where I looped back the TXD to the RXD on our board, still framing errors, the I turned on the INTERNAL LOOPBACK on the RXD (UART5_UTS bit 12 LOOP) .
When sending 100 bytes streams of random characters I am *still* receiving the RX framing errors at about the same rate. I confirmed that the internal loopback is used as I am still receiving character when externally the TXD and RXD pins are open.
I have tried a lot of different tweaks in our driver to see if I can remove this issue, but to no effect.
Has anybody experienced anything like this previously?
If so, is there any solution for it?
Module Clock on the system is setup at 80MHz
UFCR RFDIV setup to 0x05 - dvide input clock by 1
UBIR = 9 followed by
UBMR = 215
(the actual baudrate of our system is setup for 213481 on the other modules so I have matched the rate on the this chip)
80Mhz/16/231481 = 21.6
I have also tried UBIR=99 and UBMR=2159, but with similar results.
Interrupt driven, with RXFIFO set to 8 characters.