This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3530 UART with DMA disabled -> rx overrun

Hello,

I'm using Mistral EVM with WinCE.

I'd like to receive by UART1 100 bytes at 115200 bps with no DMA, and FIFO trigger level at 1 char. So I'd like to obtain 1 interrupt for each char received.

The IER register is correctly set to 0x0D (RHR interrupt enabled ).In the tests I can see the system cannot save all the bytes due to overrun error. The interrupts generated are less than the number of bytes. Often the interrupts type generated is RX timeout ( not RHR normal interrupt ) and the FIFO often goes to fill before the ISR routine can empty it. If I send to the EVM bytes with intercharacter time about 1 to 10 ms it is ok. But If bytes arrive without interchar interval there is the overrun.

Why Rx timeout interrupt is generated instead of RHR interrupt ? I set the threshold trigger to FIFO to 1 byte, so the RHR itnerrupt should be generated immediately after the arrive of 1 byte. I set FCR bit 6 to 1 and bit 7 to 0.

Are there any other settings to do to generate 1 interrupt for each byte received ?

Has anyone experienced uart without dma in omap35 ?

 

thanks