標(biāo)題: 關(guān)于九齊單片機(jī)內(nèi)部1/4電壓采樣 [打印本頁]

作者: 1481509156    時間: 2024-8-1 11:21
標(biāo)題: 關(guān)于九齊單片機(jī)內(nèi)部1/4電壓采樣
九齊IC的示例程序中,通過內(nèi)部1/4VDD采樣到的ADC值是正常值的1/4嗎?比如VDD是5V,對應(yīng)4096。這里采樣到的ADC最多就是1024?
//--------------- 1/4*VDD ADC CONVERSION -----------------------------------
void QuaVDD_Convert(char count)
{
    char i;
    ADMD = C_ADC_En | C_ADC_CH_En | C_Quarter_VDD;    // Enable ADC power, Enable global ADC input channel, Select internal 1/4*VDD as ADC input
    for (i = 1; i <= count; i++)
    {
        ADMDbits.START = 1;                       
        Wait();
        R_QuaVDD_DATA_LB += (0x0F & ADR);
        R_QuaVDD_DATA += ADD;
    }
}
unsigned int QuaVDD_Count(void)
{
    unsigned int temp;
    R_QuaVDD_DATA = R_QuaVDD_DATA_LB = 0x00;
    QuaVDD_Convert(8);                        // Execute 8-times of 1/4*VDD ADC conversion
    R_QuaVDD_DATA <<= 4;
    R_QuaVDD_DATA_LB &= 0xF0;
    R_QuaVDD_DATA += R_QuaVDD_DATA_LB;
    R_QuaVDD_DATA >>= 3;
   
    temp=R_QuaVDD_DATA;
   
    return temp;
}

作者: Y_G_G    時間: 2024-8-1 22:10
要選擇參考電壓的呀
選擇好參考電壓之后,計算出來的數(shù)字量,只有實際電壓的1/4
比如,VDD為4V,選擇2V參考電壓,1/4VDD通道,那么,ADC出來的數(shù)字量就是: 1024
作者: 13423265909    時間: 2024-8-2 10:36
ADC轉(zhuǎn)換和累加:QuaVDD_Convert函數(shù)啟動ADC轉(zhuǎn)換并累加結(jié)果。這里,每次轉(zhuǎn)換的結(jié)果都被加到R_QuaVDD_DATA_LB的低4位和R_QuaVDD_DATA中。這是為了通過多次測量來提高精度或穩(wěn)定性。 數(shù)據(jù)處理:在QuaVDD_Count函數(shù)中,首先清零累加器,執(zhí)行8次轉(zhuǎn)換,然后通過位操作處理結(jié)果。這里,R_QuaVDD_DATA <<= 4;將結(jié)果左移4位,可能是為了與R_QuaVDD_DATA_LB的低4位對齊。然后,R_QuaVDD_DATA_LB &= 0xF0;保留R_QuaVDD_DATA_LB的高4位(即前面累加的低4位的結(jié)果),并通過R_QuaVDD_DATA += R_QuaVDD_DATA_LB;將它們加到主累加器中。最后,R_QuaVDD_DATA >>= 3;可能是為了平均(或按比例縮小)多次測量的結(jié)果。 返回值:最終,函數(shù)返回處理后的ADC值。然而,這個值并不是直接對應(yīng)于1/4VDD的電壓值,而是經(jīng)過多次測量和處理的數(shù)字表示。 重要:要理解這個值如何與實際的1/4VDD電壓相關(guān)聯(lián),您需要知道ADC的分辨率和參考電壓。如果ADC是12位的,那么最大值是4095,但這并不直接對應(yīng)于電壓值。您需要使用ADC的分辨率和參考電壓(在這個例子中是內(nèi)部生成的1/4VDD)來計算實際的電壓值。
作者: fishafish    時間: 2024-8-2 11:16
Y_G_G 發(fā)表于 2024-8-1 22:10
要選擇參考電壓的呀
選擇好參考電壓之后,計算出來的數(shù)字量,只有實際電壓的1/4
比如,VDD為4V,選擇2V參考電 ...

因該是1023吧?�。。�
作者: Y_G_G    時間: 2024-8-2 12:46
fishafish 發(fā)表于 2024-8-2 11:16
因該是1023吧?!��!

不重要
知道這么一回事就可以了
九齊是12位ADC,ADC的最大數(shù)字量是4095
實際上的數(shù)字量會在1020到1030之間跳動
作者: 巨人卡奧    時間: 2024-8-12 10:48
要選擇好參考電壓
作者: 1481509156    時間: 2024-8-12 15:49
Y_G_G 發(fā)表于 2024-8-1 22:10
要選擇參考電壓的呀
選擇好參考電壓之后,計算出來的數(shù)字量,只有實際電壓的1/4
比如,VDD為4V,選擇2V參考電 ...

這個怎么換算的,我看到他的1/4VDD通道,參考的電壓C_Vrefh_VDD,這樣怎么換算成讀取到的實際電壓?
作者: 1481509156    時間: 2024-8-12 16:06
巨人卡奧 發(fā)表于 2024-8-12 10:48
要選擇好參考電壓

參考電壓選擇INTVDD呢,有沒有計算公式?直接采樣值*基準(zhǔn)電壓/4096不對
作者: Y_G_G    時間: 2024-8-12 17:07
1481509156 發(fā)表于 2024-8-12 15:49
這個怎么換算的,我看到他的1/4VDD通道,參考的電壓C_Vrefh_VDD,這樣怎么換算成讀取到的實際電壓?

參考電壓一般不選VDD,一般選內(nèi)部2V,因為VDD不穩(wěn)定,但如果VDD是已經(jīng)經(jīng)過穩(wěn)壓的話,也可以選VDD作為參考
作者: 1481509156    時間: 2024-8-13 11:48
Y_G_G 發(fā)表于 2024-8-12 17:07
參考電壓一般不選VDD,一般選內(nèi)部2V,因為VDD不穩(wěn)定,但如果VDD是已經(jīng)經(jīng)過穩(wěn)壓的話,也可以選VDD作為參考

開發(fā)的IC沒有多余的IO腳了,可以直接拿內(nèi)部VDD做參考讀取電池的電壓嗎?這個換算又是怎么換算的,正常的不是利用AD腳引腳讀取ADC值,再和參考電壓的作比較嗎?
作者: Y_G_G    時間: 2024-8-13 14:11
1481509156 發(fā)表于 2024-8-13 11:48
開發(fā)的IC沒有多余的IO腳了,可以直接拿內(nèi)部VDD做參考讀取電池的電壓嗎?這個換算又是怎么換算的,正常的 ...

鋰電池供電本身就不需要更多的IO,前提是電池必須直接接在單片機(jī)的VDD上的,不能有LDO
這個時候,
參考電壓選擇: 內(nèi)部2V電壓
ADC通道選擇: 1/4VDD
然后進(jìn)行ADC就讀取到VDD的數(shù)字量了,再計算一下,就知道供電電池的電壓了
具體代碼,你最好是自己寫,這樣,你才能真正的理解這里頭的原理
作者: 耗子尾指    時間: 2025-4-12 17:01
1481509156 發(fā)表于 2024-8-12 16:06
參考電壓選擇INTVDD呢,有沒有計算公式?直接采樣值*基準(zhǔn)電壓/4096不對

哥,你最后找到正確的換算公式了嘛




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1