Dear Sir,
The second port TI UART (16C752C) seems to have problem in Xon/Xoff flow control.
It will miss sending Xon to the sender after massive read/write test.
Port 1 doesn’t have this problem.
Test procedure (All UART register access consideration has been double checked)
1. Port 2 enable TCRTLR. (MCR bit-OR 0x40)
2. Receive FIFO trigger level to RESTORE is 4 bytes. (TCR set to 0x1D)
Receive FIFO trigger level to HALT is 52 bytes.
3. Receive Interrupt Trigger level is 48 bytes. (TLR set to 0xC1)
4. Port 2 is enabled with Xon1, Xoff1 flow control on (EFR bit 0~3 is 0xA)
both TX and RX.
5. Port2 is connected to PC COM port.
Both port are opened with 115200, N81, Xon/Xoff flow control.
6. PC COM port start to send massive data to see if Port2 will send xon, xoff to control flow.
7. Port2 will send a series of Xoff and Xon characters to control flow in about 30 seconds,
but finally stops at Xoff and no other Xon is sent.
8. The receive FIFO of Port 2 is checked empty by the following procedure.
1. When this problem happened, connect port2 to another PC COM port physically.
2. PC COM port send a byte ‘Z’ to Port2.
3. Port2 will issue a receive interrupt and receive the byte ‘Z’.
Port2 should have sent Xon when the receive FIFO has data less than 4 bytes (configured by register TCR)
The Xon 'byte' seems to be stuck in the UART, because when I try to disable software flow control, there will be a "Xon"
byte sent out.
Can any one suggest how to solve this problem?
Thanks,