kevinschmidt

eQADC with eDMA for MPC56xxM

Discussion created by kevinschmidt on Mar 19, 2013

Hiya,

 

currently, i'm dealing with the eQADC of the MPC56xxM family. The aim is to read in 12 analog sensors via the eQAD module. They are to be updated in the continuous scan mode. There are 3 CFIFOs which are adressed by CFPR[x]. According to the MPC5634MRM the configuration and conversion commands need to be transferred to the eQADC with the help of eDMA.

Well, I tried to implement that approach and followed thereby an example presented there: eQADC_OPS.c -  open5xxxecu -  Open5xxxECU is an open source/open design engine controller using the freescale MPC5xxx p…

Now, I still have some questions:

 

What is the exact difference between a configuration (CFCR) and a conversion (CFPR) command? With a conversion command you enable the EOQ bit, choose the AD module as well as the channel and the RFIFO where the result is to be stored. To my understanding one does the same when speaking of a configuration command.

 

When looking into the function Init_AD_DMA one has to assign a value to the NBYTEs "value", the inner minor byte count. Having 4x32Bit commands in CFIFOx, does it mean that NBYTES needs to be 4x4=16 ? Still it's assigned to 4 because I assume that the iteration count (BITER and CITER) means that CITER times  SSIZE byte will be transfered. Is this assumption correct?

 

Furthermore, the DMA initialization is only called once, after setting up the eQADC. Since there are no interrupts enabled and none of the FIFO commands are changed during runtime, is it necessary to trigger the DMA transfer again? It should load the commands once and the AD modules are calling them periodically since they are written to their buffers right?

 

For the ultimate confusion, the corresponding source code is attached...

 

Cheers,

Kev

Original Attachment has been moved to: eqadc.txt.zip

Outcomes