高分辨率指數(shù)式數(shù)字電位器在音響系統(tǒng)中的應(yīng)用
利用單片機對普通低分辨率線性數(shù)字電位器進行指數(shù)化及高分辨率的改造,使通用型數(shù)字電位器達到音頻領(lǐng)域的應(yīng)用要求,并具有較好的通用性與較高的性價比。
人耳對聲強的主觀感受遵循韋伯定律(Webber"s Law),在音量較小時人耳對聲波振幅的改變感受靈敏,聲音達到一定響度后,人耳的聽覺特性開始變得遲鈍。而指數(shù)型電位器的阻值變化規(guī)律為先慢后快,如果將這種衰減特性用在音量調(diào)節(jié)中,則恰好可以抵消人耳對音量感知的對數(shù)特性,保證主觀聽感的平滑。
與傳統(tǒng)的機械式音量電位器相比,數(shù)字電位器(DCP)的阻值調(diào)節(jié)由內(nèi)部CMOS開關(guān)控制,因而使用壽命長、可靠性高且不會產(chǎn)生機械噪聲;如果將廉價的通用型線性數(shù)字電位器直接用于音量調(diào)節(jié),在小音量狀態(tài)下稍微調(diào)節(jié)電位器即會使輸出聲壓陡然增加,無法保證大動態(tài)范圍內(nèi)音量的準確定位,因此目前將數(shù)字式電位器運用在成熟功放產(chǎn)品中的實例還不多。實際上,如果將低分辨率線性數(shù)字電位器與通用嵌入式系統(tǒng)結(jié)合起來,就能夠得到運用于音量控制領(lǐng)域的低成本高分辨率指數(shù)式電位器。
總體設(shè)計方案
在數(shù)字電位器的擴展系統(tǒng)中,主控單元可選用常見的8位或16位成熟單片機。這里我們主要針對Intersil公司的低分辨率線性數(shù)字電位器X9313、X9312進行擴展,系統(tǒng)最終能夠達到的實際分辨率為31×99=3069級;如果把32抽頭的X9313全部更換為X9312,分辨率還可以進一步提高至9801級。歡迎轉(zhuǎn)載,本文來自電子發(fā)燒友網(wǎng)(http:// )
X9313與X9312這兩種DCP均為三線制接口、帶掉電自動保存功能的非易失性數(shù)字電位器,其內(nèi)部分別包含31、99個電阻單元構(gòu)成的電阻陣列,相鄰兩個電阻單元以及電阻陣列端點都設(shè)置有可以被滑動單元訪問的抽頭,如圖1所示?;瑒訂卧奈恢糜蒀S、U/D和INC三個輸入端控制,抽頭位置值能夠被存儲在非易失性存儲器中,供下次上電時調(diào)用置位。
系統(tǒng)的每個聲道的音量控制由兩個X9313與一個X9312構(gòu)成,圖2為三個數(shù)字電位器的功能連接圖。所有DCP的U/D、INC端分別連接在一起,而片選端CS各自占用一個MCU端口。這種硬件連接方式能夠很容易地實現(xiàn)四聲道乃至更多聲道的音量控制。為了與常見的數(shù)字式音量調(diào)整習(xí)慣一致,最好不要保留通用DCP的三鍵式控制方式,而只需設(shè)置UP/DOWN兩組按鍵直接控制音量的增減。UP/DOWN按鍵與MCU的連接應(yīng)設(shè)置軟件延時的去抖算法,以消除按鍵輸入時的抖動,MCU與DCP之間則不再考慮按鍵抖動。
分辨率擴展
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的控制下進行相應(yīng)調(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,以減小輸出電壓的波動。
上述電位器分辨率擴展的思路具有較高的可行性與移植性,此前曾應(yīng)用在我們的一項程控增益可編程高速放大器的系統(tǒng)設(shè)計方案中,取得很好的使用效果。
電阻值指數(shù)化
DCP的指數(shù)化處理采用軟件方式實現(xiàn),不需要額外增加硬件。由于通用單片機的函數(shù)運算功能非常有限,因此在算法上,將電位器每級切換所要求的觸點移動步數(shù)以數(shù)組形式保存在單片機的ROM中。阻值調(diào)整時,MCU根據(jù)按鍵的UP/DOWN狀態(tài)和當(dāng)前的階數(shù)值以查表方式取得各只DCP的實際偏移量,然后再由MCU控制DCP執(zhí)行相應(yīng)的步進切換動作??紤]到3069級的實際分辨率,系統(tǒng)從零到滿幅輸出共設(shè)置了24級的步進階數(shù),優(yōu)于市場上主流機械式步進電位器18~21的步進階數(shù),具體的階數(shù)與電位器抽頭偏移量關(guān)系可參見表1。從表中不難看出,系統(tǒng)將DCP擴展到3069的高分辨率正是為了適應(yīng)電位器阻值在指數(shù)化調(diào)整過程中步進值的精確辨析。
X9312與X9313是不能直接從片內(nèi)存儲單元讀出滑動端當(dāng)前所在位置的,因此,為了記憶各只數(shù)字電位器滑動觸點的實際位置,必須在程序中設(shè)置變量對不同電位器的觸點位置進行記憶。
結(jié)束語
高分辨率指數(shù)式數(shù)字電位器的解決方案以較低成本實現(xiàn)了通用型線性數(shù)字電位器在音響系統(tǒng)中的應(yīng)用,具有較好的工程應(yīng)用前景和推廣價值。此外,由于DCP的指數(shù)式高分辨率擴展僅僅占用了很少的系統(tǒng)資源,因而可將MCU的剩余端口資源應(yīng)用在音量狀態(tài)的指示以及紅外信號解碼等功能性環(huán)節(jié)中,以完善系統(tǒng)功能。