AnsweredAssumed Answered

UART RX SDMA problem on iMX6Q

Question asked by AlexeyT on Jan 15, 2016
Latest reply on Apr 5, 2017 by Shinichi Ichimura

Hi All,

 

I am facing a quite a strange issue with the subject.

It look like it only partially works.

I have UART4 configured for SDMA with

- RXTL set to 16 bytes

- TXTL set to 16 bytes

- DMA ageing turned on

- SDMA watermark level set to 16 bytes as well

 

I am having problem when transfer size is exactly 16 bytes, in this case SDMA interrupt does not trigger.

If I send from 1 to 15 bytes I receive RX interrupt and get the data correctly.

If I send 16 bytes I don't get RX interrupt at all.

If I send 16 bytes and then 1 extra byte after a delay I will get interrupt and read all 17 bytes ok.

 

To me it look like I can get DMA data ageing interrupt but can't get normal watermark based interrupt.

I tripple checked UART code and cannot find any issue, everything look completely fine.

Checked SDMA channel configuration and found no configuration error as well.

Can you please suggest where do I need to have a look to check fo SDMA possible watermark errors?

 

It look like only UART that suffers, other devices which use SDMA work completely fine.

My platform is Windows Embedded Compact 7.

 

Thanks,

Alexey

Outcomes