ADμC812內(nèi)部ADC的應(yīng)用
1 ADμC812單片機內(nèi)部ADC簡介
1.1 ADC電路
ADμC812內(nèi)部的ADC轉(zhuǎn)換塊包含一個5μs轉(zhuǎn)換時間、8通道、12位、單電源的A/D轉(zhuǎn)換器。A/D轉(zhuǎn)換器由電容式DAC的常規(guī)逐次轉(zhuǎn)換器組成。ADC具有單獨的模擬電源和參考電壓,可最大限度地減少數(shù)字電路的干擾。轉(zhuǎn)換器接受的模擬電壓輸入范圍為0~+VREF;片內(nèi)提供高精度、低漂移并經(jīng)廠家校準的2.5 V基準電壓。ADμC812內(nèi)集成的ADC轉(zhuǎn)換模塊有其特殊性,如果應(yīng)用不當,輕則影響ADC的性能,重則電路完全不能工作,甚至燒毀器件。下面對基準電壓和模擬輸入電壓作詳細的介紹。
?。?) 基準電壓
ADμC812內(nèi)A/D轉(zhuǎn)換器的2.5 V基準電壓既可由片內(nèi)提供,也可由外部基準經(jīng)VREF引腳提供。若使用內(nèi)部基準,則在VREF和CREF引腳與AGND之間都應(yīng)當連接0.1μF電容以便去耦。這些去耦電容應(yīng)放在緊靠VREF和CREF引腳處。為了達到規(guī)定的性能,建議在使用外部基準時,該基準應(yīng)當在2.3 V和模擬電源AVDD之間。圖1 給出使用外部基準電源時的應(yīng)用電路。
圖1 使用外部基準電源時的應(yīng)用電路
由于片內(nèi)基準高精度、低漂移且經(jīng)工廠校準,并且當ADC使能時,在 VREF引腳會出現(xiàn)此基準電壓。因此,在進行系統(tǒng)擴展時,可將片內(nèi)基準作為一個2.5 V的參考電源來使用。若要把片內(nèi)基準用到微轉(zhuǎn)換器之外,則應(yīng)在 VREF引腳上加以緩沖并應(yīng)在此引腳與AGND之間連接0.1 μF電容。
圖 2 示出了把片內(nèi)基準用到微轉(zhuǎn)換器之外時的應(yīng)用電路。
圖2 片內(nèi)基準用到微轉(zhuǎn)換器之外時的應(yīng)用電路
在實際應(yīng)用中應(yīng)當特別注意,內(nèi)部VREF將保持掉電直到ADC外圍設(shè)備模塊之一被它們各自的使能位上電為止。
?。?) 模擬輸入
與其它ADC芯片相比,ADμC812的ADC模塊有一個缺點,就是ADC正常工作的模擬輸入范圍為0~+2.5 V,而允許輸入的電壓范圍只能為正電壓0~+5V。經(jīng)實驗證明,若輸入的模擬電壓超過 +2.5 V(最大值為+5 V),ADC的采樣結(jié)果為最大值(0FFFH),雖然結(jié)果不對,但并沒有影響 ADμC812正常工作;但是,一旦輸入負的模擬電壓,則會影響ADμC812正常工作,表現(xiàn)為ADC的基準電壓(VREF = +2.5 V)消失和采樣結(jié)果不正確,且若長時間輸入負電壓,將有可能損壞芯片。 因此,在實際應(yīng)用中,若發(fā)現(xiàn)啟動ADC之后VREF端無電壓,則應(yīng)立即將芯片復(fù)位,并檢查模擬輸入信號的采集放大部分。在確保進入ADμC812的模擬信號在0~+2.5 V范圍內(nèi)之后,才能再次啟動ADC。實際應(yīng)用時,應(yīng)保證輸入的模擬電壓為正電平。
一般情況下,ADC的輸入緩沖放大器采用0~5 V的電源工作,這樣,可以保證ADC的輸入在ADμC812的A/D轉(zhuǎn)換器的安全輸入范圍內(nèi),如圖3所示。如果實際情況不許可,ADC的輸入緩沖放大器的電源超出0~5 V,則應(yīng)采用圖4所示鉗位電路,可保證ADC的輸入在ADμC812 的A/D轉(zhuǎn)換器的安全輸入范圍內(nèi)。注意,ADC的輸入端有一個0.01μF的電容,這個電容是為了保證ADC的轉(zhuǎn)換精度。
圖3 ADC輸入緩沖放大器電源 圖4 ADC的輸入鉗位電路
1.2 控制ADC工作的特殊功能寄存器
ADC的工作由三個特殊功能寄存器控制,即ADCCON1、ADCCON2和ADCCON3。
?、?ADCCON1寄存器控制轉(zhuǎn)換與采集時間、硬件轉(zhuǎn)換模式以及掉電模式。
寄存器地址:FFH;
寄存器缺省值:20H;
位可尋址: 否。
② ADCCON2寄存器控制ADC通道選擇和轉(zhuǎn)換模式。
寄存器地址:D8H;
寄存器上電缺省值: 00H;
位可尋址:是。
?、?ADCCON3寄存器對用戶軟件給出ADC忙標志指示。
寄存器地址:F5H;
寄存器上電缺省值: 00H;
位可尋址:否。
1.3 ADC的工作模式
?。?) 典型運用
當特殊功能寄存器ADCCON1~3完成設(shè)置后,ADC將轉(zhuǎn)換模擬輸入并在特殊功能寄存器ADCDATAH/L中提供ADC12位結(jié)果字。用通道選擇位寫寄存器ADCDATAH的高4位以識別通道。
(2) ADC的DMA模式
ADμC812片內(nèi)ADC設(shè)計成5μs完成一次采樣,在中斷驅(qū)動子程序中要求用戶在5μs時間內(nèi)完成中斷服務(wù)、讀ADC轉(zhuǎn)換結(jié)果并為進一步的后續(xù)處理存儲作準備等全部工作。如果沒有完成,則下一次的ADC采樣可能丟失。因此,在ADμC812不能支持中斷速率的應(yīng)用中,可采用ADC DMA模式。
通過DMA使能位(ADCCON2.6),使能ADC DMA模式,它允許ADC在每次設(shè)置寄存器ADCCON后連續(xù)采樣。每次采樣結(jié)果被寫入外部靜態(tài)RAM,無需ADμC812內(nèi)核的任何干預(yù)。這種方式確保ADC處于全速更新速率時,ADμC812能捕獲連續(xù)的采樣流。
2 使用ADμC812內(nèi)部ADC的C51驅(qū)動程序
下面將給出兩個使用ADμC812內(nèi)部ADC的C51驅(qū)動程序。程序“ADC_pol.c”采用查詢工作方式,程序“ADC_int.c”采用中斷工作方式。
?。?) 查詢工作方式下ADμC812內(nèi)部ADC的C51驅(qū)動程序
使用查詢工作方式時,通過測試ADCI位以決定A/D轉(zhuǎn)換是否結(jié)束。由ADμC812擴展的特殊功能寄存器(SFR)ADCCON1、ADCCON2和ADCCON3進行配置。典型設(shè)置如下:
?、?置ADCCON1.7(MD1) = 0, ADCCON1.6(MD0) = 1,使ADC處于正常工作方式。
?、?置ADCCON1.5(CK1) = 1, ADCCON1.4(CK0)=1,選擇A/D轉(zhuǎn)換時鐘寬度為主時鐘寬度的8倍。
?、?ADCCON1.3(AQ1)=1,ADCCON1.2(AQ0)=1,用于選擇采樣/保持放大器獲取輸入的模擬信號的周期數(shù)為8個ADC時鐘。
?、?ADCCON2.7(ADC1)=1,A/D轉(zhuǎn)換中斷允許。
?、?ADCCON2.5(SCONV)=1,連續(xù)轉(zhuǎn)換允許。
?、?ADCCON2.3~2.0用于選擇A/D轉(zhuǎn)換通道和溫度傳感器。
按上述方法設(shè)置好以后,每完成一個通道的 A/D轉(zhuǎn)換,轉(zhuǎn)換后的值就會存放在ADCDATAH的低4位和ADCDATAL中。程序“ADC_pol.c”見本刊網(wǎng)絡(luò)補充版(http://www.dpj.com.cn)。
(2) 中斷方式下ADμC812內(nèi)部ADC的C51驅(qū)動程序
本軟件的數(shù)據(jù)采集系統(tǒng)為8通道順序采集,ADμC812的時鐘頻率為11.0592 MHz,CPU用中斷方式管理A/D轉(zhuǎn)換器。當一個A/D轉(zhuǎn)換完成時,向CPU發(fā)請求信號,CPU響應(yīng)中斷,中斷處理子程序負責(zé)對轉(zhuǎn)換的數(shù)據(jù)進行讀出并送往result_ADC[8]數(shù)組中,然后通道號加1。當8個通道全部轉(zhuǎn)換結(jié)束后,將所有的結(jié)果送往UART。程序“ADC_int.c”見本刊網(wǎng)絡(luò)補充版(http://www.dpj.com.cn)。
結(jié)語
ADμC812是真正意義上的完整的數(shù)據(jù)采集系統(tǒng)芯片,是集數(shù)據(jù)轉(zhuǎn)換電路、微控制器、閃存于一體的數(shù)據(jù)采集系統(tǒng)。它的高性能和高精度轉(zhuǎn)換技術(shù),使數(shù)據(jù)采集系統(tǒng)實現(xiàn)高性能和微型化。
評論