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

msp430f5529内部ADC转换不准

我用f5529自带AD采集电压,当采集到的电压经过AD采样后值在2048上下一定范围内时,输出的AD采集值会变为2048,导致采集一条0-3V渐变的电压在采集值2048上下一定范围内的值变成一条直线,当值偏离2048比较远之后一切恢复正常。源信号通过示波器观察一切正常。将数据通过串口输出,画图软件画出来后结果如下图。可以肯定源信号没有问题。初始化代码如下:

 

unsigned int Init_AD()

{   P6SEL |= BIT4 + BIT5 + BIT6 + BIT7;                      // P6.5 ADC option select (A5)  

ADC12CTL0 = ADC12SHT02 + ADC12ON/* + ADC12REFON + ADC12REF2_5V*/;                  // 打开ADC12,选择采样时间周期,选择比较电压  

ADC12CTL1 = ADC12SHP + ADC12SSEL0 + ADC12SSEL1/* + ADC12CONSEQ0*/;                // 选择采样结果存储地址,采样默认单通道模式  

ADC12MCTL0 = ADC12SREF_0;                 // Vr+=AVDD and Vr-=AVss                    //ADC12MCTLx,X表示结果存储的地址,基准及通道选择。   

ADC12MCTL0 = (ADC12MCTL0 & 0xf0) | ADC12INCH_0;                 // 通道选择。        

 ADC12CTL0 |= ADC12ENC;           

ADC12CTL0 |= ADC12SC;   

 while (!(ADC12IFG & BIT0));  

 _NOP();  

 positionData = ADC12MEM0;   

 return positionData;         

}

Hardy Hu:

Hi, Simon,

你好!从你给的信息看,有几个建议可以去尝试:

1)现在配置的ADC时钟使用内部MODOSC,4.8MHz左右,采保时间为16个ADC时钟,则采保时间为大约3.33us,那么需要采样的信号频率最好是在KHz以下。

2)你所指的2048上下的区间是多少,能否把你的信号曲线和采到的曲线发上来看一下。

Simon Chang:

回复 Hardy Hu:

谢谢你的解答。单片机频率为16M,AD时钟也是16M的,采样频率为512Hz,信号曲线在我发帖的1.jpg图片上画出来了,是不是采样时间太短的问题?

Simon Chang:

回复 Hardy Hu:

图形见下图

Hardy Hu:

回复 Simon Chang:

Hi, Simon,

1)从你给的代码看,ADC时钟是用的4.8MHz的MODOSC;

2)我看不出来你的信号频率是多少,可以尝试将采保时间延长来试试,修改ADC12SHT0x;

赞(0)
未经允许不得转载:TI中文支持网 » msp430f5529内部ADC转换不准
分享到: 更多 (0)