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