從早期的8位,10位到12位ADC,現(xiàn)在ADC模塊已經(jīng)成為了單片機(jī)的標(biāo)配。但是ADC使用的時(shí)候采出來(lái)的數(shù)據(jù)一定是準(zhǔn)確的嗎?其實(shí)工程師朋友們?cè)谑褂玫臅r(shí)候如果不注意的話(huà),得到的采樣值會(huì)與實(shí)際之前存在一定的誤差。這是由于SAR ADC的結(jié)構(gòu)所決定的,SAR ADC的標(biāo)準(zhǔn)結(jié)構(gòu)如下圖: 在采樣過(guò)程中開(kāi)關(guān)處于閉合狀態(tài),并對(duì)采樣電容進(jìn)行充電。如果采樣的速度過(guò)快或者輸入電流過(guò)小會(huì)造成電容Csh充電不滿(mǎn),得到的采樣值會(huì)低于實(shí)際值。當(dāng)電路輸入為小電流時(shí),為了保護(hù)外部電路,防止由于電容突然與自己的輸出相連而對(duì)外部電路形成沖擊,我們?cè)谄霞闪艘粋(gè)模擬緩沖器如下圖方框里所示。
緩沖器更像是一個(gè)阻抗變換器,它會(huì)把自己輸出端電容量的變化轉(zhuǎn)化為其輸入端電容量的變化。可以通過(guò)對(duì)寄存器ADC_CR0中的BUFEN位進(jìn)行配置來(lái)選擇是否啟用緩沖器。當(dāng)緩沖器打開(kāi)后最大的采樣速率為200sps,其它情況下的采樣速率如下表:
注意不同電壓與采樣率的問(wèn)題:2.4v以上,最大采樣率是1Msps,2.4v以下,最大采樣降低為500KSps, 低于2.2v,最大采樣率降低為200Ksps,注意不同參考源與采樣率的問(wèn)題:使用內(nèi)部Vref時(shí),最大采樣率為200KSPS,達(dá)不到1MSPS。
知道了模塊的原理后如何提高采樣的精度? 第一種方法是找到噪聲源,回避這個(gè)噪聲源,比如在噪聲源穩(wěn)定,或者消失的時(shí)候,進(jìn)行采樣。就像電機(jī)驅(qū)動(dòng)一樣,ADC不會(huì)在PWM切換時(shí) 采樣信號(hào),因?yàn)镻WM切換瞬間,噪聲是最大的。 第二種方法是無(wú)法回避這個(gè)噪聲源,那么我們的產(chǎn)品是有內(nèi)部累加器的,比如進(jìn)行16次采樣,讀取累加器高12位,就是16次采樣的平均值,芯片內(nèi)部都已經(jīng)集成這個(gè)累積,求平均的硬件算法。 第三種方法是輸入端加一個(gè)電容,進(jìn)行去耦以及降低噪聲影響,再使用ADC進(jìn)行采樣。 第四種方法是細(xì)節(jié)描述,比如在采樣的幾個(gè)cycle時(shí),最好MCU的IO停止翻轉(zhuǎn)驅(qū)動(dòng),因?yàn)檫@樣會(huì)影響電源噪聲。 最重要的是:外部Vref的這個(gè)GPIO 在ADC采樣時(shí),必須停止翻轉(zhuǎn),因?yàn)楣蚕硪粋(gè)PAD,GPIO的翻轉(zhuǎn)會(huì)把噪聲引入ADC的Vref。 第五種方法是細(xì)節(jié)描述,比如采樣的的幾個(gè)cycle時(shí),我們可以配置采樣時(shí)間,加大sample的時(shí)間,這樣可以更精確的采樣信號(hào)。華大單片機(jī)ADC使用時(shí)推薦如下: ADC的典型應(yīng)用如下圖所示: 對(duì)于0.5LSB 采樣誤差精度要求的條件下,外部輸入阻抗的計(jì)算公式如下: 其中F_ADC為 ADC 時(shí)鐘頻率,寄存器 ADC_CR0<3:2>可設(shè)定其與 PCLK 的關(guān)系,如下表: 下表為ADC 時(shí)鐘頻率F_ADC和 PCLK 分頻比關(guān)系: M 為采樣周期個(gè)數(shù),由寄存器ADC_CR0<13:12>設(shè)定。
下表為采樣時(shí)間t_sa和 ADC 時(shí)鐘頻率F_ADC的關(guān)系: 下為ADC 時(shí)鐘頻率F_ADC和外部電阻R_AIN的關(guān)系(M=12,采樣誤差 0.5LSB 的條件下):
R_AIN(KOhm) F_ADC(KHz) 10 5600 30 2100 50 1300 80 820 100 660 120 550 150 450 盡量減小ADC輸入端口AIN_X 的寄生電容C_PARACITIC; 除了考慮R_AIN值外,如果信號(hào)源V_AIN的內(nèi)阻較大時(shí),也需要加入考慮 華大單片機(jī)-中國(guó)芯,中國(guó)夢(mèng)中國(guó)人用自己的“芯” • 如有技術(shù)與價(jià)格疑問(wèn),可以隨時(shí)撥打電話(huà)或QQ咨詢(xún) • 我司有強(qiáng)大的技術(shù)團(tuán)隊(duì),可根據(jù)您的要求進(jìn)行研發(fā)設(shè)計(jì),量身定做,客戶(hù)滿(mǎn)意是我們的最高宗旨~! • 電話(huà):18124577713 QQ:783592501 • 華大MCU交流QQ群: 164973950
|