TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 ADC过采样应该如何使用DMA?

应用场景如下:
ePWM1输出10k PWM信号,计数周期100us。希望以40k的开关频率 在0us 25us 50us 75us同步采样。

使用ePWM2 cnt=ZRO时作为ADC触发源。ePWM计数频率40k,ePWM1在cnt=ZRO输出同步信号同步ePWM2,保证两者同步。

实际算法在ePWM1的ISR中执行,即进入到ISR以后,可以访问过去四次ADC转换结果。现在希望用使用DMA,将过去四次ADC转换结果放到一个16×4的buffer中。

应该如何设置DMA呢?主要是Burst、Transfer、Wrap三个函数应该如何设置。
初步想法是一个Burst传输16个16位字,也就是16路ADC转换结果。如何保证4次AD转换DMA过程目标地址每次偏移16呢?
SPRUFB8这个文档看得云里雾里,不是太明白。

// DMA can only access ADC result at 0x0B00-0x0B0F
DMACH1AddrConfig(&AdDmaBuf[0], &AdcMirror.ADCRESULT0);

DMACH1BurstConfig(16-1, 1, 1);

DMACH1TransferConfig(9,-15,(-150 + 1));

DMACH1WrapConfig(100, 100, 100, 100);

DMACH1ModeConfig(
DMA_SEQ1INT,
PERINT_ENABLE,
ONESHOT_DISABLE,
CONT_DISABLE,
SYNC_DISABLE,
SYNC_SRC,
OVRFLOW_DISABLE,
SIXTEEN_BIT,
CHINT_END,
CHINT_ENABLE
);

 

赞(0)
未经允许不得转载:TI中文支持网 » 28335 ADC过采样应该如何使用DMA?
分享到: 更多 (0)