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