ժ Ҫ 某些單片機內部已經集成了A/D、D/A轉換器,使其在工控行業、儀器儀錶、家電產品的應用與日俱增。但是,這類單片機還存在價格偏高、引腳利用率較低的問題。介紹一種性價比高,在家電產品應用中具有價格競爭優勢的利用PIC16C62×系列單片機的A/D、D/A轉換技術。 關鍵詞 PWM 解析度 逐次逼近 電阻梯形網路
PIC16C62×系列為RISC精簡指令、哈佛結構匯流排、18個引腳的單片機。具有低功耗、高性能、全靜態、35條指令極易編程的特點。OTP 片種的性價比極高。除了具備一般單片機的特點外,PIC16C62×系列內部集成了兩個模擬比較器和一個4bit的可編程基準電壓源(VREF)。如果利用該單片機的這些特點,只需幾個外圍RC元件就具備A/D與D/A轉換功能,且解析度達到8bit~10bit。價格上的優勢使其在工控行業、儀器儀錶、家電產品的應用前景極為樂觀。 本文以8bit解析度論證A/D、D/A轉換的實現方法,更高解析度的方案完全相似,只是在編程上作小部分調整。 2 D/A轉換器 PIC16C62×系列單片機內部部分功能模塊及A/D、D/A的電路如圖1所示。
圖1 PIC16C62×部分功能模塊及轉換電路 2.1 利用內部基準源 PIC16C62×系列單片機內部基準源由一16個抽頭的電阻梯形網路構成,相當於一個4bit 解析度的D/A轉換器,該基準源由VRCON特殊功能寄存器控制。VRCON寄存器定義如下:
VREN:VREF基準電壓源使能位,當VREN=1時,內部基準電壓源使能。 VROE:VREF輸出選擇位,VROE=1時,VREF輸出至RA2引腳。 VRR:VREF段選擇,VREF值可編程設定為高低兩個段輸出。 VR3~VR0:4bit VREF電壓值。改變該4位的值即改變了VREF的電壓值。為了後文說明的需要,將該4位二進位碼作如下定義: VR= VR3VR2VR1VR0 VR-1=VR3VR2 VR1VR0-1 根據PIC16C62×的特性: (1)當VRR=1時,低段基準電壓輸出VREFL= VDD*VRL/24,分辨單元VF1=VDD/24。 VREFL電壓值範圍為:VRL*VDD/24,VRL= 0~15,表示相應的低段二進位碼值。 (2)當VRR=0時,高段基準電壓輸出VREFH=VDD/4+VDD*VRH/32,分辨單元VF2=VDD/32。VRH=0~15,VRH表示相應的高段二進位碼值。 VREFH電壓值變化範圍為:VDD/4~23*VDD/32。 上述VDD為PIC16C62×的供電電壓,只要在該供電端加一個簡單的LC電源去耦電路,就能很好的保證基準電壓VREF的抗雜訊要求。 VREF的範圍進行擴展。使用VREFH值,即VREFH =VDD/4~23*VDD/32,擴展為VREFH= (VDD/4-VDD /32) ~23*VDD/32, 向電壓低端擴展一個分辨單元值VDD /32,相當於二進位碼值VRH=0~15擴展為-1 ~15。這是實現8bit及以上D/A轉換的關鍵。VRH= -1是一個特殊條件,超出了VREF取值範圍對應的二進位碼值VRH的界限,須由低段基準電壓VREFL與外圍可編程固定衰減比的電阻網路實現。PIC16C62×的內部有一個場效應OC門(漏極開路門),將其接成圖1所示的應用電路。 當OC門GK導通時,衰減係數K=R1/(R0+R1) R0=2kΩ(內部固定電阻)。 當OC門GK截止時,衰減係數K=1 (RA4引腳為高阻)。 場效應OC門通過編程對RA4引腳進行I/O操作實現其導通與截止。 由上所述,高段VRH=-1對應的VREFH基準值可由低段二進位碼值VRL對應的VREFL值乘上係數K得到。 VRH=-1時,VREFH=VDD/4-VDD/32=7VDD /32,建立如下方程式 7VDD /32 =(VDD/24)* VRL*K (1) VRL=1~15 (取整數) (2) K<1 (3) 可得VRL=6~15的多組解,取其中任一組解均可,例如:VRL=7,K=0.75。 係數K由外接電阻R1的取值決定。編程時,首先確定VRL值,然後根據式(1)計算出係數K,再根據K=R1/(R0+R1)、R0=2kΩ 計算出R1的阻值。R1 2.2 編程4bit PWM實現8bit的D/A轉換 設8bit 待D/A轉換的二進位數存放於PIC16C62×的數據存儲器的某一單元,定義為如下格式:
VOUT即為8bit 的D/A輸出。PWM的濾波電路由R0、R2、C1組成,其時間常數根據PWM的周期選定,與具體應用中對D/A轉換要求的速度和編程有關。由於PIC16C62×的高速RISC精簡指令,D/A轉換速度可達到400K bit /s以上。VDD的溫漂要求盡量小。VOUT可根據需要進行放大或電平變換。 3 A/D轉換器 如圖1所示,把前述D/A轉換輸出的VOUT模擬信號接到PIC16C62×內部的一個比較器的同相端,待轉換模擬信號接到比較器的反相端,這就構成一個典型的逐次逼近型A/D轉換器。其原理在許多教科書里講得非常清楚,本文不再詳述。 由於PIC16C62×具有比較器中斷功能,充分利用比較器中斷可提高編程效率及提高A/D轉換速度。定義一個PIC16C62×的數據存儲器單元作為A/D轉換結果數據寄存器,啟動A/D轉換之前在此寄存器內預置一個經驗數據,採用前述D/A轉換的方法將此數據轉換成VOUT電平,VOUT電平與待轉換模擬信號電平進行比較。比較器的同相端電平高於反相端電平時,比較器輸出邏輯“1”,併產生一次中斷。比較器的同相端電平低於反相端電平時,比較器輸出邏輯“0”,也產生一次中斷。比較器輸出邏輯狀態“1”或“0”可從其特殊功能寄存器的相關位查詢獲取。在比較器中斷程序中,根據查詢結果逐次修改“A/D轉換結果數據寄存器”中的數據,使VOUT電平逐次逼近並最終收斂於待轉換模擬信號電平,收斂時數據寄存器中的值即為A/D轉換結果。收斂演演算法的優劣是提高A/D轉換速度的關鍵,這與具體應用場合及外圍電路參數相關。不過,大多數家電產品應用中被轉換的模擬信號為低速緩慢變化信號,對A/D轉換速度的要求並不高。因此,對收斂演演算法的要求不高,通常採用從MSB至LSB逐次進行比較的演演算法。另外,待轉換模擬信號須經過電平變換,使其變化範圍與VOUT電平的變化範圍相一致。 4 小結 PIC16C62×系列單片機內部有兩個獨立的模擬比較器,並且其數字I/O口具備直接驅動發光二極體與LED數碼管的能力。採用本文所述的A/D、D/A轉換器原理的應用電路只佔用其內部一個模擬比較器、一個基準源、4個引腳的資源,外圍電路也很簡單,應用系統容易做到體積小、可靠性高、性價比好。缺點是A/D、D/A的轉換速度較慢並佔用單片機的大量時間資源,適合於低速變化的信號應用。 參 考 文 獻 1 MICROCHIP. PIC16C62× DATA SHEET. 1997. 10 1 PIC16C62×系列單片機的特點 |
[admin via 研發互助社區 ] 用單片機設計A/D、D/A轉換器已經有2032次圍觀
http://cocdig.com/docs/show-post-571.html