Hello,
I have some custom hardware for driving a motor using the Universal Motor Control lab.
So far, I have verified the ADC's are working and calibrated, and the PWM's are functioning correctly in build level 1 and are trying to function correctly in build level 2.
However, I still have some issues getting the motors spinning correctly (motor loudly and slowly spins and draws maximum current).
I believe the ADC's are not quite properly calibrated. The offsets are calibrated, but they still swing between +/-25mA, which I suspect is confusing the control system.
Anyway, I need the datalog setup properly to help diagnose this issue, but the datalogs are not updating at all!
I have set up 4 channels on the datalog like so using the stock Universal Motor Control lab code:

I can watch the pointers, and they correctly point to the ADC data and the FOC angle.
However, the datalog buffers are filled with all zeroes, and of course CCS graphs all zeroes.
I did have to modify the code slightly because the stock code uses 16 bit integers instead of 32 bit floats for the datalog buffer, even though the ADC values are stored as floats and the code everywhere else expects a float.
Anyway, I don't think that's the problem.
Also, digging into this, I don't see any way the DMA actually uses the 'datalog parameters' at all ( the datalogObj->iptr[] ). The 'setupDMAforDLOG' uses the datalog buffer as both the receive and send for the DMA transfer. Therefore, I am totally at a loss as to figuring out how to resolve this issue. I would expect that 'setupDMAforDLOG would use the 'iptr' as a send for the DMA configuration. Maybe the setup is only to get the datalogBuff to wrap, and that begs the question: where is the data actually being passed?
I have used the other labs before on evaluation boards, and they all configure the DMA's in the same way (in 'setupDMAforDLGO', using the datalogBuff#[0] as recv, and datalogBuff#[1] as send).
How do I get my datalogs working?