一種基于PWM快速產(chǎn)生模擬電壓的方法
1,概述
在電子和自動(dòng)化技術(shù)的應(yīng)用中,數(shù)字信號(hào)轉(zhuǎn)換模擬控制信號(hào)輸出是電子設(shè)計(jì)中常見的問題,然而許多單片機(jī)內(nèi)部并沒有集成數(shù)摸轉(zhuǎn)換器(DAC)。當(dāng)然市場(chǎng)上也有一些專用的D/A轉(zhuǎn)換芯片,但這類芯片價(jià)格昂貴,并且需要多個(gè)處理器功能管腳來控制,這對(duì)一般的簡(jiǎn)單應(yīng)用是不適合的。
所以在有些應(yīng)用中,由單片機(jī)的PWM輸出(或者通過定時(shí)器和軟件一起來實(shí)現(xiàn)PWM輸出),經(jīng)過簡(jiǎn)單RC濾波電路實(shí)現(xiàn)DAC來得到模擬電壓是一種比較好的選擇。然后,這種方法的一個(gè)缺點(diǎn)就是電平轉(zhuǎn)換時(shí)間過長(zhǎng),本文提出了一種新的方法來克服該問題。
2, RC濾波電路
圖1是傳統(tǒng)的RC濾波電路,PSoC通過GPIO口和RC濾波產(chǎn)生模擬電壓
圖1,RC濾波電路產(chǎn)生模擬電壓
在這種方法中,PWM通過Px[y]輸出,Vout即是需要的模擬電壓。PWM的輸出在電壓VDD和0之間變換,PWM的占空比(DC)決定Vout的輸出值。增加DC輸出電壓也會(huì)跟著增加(當(dāng)DC=0%時(shí),Vout=GND; 當(dāng)DC=100%時(shí),Vout=VDD)。
這種方法比較簡(jiǎn)單,但缺點(diǎn)是電平轉(zhuǎn)換時(shí)間長(zhǎng)。例如,當(dāng)DC從一個(gè)值變到另一個(gè)值時(shí),可能要幾個(gè)ms才能使Vout從一個(gè)電壓變換到最終的穩(wěn)定電壓,如圖2所示。
圖2,RC濾波電路的電平轉(zhuǎn)換時(shí)間
較長(zhǎng)的電平轉(zhuǎn)換時(shí)間在有些應(yīng)用中是不適用的,下面我將提供一個(gè)新的方法來減小該時(shí)間。當(dāng)然,也可通過減小電容電阻(RC)值并提高PWM頻率來縮短電平轉(zhuǎn)換時(shí)間,但有些單片機(jī)的固有缺陷而沒辦法提高PWM頻率時(shí)就沒辦法了。
3, 電壓跟隨器電路
本文介紹一種新的方法能把轉(zhuǎn)換時(shí)間減小到幾十us,該方法除了RC濾波外,還使用了電阻、三極管以及另外一個(gè)GPIO口,三極管設(shè)計(jì)為電壓跟隨器模式,如下圖3所示:
圖3,電壓跟隨器電路產(chǎn)生模擬電壓
三極管T是模擬電壓Vc到Vout的開關(guān)。在空閑狀態(tài)下設(shè)置Pa[b]為“strong drive”模式,并置為高電平(邏輯1),這樣,Vout = VDD, 下列步驟將使Vout從空閑狀態(tài)變換到指定的電壓狀態(tài)。
1)使能PWM并設(shè)定為指定的占空比DC。在計(jì)算PWN占空比時(shí)要考慮到三極管be間的壓降(Vbe)。Vc = Vout + Vbe,得出DC = (Vout + Vbe)/VDD.
2) 做足夠長(zhǎng)時(shí)間的延遲以使Vc穩(wěn)定在指定的電壓,注意在這延遲的時(shí)間內(nèi)Vout保持高電平VDD。
3) 設(shè)置GPIO口Pa[b]的驅(qū)動(dòng)模式為“High-Z analog”,這將導(dǎo)致三極管T工作狀態(tài)并且Vout將立即變?yōu)橹付ǖ淖罱K電壓(只需要幾十個(gè)微秒)。
下列步驟將使Vout從指定的電壓變換到空閑狀態(tài)(Vout = VDD)
1) 設(shè)置Pa[b]的驅(qū)動(dòng)模式為“strong drive”并置該P(yáng)IN為高電平,Vout 將立即變?yōu)閂DD.
2) 如果需要,此時(shí)可停止Px[y]口的PWM以減小功耗。
電平轉(zhuǎn)換如圖4所示,當(dāng)Vc在電壓下降的非穩(wěn)態(tài)過程中,Vout還保持高電平。
圖4,電壓跟隨器電路的電平轉(zhuǎn)換時(shí)間
4, 實(shí)驗(yàn)和測(cè)試結(jié)果
在Cypress的CY8C20x24系列芯片中,無PWM模塊,所以若需要輸出模擬電壓就只能使用內(nèi)部的TImer13模塊產(chǎn)生PWM,然后使用外圍電路產(chǎn)生模擬電壓。下面以 CY8C20224 芯片為例來說明兩種模擬電壓產(chǎn)生方法的測(cè)試情況。
1)使用RC電路做測(cè)試
由于CY8C20224提供的Timer13其輸入時(shí)鐘為32KHz,所以由此產(chǎn)生的PWM頻率比較低。為了減小模擬電壓值的紋波,必須提高RC電路的電阻電容值。在實(shí)驗(yàn)電路中R=47K,C=0.1uF。下圖5是用示波器抓到的波形。
圖5,RC濾波電路的電平轉(zhuǎn)換波形
從上圖可以看出,當(dāng)電壓從空閑狀態(tài)(VDD=3.3V)變換到穩(wěn)定電壓1.0V時(shí),大約需要13~15ms.
這在有些應(yīng)用中是不夠的。
2)采用電壓跟隨器電路測(cè)試
若采用電壓跟隨器電路,電壓從空閑狀態(tài)(VDD=3.3V)變換到穩(wěn)定電壓1.0V時(shí),需要的時(shí)間不超過50us, 如下圖6所示:
圖6,電壓跟隨器電路的電平轉(zhuǎn)換波形
5, 結(jié)束語
本文基于對(duì)RC濾波電路的分析,提出了一種快速產(chǎn)生模擬電壓的方法,并通過實(shí)驗(yàn)證明其可行性。目前該方案已在Cypress CY8C20224芯片上液晶電視按鍵控制板項(xiàng)目使用。
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
pwm相關(guān)文章:pwm是什么
pwm相關(guān)文章:pwm原理
評(píng)論