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