工程路径:
D:\Program_Files\TI\c2000ware\C2000Ware_4_01_00_00\driverlib\f2837xd\examples\cpu1\adc
微控制器:
TMS320F28379D
开发板:
TMS320F28379D LaunchPad Vre 2.0
图1. 28379D开发板
工程说明:
该工程利用ADCA及ADCD对ADCINA3及ADCIND3进行同步采样,并将转换结果利用DMA搬移到GS0RAM。
其ADC触发工作原理如下图所示:
图2. 工程ADC触发原理
如图2所示,ePWM单元的TBCTR为0事件触发SOC0采样,SOC0转换完成后会触发ADCINT1中断,在该中断处理函数中,将会关闭ePWM事件触发SOC0功能并关闭ADCINT中断;ADCINT1会触发SOC1~SOC15;SOC15转换完成后,会产生ADCINT2中断,同时,该中断作为DMA的启动条件启动DMA数据传输;ADCIN2会再次触发SOC0,如此重复Cycle2的过程直到完成全部转换。
准备测试信号源:
图3. AD输入源
图4. 将输入源调整为1.632V
例程调试:
问题1.
图5. 代码片段1
如以上代码片段,DMA通道2搬运的结果寄存器为ADCBRESULT_BASE,但是实际进行转换工作的是ADCD,因此这里官方发布的例程是有问题的,C2000ware版本C2000Ware_4_01_00_00。
问题2.
图6. 代码片段2
DMA通道2负责搬运ADCD的转换结果,由于ADCA与ADCD工作于同步采样方式,所以用ADCA的ADCINT2触发DMA通道2也是可以的。虽然ADCA的ADCINT2与ADCD的ADCINT2是同时发生的,不过我觉得把DMA通道2的启动条件设置为DMA_TRIGGER_ADCD2从工作原理上讲应该更清楚些。
问题3.
图7. 代码片段3
12bit转换模式下,ADC的采样窗口大小为75nS(15 x SYSCLK = 15 x 5ns)。如果使用这个采样窗口采集信号,会发现得到采集结果偏小。
图8. 75ns采样窗口采集结果
输入1.632V对应的理论转换结果为2228,对比可以发现,图8中的转换结果明显偏小,分析原因为采样窗口过小。如果采样窗口过大,又会对时间敏感型应用产生影响,因此使用者需要通过计算得到最小采样窗口时间以保证采样结果的准确。
SPRUHM8I文档的1586页11.15.2 Choosing an Acquisition Window Duration章节介绍了计算采样窗口的方法,计算过程与TMS320F28335的TRM手册中介绍的方法基本一致。
不过需要特别注意的是,对于TMS320F28379D,每个ADC通道的Cp电容值都是不一样的,这一点与TMS320F28335不同,后者均为10pF。TMS320F28379D各ADC通道的Cp值如下图所示:
图9. TMS320F28379D各ADC通道Cp值
另外一点,TMS320F28335的采样窗口寄存器数值是相对ADCCLK的,而TMS320F28379D的采样窗口寄存器数值是相对SYSCLK的。
计算ACQPS最小值:
图10.单端输入电路硬件特性
图11.估算最小ACQPS数值
图11为按照11.15.2 Choosing an Acquisition Window Duration章节估算最小ACQPS数值的计算结果,由于LaunchPad开发板没有为AD通道配置Rs和Cs,因此表中计算使用常规假定值。
图12.加大采样窗口后的采集结果
如图12所示,加大采样结果后,得到了准确的采集结果(输入1.632V对应的理论采集结果为2228)。
结论:
1. 官方例程中将DMA通道2的源地址设定为ADCBRESULT_BASE是错误的;
2. 官方例程中如果将DMA通道2的启动条件设定为DMA_TRIGGER_ADCD2可能会使转换原理更更清楚些;
3. TMS320F28379D的ADC采样窗口寄存器是对SYSCLK计数的,而TMS320F28335的ADC采样窗口寄存器是对ADCCLK计数的;
4. 官方例程中的采样窗口设置针对LaunchPad开发板而言过小,会导致采集结果偏小;
5. TMS320F28379D的各个ADC通道的Cp数值都是不一样的;
6. 需要计算最小采样窗口的大小,从而避免采样窗口过小导致的采集结果不正确问题以及采样窗口过大对时间敏感型应用产生影响。
7. TMS320F28379D的ADC通道CH值为14.5pF,TMS320F28335的ADC通道CH为1.64pF,虽然TMS320F28379的Ron电阻为425Ω,比TMS320F28335的Ron电阻1KΩ小一些,但是由于TMS320F28379D的CH数值加大,因此建议采用相对小些的Rs电阻以减小最小采样窗口从而减小对时间敏感型应用的影响。