自己设计板子,使用MSP430G2332,软件为Code Composer Studio 7.0.0
发现使用MSP430G2332的ADC10采集数据时,
如果使用者单次序列模式,将会导致1次采集完后无法进入第二次采集,
单点模式没有测试过,
具体表现就是,
ADC配置完成,包含DTC(单模块非连续模式),中断开启,
然后使用ADC10的ADC10SC进入采集,第一次采集流程正常,第二次导致无法进入中断,参照官方程序,重新关闭ENC重新配置ADC10SA,再打开ENC,均无法触发中断.经过硬件仿真,确定ADC10MEM的数据在变化.此问题为DTC失效.也尝试过全部参数重新配置,都无法才生第二次中断,但是,如果把ADC10SC及DTC交由定时器中断处理,则流程正常
总结问题求教如下:
1.如果非连续性的ADC采集模式,即CONSEQx为0(未测试)或1(确定)时,在开启DTC(单模块非连续模式)时,程序只能做1次采集,完成后,即使程序重复调用时,不做第二次采集.
2.ADC使用连续模式,DTC使用单模块连续模式时,数据存在错位现象,即假设数据通道3210四个通道开启,DTC1=4,放入数组RES[4]中,原定0为放3通道数据,1为放2通道数据,2为放1通道数据,3为放0通道数据,无论仿真还是实际均出现混乱,即0通道数据本次可能放在RES[3]中,下次可能放入RES[0];然后RES[1],RES[2],
3.如果非连续通道采集出现不应该被打开通道而被打开采集,即假设采集通道4310四个通道,在序列模式下会导致通道2被采集,不知道引发问题是否同问题2.
4.如果ADC使用连续模式,DTC使用单一模式(即开头问题)采集完成后,关闭ENC重设DTC,SA等数据,无法使DTC功能再次生效(非中断模式,标志位查询方式,标志位由ADC中断设置),但是确定ADC10MEM数据在变动
5.DTC模式下的数据转移任务需要一个MCLK时钟,该时钟是要程序主动给予,还是DTC会自动挂起CPU占用一个MCLK?
以上问题,期待回答,谢谢