MSP430 AD採樣結果不正確的問題

2019-03-24 10:51发布

問題如下面敘述:

使用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採樣腳位電壓也是對的,結果採樣的數值會偏大,偏大的量也非固定值,請問這是什麼原因呢??

任何可能的原因都可以提出來參考,請教各位了 此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章