如何扭轉(zhuǎn)電壓比較器不被重視的問題
電壓比較器在單片機中的出現(xiàn)始于20世紀90年代末。當(dāng)時,大家認為這項技術(shù)僅降低了成本而已。因為,這樣的比較器需要的硅器件較少,又能使單片機比較兩個模擬電壓。于是,認為電壓比較器僅僅是一個“1位ADC”的觀點始終占據(jù)主導(dǎo)地位,并且一直持續(xù)到21世紀的頭幾年。
幸運的是,當(dāng)8位單片機開始不斷涉足更多的混合信號應(yīng)用時,越來越多具有模擬背景的設(shè)計人員開始使用單片機。這些采用混合信號單片機的設(shè)計人員非常熟悉電壓比較器的靈活性和功能,便著手發(fā)掘其潛能。使用片上電壓比較器的應(yīng)用不斷涌現(xiàn),包括傳感器輸出的模擬信號到數(shù)字信號的轉(zhuǎn)換、邏輯門、放大器以及電源轉(zhuǎn)換。
遺憾的是,混合信號單片機設(shè)計人員的人數(shù)尚不足以有效推廣電壓比較器。因此,本文旨在使設(shè)計人員認識到不起眼的片上電壓比較器可能給混合信號應(yīng)用帶來的價值。全面探討這個主題需要數(shù)百頁的篇幅,我們將盡量多地選取一些可能的應(yīng)用進行闡述。
我們首先將討論傳感器-數(shù)字轉(zhuǎn)換。大多數(shù)模擬傳感器會產(chǎn)生與其測量的環(huán)境因素成比例的阻值、電感或電容值的變化。熱敏電阻阻值的變化與溫度成比例,濕度傳感器改變其電容值,而某些接近傳感器甚至?xí)淖冏陨淼碾姼兄?。傳統(tǒng)的轉(zhuǎn)換方法先將電阻、電容或電感轉(zhuǎn)換為電壓,然后使用一個ADC將電壓轉(zhuǎn)換為數(shù)字值。但是,假使我們可以將傳感器的輸出直接轉(zhuǎn)換為數(shù)字值,又會怎樣?
圖1 R/C/L傳感器-數(shù)字轉(zhuǎn)換器
利用不起眼的片內(nèi)電壓比較器構(gòu)建簡單的張弛振蕩器,可以將電阻、電容或電感轉(zhuǎn)換為可變的頻率,然后使用定時器外設(shè)來測量該頻率。圖1顯示了兩個簡單的振蕩器電路。除了簡單這一顯而易見的優(yōu)點外,兩個電路由于自身會對輸入信號求平均,因而具有一定的噪聲抑制能力。不過,其分辨率還由采樣時間決定。
在兩個電路中,電阻R1、R2和R3提供滯回電壓,根據(jù)比較器的輸出狀態(tài)來調(diào)節(jié)比較器跳變電平的大小。左邊電路中的R4和L1與右邊電路中的R4和C1作用相同,用于設(shè)置工作頻率。通過用適當(dāng)?shù)淖栊浴⑷菪曰蚋行詡鞲衅魈鎿QR4、C1或L1,就能構(gòu)建一個頻率可隨傳感器輸出值變化的變頻振蕩器。然后使用Timer0和Timer1將頻率轉(zhuǎn)換為數(shù)字值。Timer1的計數(shù)頻率與振蕩器頻率相同,Timer0設(shè)置采樣周期。當(dāng)Timer0溢出時,Timer1停止計數(shù),它的當(dāng)前值就是轉(zhuǎn)換的結(jié)果。
圖2 使用比較器的邏輯與/或和異或電路
這一對內(nèi)部定時器與少量的外部元件和一些軟件相結(jié)合,向設(shè)計人員提供了一種使用比較器測量電阻、電感或電容的簡便方法。設(shè)計人員只需延長Timer1的計數(shù)周期,就可以提高轉(zhuǎn)換器的分辨率。
此外,大多數(shù)帶有片上比較器的新型單片機在比較器的反相輸入端上有一個2選1或4選1的模擬多路開關(guān)。只需給每個傳感器添加一個電阻R4,然后將傳感器/電阻的接點連接到多路開關(guān)的各個輸入端,設(shè)計人員就能在多達4個傳感器中選擇轉(zhuǎn)換器的輸入。
構(gòu)建邏輯門只不過是將二極管邏輯與一些電阻組合起來,以實現(xiàn)必需的邏輯功能。圖2給出了實現(xiàn)了邏輯“與(AND)”和邏輯“或(OR)”功能的簡單電路,以及略為復(fù)雜的邏輯“異或(XOR)”功能的電路。
圖2中,左邊的電路實現(xiàn)邏輯“與”和邏輯“或”功能。要實現(xiàn)邏輯“與”功能,選擇R3和R4的值,使得反相輸入端的電壓高于VDD/2。要實現(xiàn)邏輯“或”功能,選擇可使反相輸入端的電壓略低于VDD/2的值。(R1和R2的值應(yīng)相等)。在邏輯“與”配置中,A和B兩個輸入端必須同為高電平以將同相輸入端的電壓拉高到VDD/2之上,才能使輸出變?yōu)楦唠娖?。在邏?ldquo;或”配置中,A或B中必須至少有一個為高電平以將同相輸入端的電壓拉至VDD/2,才能拉高輸出電平。要構(gòu)建邏輯“非與(NAND)”或“非或(NOR)”電路,只需將反相和同相輸入端交換即可。
圖2中,右邊的電路用于實現(xiàn)邏輯“異或”功能。如果A或B中有一個為低電平,那么反相輸入端將被鉗位在0.7V,若另一個輸入為高電平,就會產(chǎn)生高電平輸出。如果A和B均為高電平,那么同相輸入端的電壓將保持為略低于VDD,而反相輸入端被拉至VDD——導(dǎo)致輸出低電平。(注:對于任何邏輯電路,選定的電阻值應(yīng)足夠大以使所有電流處于1~10mA范圍內(nèi),這樣比較器的輸出驅(qū)動電路才能容易地驅(qū)動邏輯)。
圖3 同相和反相運放電路
接下來,讓我們研究如何將比較器用做低頻運放。只需使用一個足夠低頻的低通濾波器來對脈沖鏈進行濾波,任何占空比可變的數(shù)字信號均可被轉(zhuǎn)換為直流電壓。要使用比較器來構(gòu)建運放,我們將使用同樣的濾波器求平均功能來生成反饋和輸出電壓(見圖3)。在同相電路中,R1和R2如同在常規(guī)運放電路中一樣,用于確定增益。C1和R3/C2充當(dāng)濾波器對比較器輸出端的PWM數(shù)字信號求均值,并將求得的結(jié)果作為反饋的直流電平和電路的線性輸出。在反相電路中,R4和R5確定增益,C3和R6/C4充當(dāng)平均濾波器將數(shù)字PWM信號轉(zhuǎn)換為線性電壓。注:在反相拓撲結(jié)構(gòu)中,需要R7和R8來產(chǎn)生電路的虛擬地。
最后要講述的是開關(guān)電源電路。產(chǎn)生交變電源電壓的一種方法是產(chǎn)生由輸出反饋電壓門控的PWM開關(guān)信號。在該電路中,一個比較器產(chǎn)生斜坡波形,而另一個提供輸出電壓的反饋信號。圖4中的原理圖給出了使用兩個比較器的實現(xiàn)方案。
在該電路中,比較器U1a是一個脈沖發(fā)生器,與前面所述的將傳感器輸出轉(zhuǎn)換為數(shù)字信號的振蕩器類似,其工作頻率由R4、R5和C1決定。電路中R5的作用是確保C1上的充電電壓絕不會低于約1.5V。這一點非常重要,因為U1b通過將U1a的同相輸入端拉至約0.7V來控制振蕩器的工作,使其停振。(注:振蕩器被設(shè)計為在關(guān)斷時將輸出拉為低電平,因此此時Q1也將處于截止?fàn)顟B(tài))。
圖4 使用兩個比較器的升壓式開關(guān)電源
當(dāng)振蕩器運行時,Q1會定期導(dǎo)通,使得電流流過L1。當(dāng)Q1截止時,流過L1的電流會使D3正偏,從而給C2充電,繼而抬高輸出電壓。C2上采樣得到的輸出電壓經(jīng)過分壓后與D2上的正向電壓作比較。如果輸出電壓過高,U1b會關(guān)斷振蕩器,C2會向負載放電,從而使輸出電壓降低。當(dāng)輸出電壓跌落到所需電壓以下時,U1b的輸出就會變成高電平,振蕩器重新起振,將重新有電流流向C2。
有了電壓比較器,可以實現(xiàn)將R/C/L傳感器的輸出轉(zhuǎn)換為數(shù)字值的電路、邏輯門和放大器,甚至是開關(guān)電源,所有這些都能通過分立式元件和比較器構(gòu)建。
因此,當(dāng)下次查找單片機時,若看見帶有比較器的器件,請停下來思考一下使用比較器能夠構(gòu)建的復(fù)雜功能,這可以節(jié)省在材料方面的開銷。作為混合信號設(shè)計人員,能夠說明簡單電壓比較器的強大功能,別人將刮目相看。