芯片型号: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-结果仍旧是这样。
请高手指点一下。
Susan Yang:
请问您现在使用的加速度计是什么型号?
user4461879:
回复 Susan Yang:
ADXL354B
Susan Yang:
回复 user4461879:
建议您咨询下ADI公司看ADXL354B是否可以在强磁场下正常工作。
user4461879:
回复 Susan Yang:
我在问题描述中已经写了,在强磁环境下ADXL354B的X轴加速度输出的模拟信号并没有发生变化,但是AD采样的值却变大了,另外y和z的加速度采样和强磁干扰前的是一致的,因此基本可以排除是加速度计的问题。另外我测试了一下,把磁场输出的信号和单片机的AD输入口断开,施加强磁干扰,x轴加速度采样正常。因此可以判断x轴加速度采样值变大的原因就是磁场通道的模拟输入信号太大,超过了单片机的供电电压3.3v,也超过了AD的参考电压VEREF+(3.0V).造成的,只是现在不理解的是一个通道如果输入信号太大为什么会影响其他通道的采样?是单片机AD的问题还是我设置的有点问题?
灰小子:
建议上传下电路图和pcb图。
最容易受到干扰影响的是mcu的外围模拟电路和io,是走线较长和环路较大的部分。
如果用了外部参考电压,也包括这部分的走线。
user4461879:
回复 灰小子:
我的描述可能夸张了一些,我所说的强磁干扰就是用螺丝刀的磁头紧贴磁场测量芯片,使磁场芯片输出的模拟信号变大(超过了AD的参考电压),此时另外一个用于测量加速度信号的AD采样值会变大,但是奇怪的是加速度的模拟信号并未变大。电路图我等会找其他同事要一下吧。
TI中文支持网



