Hi Earl,
I managed to capture some register details after the event.
It appears that there is no DMA error, no UART error, DMA has completed and the FIFO is empty. The TC complete flag is set and TCIE is reset suggesting that the interrupt had occurred but the responseCompleteFunction had not been called??
Here are the contents of the registers I managed to log:
C1 0x00
:C2 0xAC TIE,RIE,TE,RE (TCIE disabled)
:C3 0x0F errors enabled
:C4 0x03 BRFA
C5 0x80 TDMAS
:C6 0x00
BDL 0x41 19.2k,20MHz
:BDH 0x00 RXEDGIE disabled
S1 0xD0 TDRE,TC,IDLE
:S2 0x40 RXEDGIF (not enabled)
SFIFO 0xC0 TXEMPT,RXEMPT
:CFIFO 0x00
:PFIFO 0xAA fifo's enabled
RCFIFO 0x00 RX fifo empty
:RWFIFO 0x01 wmark = 1
:TCFIFO 0x00 TX fifo empty
:TWFIFO 0x01 wmark = 1
TCD2_SADDR 0x1FFFE738
CITER_ELINKNO 0x0019 TX length
:BITER_ELINKNO 0x0019 TX length
TCD2_CSR 0x0088 DONE,DREQ
:DMA_ERR 0x0000
DMA_ES 0x0000
DMA_CR 0x0084 EMLM(???),ERCA
NBYTES_MLOFFYES 0x80000401 SMLOE,MLOFF=1,NBYTES=1
We need to fix this urgently as it is becoming an serious issue for our customers.
In desperation I am thinking of trying the following:
a) Turning off the RX/TX FIFO's
b) Using DMA complete interrupt instead of UART TC interrupt
c) Not using DMA at all and ship the data out one character at a time!!
Can you see anything that may be causing the problem or think of anything else?
Cheers, Julian