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.

请问一下28335 ADC- DMA的一个问题



DMAInitialize();
    DMACH1AddrConfig(&ADC_DMA_Buf[0] ,&AdcMirror.ADCRESULT0);
    DMACH1BurstConfig(1,1, ADC_BUF_SIZE/2);
    DMACH1TransferConfig(ADC_BUF_SIZE/2 - 1,1,1);        
    DMACH1WrapConfig(7,0,0,1);

上面的代码背景是ADC 同时采两路,然后DMA传到内存

对于上面的代码,我有一点不明白,既然 adc 是 2 words/burst, 一个burst 传两个word,那么,在wrap的配置中,应该是2个地址就绕回,为什么要配置成8个地址绕回? 为什么不是2个地址增量一个绕回?

ADC SEQ1 中,如果选2个通道同时采A0/B0, A1/B1,是不是地址增2就又绕回了? 难道后面的通道也要遍历到A7/B7才绕回?

谢谢。

  • 这个跟你的ADC配置相关,因为ADC可以配置为这种情况,如采样A1,A2通道,结果放在result0,result1,下次来采样时,会放在result2,result3,直到存满16个result时,才返回。我认为你的DMA之所以会这么去设, 应该是ADC采用这种配置方式。你可以通过仿真看一下ADC结果寄存器即明白。

    Eric