芯片型号:MSP430FR5969
问题:当磁场通道的输入饱和后(例如用强磁干扰),X加速度的采样值会变大,Y、Z加速度正常。取消强磁干扰后X加速度会恢复为正常值,不知道是为什么?
采样通道分布如下:
AD通道 | 通道模式 | 采样信号 | 采样方式 | 采样次数 |
A8 | 单端 | X加速度 | 重复单通道采样 | 70 |
A9 | 单端 | Y加速度 | 重复单通道采样 | 70 |
A10 | 单端 | 温度 | 重复单通道采样 | 22 |
A11 | 单端 | Z加速度 | 重复单通道采样 | 70 |
A12 | 差分 | Y磁场 | 重复单通道采样 | 135 |
A13 | 差分 | |||
A14 | 差分 | X磁场 | 重复单通道采样 | 135 |
A15 | 差分 | |||
A6 | 差分 | Z磁场 |
| 135 |
A7 | 差分 |
AD初始化的主要配置如下:
ADC12CTL0|=ADC12ON+ADC12MSC+ADC12SHT10+ADC12SHT00;//采保时间8个时钟周期
ADC12CTL1|=ADC12SSEL1+ADC12SSEL0+ADC12SHP+ADC12CONSEQ1+ADC12DIV2+ADC12DIV1;//SMCLK=12MHz 采样信号由采样定时器提供 重复单通道转换 时钟7分频
ADC12CTL3=ADC12CSTARTADD3;//转换的起始地址
ADC12MCTL8=ADC12INCH3+ADC12VRSEL1+ ADC12VRSEL2+ ADC12VRSEL3;//输入通道选择 VR+ = VeREF+, VR- = VeREF-
采样顺序描述:
AD采样的结果通过DMA获取,在DMA中断中对采样结果进行平均,并启动下一个通道的AD采样。所有通道都采完后AD停止。下一轮的采样由定时器启动。采样周期为20ms。
自己排查过程:
1当磁场输入饱和时通过仿真器查看了一下ADC12MEM8的值,这个值就已经不对了,因此可以排除DMA搬运的问题。
2用安捷伦的电压表量了一下x加速度的模拟信号,这个值和磁场干扰前一样,并没有增大,但是AD采样的值却变大了。
3. ADC12MCTL8=ADC12INCH3+ADC12VRSEL1+ ADC12VRSEL2+ ADC12VRSEL3+ ADC12VRSEL0;
将所有通道的参考电压改为VR+ = VeREF+ buffered, VR- = VeREF-结果仍旧是这样。
请高手指点一下。