2187|0

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MSP430 AD採樣結果不正確的問題 [复制链接]

問題如下面敘述:

使用MSP430F1611,給定電壓範圍0~3V,AD採樣範圍為0~4095
我有一個PCB板,板子上的MSP接上信號產生器的1.5V、1kHz方波,取最大值,得到的AD採樣為2200,但是理論上AD採樣值應該會接近2048;
我用示波器量AD採樣的腳位,示波器上電壓顯示是1.5V沒錯,為什麼量測出來的AD值卻不正確?

另一個測試是使用MSP開發板,同樣接1.5V、1kHz方波,取AD最大值,結果是很接近理論值2048的

附上AD設置:單通道採樣4000點
------------------------------
void ADC_Init(void)
{
    ADC12CTL0 &= ~ENC;
    ADC12CTL0 = SHT0_2 + ADC12ON;       // Turn on ADC12, set sampling time
    ADC12CTL1 = CSTARTADD_0 + SHS_0 + SHP + ADC12DIV_0 + ADC12SSEL_0 + CONSEQ_0;
    //ADC12CTL0 = SHT1_4 + SHT0_4 + ADC12ON;   
    //ADC12CTL1 = SHS_0 + SHP + CONSEQ_0;
    ADC12MCTL0 |= SREF_0 + INCH_0;                     // A0 goes to MEM0
    ADC12IE = 0x0001;                         // Enable ADC12IFG.7 for ADC12MEM7
    ADC12CTL0 |= ENC;                         // Enable & start conversions   
}

#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
    //while((ADC12CTL1 & ADC12BUSY) == 0);
    if(adc_index < 4000)
    {                    
        
        adc_index++;
        Voltage_Buffer = ADC12MEM0;
        if(Vmax < Voltage_Buffer) Vmax = Voltage_Buffer;
        
    }
    if(adc_index == 4000)
    {
        m = 2;
        //_BIC_SR_IRQ(CPUOFF);
    }
}
----------------------------------------------

PCB板上的MSP在AD採樣前有先接Buffer,有用示波器量AD採樣腳位電壓也是對的,結果採樣的數值會偏大,偏大的量也非固定值,請問這是什麼原因呢??

任何可能的原因都可以提出來參考,請教各位了
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表