|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
為什么Mega8L/16L的AD轉(zhuǎn)換偏置誤差會如此之大?? |
| 作者:sanxingyu 欄目:單片機(jī) |
我選用的是單通道輸入模式,AD轉(zhuǎn)換周期為208uS,固定對通道0進(jìn)行采樣。奇怪的是,輸入電壓為0,當(dāng)參考電壓選擇內(nèi)部或者外加的2.56V時,采樣值在0x1f和0x1e之間波動,當(dāng)參考電壓選擇AVCC 5.0V時,采樣值在0x0f、0x0e和0x10之間波動。也就是說,相當(dāng)于單片機(jī)內(nèi)部疊加了一個約70mv (2.56 * 31/1023)的偏置電壓。而且這個偏置電壓會隨著輸入電壓的增大而減少,0v時大概為70mv,2V時大概為50mv。 這個現(xiàn)象同時在ATMEGA8L和ATMEGA16L上出現(xiàn)。想了、試了很久都沒解決,有點(diǎn)懷疑是我買的單片機(jī)本身有問題。我是采用查詢方式讀取AD轉(zhuǎn)換結(jié)果的,以下是我的程序,請各位大俠幫忙侃侃呀~~~ void adc_init(void) { ADCSR = 0x00; ADMUX = 0x40; ACSR = 0x80; ADCSR = 0x86; } unsigned int ReadADC( void ) { unsigned CHAR i = 0 ; CLI(); ADMUX &= 0XF8 ; ADCSR |= 0x40; while (!(ADCSR & 0x10)); for ( i = 200 ;i > 0 ; i-- ); ADCSR |= 0x10; // i = ADCL; // i += (unsigned int)ADCH << 8; SEI(); return ADC; } |
| 2樓: | >>參與討論 |
| 作者: sanxingyu 于 2007/1/4 22:31:00 發(fā)布:
呵呵,終于找到原因了 問題在于用做AD轉(zhuǎn)換通道的IO要禁用內(nèi)部上拉電阻,否則就會出現(xiàn)上述問題!! 另外,也要特別注意的是AD轉(zhuǎn)換時鐘不能太高,一般在50KHz~200KHz之間,否則AD轉(zhuǎn)換結(jié)果會一直跳動,且不精確。 |
|
| 3樓: | >>參與討論 |
| 作者: sharks 于 2007/1/9 0:17:00 發(fā)布:
AVCC本來就是個很不穩(wěn)定的源 拿AVCC來當(dāng)基準(zhǔn),當(dāng)然會跳! |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |