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.

MSPM0G3507: ADC DMA first transfer seems to do three transfers ?

Part Number: MSPM0G3507
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

ADC DMA is setup to fill a buffer from mem0, single byte.

ADC is triggered externally and is setup OK, 8 bits.

I do a single external ADC trigger - visible on my logic analyser.

If I have a look at the first transfer there seems to be three byte transfers to my buffer !

Buffer is initialised to zero.

Any clues ?

//Configure ADC DMA
DL_DMA_disableChannel(DMA, ADC0_CHAN_ID);
DL_DMA_disableChannel(DMA, ADC1_CHAN_ID);
DL_ADC12_disableDMA(ADC12_0_INST);
DL_ADC12_disableDMA(ADC12_1_INST);
DL_ADC12_disableDMATrigger(ADC12_0_INST,(DL_ADC12_DMA_MEM0_RESULT_LOADED));
DL_ADC12_disableDMATrigger(ADC12_1_INST,(DL_ADC12_DMA_MEM0_RESULT_LOADED));
DL_ADC12_clearDMATriggerStatus(ADC12_0_INST,DL_ADC12_DMA_MEM0_RESULT_LOADED);
DL_ADC12_clearDMATriggerStatus(ADC12_1_INST,DL_ADC12_DMA_MEM0_RESULT_LOADED);
DL_DMA_setSrcAddr(DMA, ADC0_CHAN_ID, DL_ADC12_getMemResultAddress(ADC12_0_INST, DL_ADC12_MEM_IDX_0));
DL_DMA_setSrcAddr(DMA, ADC1_CHAN_ID, DL_ADC12_getMemResultAddress(ADC12_1_INST, DL_ADC12_MEM_IDX_0));
DL_DMA_setDestAddr(DMA, ADC0_CHAN_ID, (unsigned int) ptr8_buffer0);
DL_DMA_setDestAddr(DMA, ADC1_CHAN_ID, (unsigned int) ptr8_buffer1);
DL_DMA_setTransferSize(DMA, ADC0_CHAN_ID, 65);
DL_DMA_setTransferSize(DMA, ADC1_CHAN_ID, 65);
// ADC DMA enable
DL_ADC12_clearDMATriggerStatus(ADC12_0_INST,DL_ADC12_DMA_MEM0_RESULT_LOADED);
DL_ADC12_clearDMATriggerStatus(ADC12_1_INST,DL_ADC12_DMA_MEM0_RESULT_LOADED);
DL_ADC12_enableDMATrigger(ADC12_0_INST,(DL_ADC12_DMA_MEM0_RESULT_LOADED));
DL_ADC12_enableDMATrigger(ADC12_1_INST,(DL_ADC12_DMA_MEM0_RESULT_LOADED));
DL_DMA_setDestAddr(DMA, ADC0_CHAN_ID, (unsigned int) ptr8_buffer0);
DL_DMA_setDestAddr(DMA, ADC1_CHAN_ID, (unsigned int) ptr8_buffer1);
DL_DMA_enableChannel(DMA, ADC0_CHAN_ID);
DL_DMA_enableChannel(DMA, ADC1_CHAN_ID);
DL_ADC12_enableDMA(ADC12_0_INST);
DL_ADC12_enableDMA(ADC12_1_INST);