i.mx28 AUART problem

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

i.mx28 AUART problem

644 Views
ctspotgreen
Contributor II

I want to improve auart real time capability,but I found some problem:

1. FIFO length is fixed,can't be changed,and in DMA mode,it must be opened

2. It can't generate an interrupt when auart rx pin receives one byte data

3. Because AUART DMA timeout function needed at least 1 bit time delay,I added a signal pin to trig driver to read rx buffer.When the AUART received data,then signal pin trigged interrupt,then the program entered the interrupt service.In ISR,I forced to stop DMA and copy DMA data to buffer,then I read receive FIFO.However,I can't get the right FIFO status from the AUART status register.

         MCU send data to i.mx28 AUART and trig i.mx28 pinctrl interrupt-->In ISR,memcpy(buffer,DMA Buffer,DMA received length)

I need help,thanks!!!

Labels (1)
0 Kudos
1 Reply

406 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

I have delved into this and it seems that the UART status like RXCOUNT field is updated only at the DMA RX interrupt or RX timeout interrupt.

You could wait until the timeout or maybe use the DEBUG registers of the DMA (DEBUG1  and DEBUG2). ("transfer in progress" state vs "transfer done" state in DEBUG1 register or number of bytes remaining for transfer in DEBUG2 register)

Alejandro

0 Kudos