高分辨率指數式數字電位器的設計
利用單片機對普通低分辨率線(xiàn)性數字電位器進(jìn)行指數化及高分辨率的改造,使通用型數字電位器達到音頻領(lǐng)域的應用要求,并具有較好的通用性與較高的性?xún)r(jià)比。
人耳對聲強的主觀(guān)感受遵循韋伯定律(Webber's Law),在音量較小時(shí)人耳對聲波振幅的改變感受靈敏,聲音達到一定響度后,人耳的聽(tīng)覺(jué)特性開(kāi)始變得遲鈍。而指數型電位器的阻值變化規律為先慢后快,如果將這種衰減特性用在音量調節中,則恰好可以抵消人耳對音量感知的對數特性,保證主觀(guān)聽(tīng)感的平滑。
與傳統的機械式音量電位器相比,數字電位器(DCP)的阻值調節由內部CMOS開(kāi)關(guān)控制,因而使用壽命長(cháng)、可靠性高且不會(huì )產(chǎn)生機械噪聲;如果將廉價(jià)的通用型線(xiàn)性數字電位器直接用于音量調節,在小音量狀態(tài)下稍微調節電位器即會(huì )使輸出聲壓陡然增加,無(wú)法保證大動(dòng)態(tài)范圍內音量的準確定位,因此目前將數字式電位器運用在成熟功放產(chǎn)品中的實(shí)例還不多。實(shí)際上,如果將低分辨率線(xiàn)性數字電位器與通用嵌入式系統結合起來(lái),就能夠得到運用于音量控制領(lǐng)域的低成本高分辨率指數式電位器。
總體設計方案
在數字電位器的擴展系統中,主控單元可選用常見(jiàn)的8位或16位成熟單片機。這里我們主要針對Intersil公司的低分辨率線(xiàn)性數字電位器X9313、X9312進(jìn)行擴展,系統最終能夠達到的實(shí)際分辨率為3199=3069級;如果把32抽頭的X9313全部更換為X9312,分辨率還可以進(jìn)一步提高至9801級。
X9313與X9312這兩種DCP均為三線(xiàn)制接口、帶掉電自動(dòng)保存功能的非易失性數字電位器,其內部分別包含31、99個(gè)電阻單元構成的電阻陣列,相鄰兩個(gè)電阻單元以及電阻陣列端點(diǎn)都設置有可以被滑動(dòng)單元訪(fǎng)問(wèn)的抽頭,如圖1所示?;瑒?dòng)單元的位置由CS、U/D和INC三個(gè)輸入端控制,抽頭位置值能夠被存儲在非易失性存儲器中,供下次上電時(shí)調用置位。
圖1 X931x系列DCP的內部結構
系統的每個(gè)聲道的音量控制由兩個(gè)X9313與一個(gè)X9312構成,圖2為三個(gè)數字電位器的功能連接圖。所有DCP的U/D、INC端分別連接在一起,而片選端CS各自占用一個(gè)MCU端口。這種硬件連接方式能夠很容易地實(shí)現四聲道乃至更多聲道的音量控制。為了與常見(jiàn)的數字式音量調整習慣一致,最好不要保留通用DCP的三鍵式控制方式,而只需設置UP/DOWN兩組按鍵直接控制音量的增減。UP/DOWN按鍵與MCU的連接應設置軟件延時(shí)的去抖算法,以消除按鍵輸入時(shí)的抖動(dòng),MCU與DCP之間則不再考慮按鍵抖動(dòng)。
圖2 系統連接示意圖
分辨率擴展
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)節中,以完善系統功能。
評論