eqADC CFIFO triggering with HW and using eDMA to fill CFIFO

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

eqADC CFIFO triggering with HW and using eDMA to fill CFIFO

Jump to solution
805 Views
0xEC
Contributor IV

hi everyone,

I am working with MPC5775E board, using PAL lib, and I am trying to control eqADC with eDMA and triggering eqADC with PIT. 

PIT generates interrupt and trigger eqADC properly, eDMA transfers command from system memory to CFIFO push register and also results are transferred from RFIFO to system memory by eDMA. 

My question is that should I explicitly start eDMA channel to fill CFIFO by calling EDMA_DRV_StartChannel() function. I want to make eDMA automatically start to fill CFIFO. By the way I do not start RFIFO eDMA channel but it works fine. Can someone help me on this topic?

Best,

0 Kudos
Reply
1 Solution
767 Views
0xEC
Contributor IV

I solved the issue.

While using SDK's eqADC driver init API disables eDMA request after transfer complete.

 0xEC_0-1673354027553.png

I disabled it by calling this function:

0xEC_1-1673354101064.png

 

After this disable, eDMA works when eqADC requests to fill CFIFO and drain RFIFO.

View solution in original post

0 Kudos
Reply
3 Replies
768 Views
0xEC
Contributor IV

I solved the issue.

While using SDK's eqADC driver init API disables eDMA request after transfer complete.

 0xEC_0-1673354027553.png

I disabled it by calling this function:

0xEC_1-1673354101064.png

 

After this disable, eDMA works when eqADC requests to fill CFIFO and drain RFIFO.

0 Kudos
Reply
788 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

No, you should not trigger any DMA transfer manually. It is supposed to be triggered by eQADC module (by CFFFx and RFDFx flag).

If CFIFOx is not full DMA transfer is triggered by eQADC and loads one command to the CFIFO. If RFIFOx is not empty DMA transfer is triggered by eQADC and drains one result from the RFIFOx.

0 Kudos
Reply
783 Views
0xEC
Contributor IV

But after first fill of Command FIFO and after that result FIFO by eDMA, there is no further filling by eDMA even if these conditions are met

0xEC_0-1672993762236.png

 

0 Kudos
Reply