基于單片機的數字電位器的設計
分辨率擴展
Ra和Rb同時(shí)并聯(lián)在輸入信號Vin的兩端,其抽頭數均為32。Ra和Rb的輸出作Rc端口電壓VH和VL設置,Ra始終比Rb高一個(gè)位置間隔,這樣就可以將1/32Vi~31/32Vi共31種輸入信號的電壓變化加到Rc兩端。由于Rc選用了100抽頭的DCP,從而可以在Rc輸出端得到31×(100-1)=3069級的Vin線(xiàn)性電壓值。
隨著(zhù)Rc滑動(dòng)端上下移動(dòng),Ra和Rb的位置也在MCU的控制下進(jìn)行相應調整。在上移過(guò)程中,設Rc滑動(dòng)端上移值與目前所在位置值相加后的值為M。若M小于100,說(shuō)明這時(shí)只是Rc的滑動(dòng)端發(fā)生移動(dòng),而Ra和Rb的滑動(dòng)觸點(diǎn)位置不變;若M值超過(guò)100,則Ra和Rb的觸點(diǎn)均上移1個(gè)滑動(dòng)位,Rc的滑動(dòng)端返回M減去100之后所得實(shí)際值決定的觸點(diǎn)位。類(lèi)似地,在抽頭下移過(guò)程中,若Rc的滑動(dòng)端需要下移到抽頭0以下時(shí),則Ra和Rb的滑動(dòng)端也需要同步下移1位,以保持電位器實(shí)際調整步數的平衡。
電位器Rc的抽頭輸出端設置了一級電壓跟隨器,可以減小因負載并聯(lián)對級聯(lián)后分壓系數的影響。電位器觸點(diǎn)的滑動(dòng)過(guò)程屬于不連貫的步進(jìn)調節方式,故Rc的電阻值不是連續變化而是在滑動(dòng)端調整到位后才具有所希望的輸出,這樣會(huì )使得輸出電壓出現一些小幅跳變。但由于輸入信號Vin的絕對增量并不大,且整個(gè)電位器擴展系統的分辨率很高,對此我們可在Rc電位器的滑動(dòng)輸出端對地并聯(lián)一只1000~2200pF的小電容C1,以減小輸出電壓的波動(dòng)。
上述電位器分辨率擴展的思路具有較高的可行性與移植性,此前曾應用在我們的一項程控增益可編程高速放大器的系統設計方案中,取得很好的使用效果。
電阻值指數化
DCP的指數化處理采用軟件方式實(shí)現,不需要額外增加硬件。由于通用單片機的函數運算功能非常有限,因此在算法上,將電位器每級切換所要求的觸點(diǎn)移動(dòng)步數以數組形式保存在單片機的ROM中。阻值調整時(shí),MCU根據按鍵的UP/DOWN狀態(tài)和當前的階數值以查表方式取得各只DCP的實(shí)際偏移量,然后再由MCU控制DCP執行相應的步進(jìn)切換動(dòng)作??紤]到3069級的實(shí)際分辨率,系統從零到滿(mǎn)幅輸出共設置了24級的步進(jìn)階數,優(yōu)于市場(chǎng)上主流機械式步進(jìn)電位器18~21的步進(jìn)階數,具體的階數與電位器抽頭偏移量關(guān)系可參見(jiàn)表1。從表中不難看出,系統將DCP擴展到3069的高分辨率正是為了適應電位器阻值在指數化調整過(guò)程中步進(jìn)值的精確辨析。
表1 階數與電位器抽頭偏移量關(guān)系

X9312與X9313是不能直接從片內存儲單元讀出滑動(dòng)端當前所在位置的,因此,為了記憶各只數字電位器滑動(dòng)觸點(diǎn)的實(shí)際位置,必須在程序中設置變量對不同電位器的觸點(diǎn)位置進(jìn)行記憶。
結束語(yǔ)
高分辨率指數式數字電位器的解決方案以較低成本實(shí)現了通用型線(xiàn)性數字電位器在音響系統中的應用,具有較好的工程應用前景和推廣價(jià)值。此外,由于DCP的指數式高分辨率擴展僅僅占用了很少的系統資源,因而可將MCU的剩余端口資源應用在音量狀態(tài)的指示以及紅外信號解碼等功能性環(huán)節中,以完善系統功能。
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論