加快TPA2028D1對突發(fā)音信號(短暫提示音)的響應(yīng)
摘要
TPA2028D1 是 TI 針對便攜設(shè)備推出的具有 AGC/DRC 功能的低功耗 D 類放大器。由于性能突出,在業(yè)界得到了廣泛的應(yīng)用。而其本身可以通過 I2C 進行配置,從而使得設(shè)計者能夠根據(jù)不同的應(yīng)用,優(yōu)化芯片設(shè)置,獲得更好的效果。
本文討論了怎樣優(yōu)化 TPA2028D1 設(shè)置,使其能夠更好的快速響應(yīng)智能手機等設(shè)備中的突發(fā)音,例如鍵盤音,提示音等信號。
1.介紹
TPA2028D1 是 TI 針對移動設(shè)備推出的高效率 D 類放大器。所集成的 DRC 和 AGC 功能能夠根據(jù)輸入信號的大小自動調(diào)整放大器的增益,以達到防止功放削波失真的目的,并且有效的提升輸出平均功率,從而改善音樂的回放效果。
TPA2028D1 具有靈活的可配置性。設(shè)計者能夠通過 I2C 訪問其寄存器,對放大器使能,增益,響應(yīng)速度等多個參數(shù)進行配置,使其能夠針對不同的應(yīng)用場景進行優(yōu)化。
由于 DRC 和 AGC 會根據(jù)信號大小調(diào)節(jié)增益,針對連續(xù)的音樂信號需要設(shè)置一定的 Attack Time 和Release Time 來保證優(yōu)良的回放效果。但是對于突發(fā)音信號維持時間過短,并且由于省電的需要,需要在播放前使能 TPA2028D1,并在播放結(jié)束后將其關(guān)閉。因此一些設(shè)計中,在播放例如鍵盤音或拍照音的時候存在聲音過小,或聲音漸變等現(xiàn)象。
本文通過對此現(xiàn)象的成因進行分析,討論了如何通過優(yōu)化芯片參數(shù)的設(shè)置,解決類似問題的方法。
2.TPA2028的兩種關(guān)閉/使能方式
TPA2028可以通過硬件和軟件兩種方式進行關(guān)閉和使能。
l 通過芯片 EN管腳,硬件的使能關(guān)閉方式;
l 通過芯片寄存器 0x01 bit6 EN和 bit5 SWS,軟件的使能關(guān)閉方式
2.1
2.2
2.1 硬件關(guān)閉/使能
關(guān)閉:
l EN管腳置低,芯片進入關(guān)閉狀態(tài),所有寄存器被清除
使能:
EN管腳置高,芯片進入使能狀態(tài),所有寄存器進入初始狀態(tài),如 Table 1。由于在初始狀態(tài)寄存器 0x01 EN=1 SWS=0 ,功放部分使能,可以直接進行播放;
TPA2028D1的設(shè)計為,芯片使能后放大器初始增益由 Fixed Gain決定。而 TPA2028D1 Fixed Gain寄存器 Reg5/bit5:0 初始值為 00110,即 6dB,因此在此狀態(tài)下放大器的增益初始值固定為 6dB。由于Max Gain寄存器 Reg7/bit7:4初始值為 30dB,因此此時播放的信號以 Release time寄存器 Reg3/bit5:0的初始值 1.81秒/6dB的速度,從 6dB慢慢向 30dB增加。如 Figure 1所示。因此會造成明顯的淡入效果,對于存在時間過于短暫的信號,則造成過小的現(xiàn)象。
Figure 1. 硬件使能 TPA2028D1增益遞增
2.2軟件關(guān)閉/使能
關(guān)閉:
l EN=0 (Reg1/bit6)或者 SWS=1 (Reg1/bit5)
使能:
l EN=1 (Reg1/bit6)或者 SWS=0 (Reg1/bit5)
EN 和 SWS 不會清除寄存器的設(shè)定狀態(tài),所有寄存器值維持原先的設(shè)置,因此 TPA2028D1 在軟件使能之后可以按照設(shè)定的 Fixed Gain和 Max Gain以及 Release Time進行變化。如 Figure 2所示。因此只需要設(shè)置合適的 Fixed Gain, Max Gain 和 Release Time,就可以控制這種變化,從而消除 AGC和DRC帶來的淡入淡出問題。
Figure 2. 硬件使能 TPA2028D1增益遞增
值得注意的是,由于芯片內(nèi)部狀態(tài)的建立需要時間,因此會產(chǎn)生一定的輸出延遲。TPA2028 的延遲在 6ms 左右,由于這個時間相對 Ramp up 的時間相對短暫,而且處理器播放突發(fā)音時普遍存在一定的延遲,所以在一般的設(shè)計中輸出延遲可以忽略。但如果在實際的應(yīng)用中有處理器播放未加延遲的情況,則可以通過在處理器播放突發(fā)音文件前加入 6ms延遲來解決。
Figure 3. 輸出延遲
3. 利用不同的應(yīng)用模式選擇合適的參數(shù)設(shè)置
根據(jù)上面對突發(fā)音淡入現(xiàn)象原因的分析,為了解決 TPA2028D1 對突發(fā)音信號的響應(yīng)問題,解決問題的方式為:
l 用軟件使能 TPA2028D1代替硬件使能;
l 縮小設(shè)置的 Fixed Gain和 Max Gain之間的差別。
但由于音樂播放等應(yīng)用中,F(xiàn)ixed Gain和 Max Gain仍需要存在一定的差別。因此我們可以通過:
l 找到一組中間參數(shù)能夠平衡連續(xù)的音樂播放和突發(fā)音播放效果;
l 根據(jù)不同的應(yīng)用判斷是否存在突發(fā)音的播放,分別針對連續(xù)音樂的播放和突發(fā)音的播放設(shè)置兩套不同的參數(shù)。由于在實際應(yīng)用中,使能 TPA2028D1,播放突發(fā)音,再關(guān)閉,的應(yīng)用都是在一些特定的應(yīng)用下進行。例如播放拍照音時,設(shè)備一般處于拍照狀態(tài);鍵盤音,設(shè)備處于鍵盤輸入狀態(tài)。因此我們可以根據(jù)不用的應(yīng)用決定 TPA2028 參數(shù)的設(shè)置,使得在消除突發(fā)音淡入淡出效果時,不影響到音樂的播放效果。
由于現(xiàn)存的智能便攜設(shè)備操作系統(tǒng)應(yīng)用程序處于 UI層,而控制 TPA2028D1的驅(qū)動處于驅(qū)動層,因此需要通過驅(qū)動讀取操作系統(tǒng)的相關(guān) log文件對于應(yīng)用程序進行判斷。
3.1適合突發(fā)音的設(shè)置
由于快速信號和音樂動態(tài)范圍和播放幅度不一樣,因此可以選擇獨立于音樂播放之外的另一套更適合快速信號播放的 TPA2028的參數(shù)。
選擇提示音播放增益。因為 TPA2028在芯片輸出使能后,增益會從 Fixed Gain向 Max Gain變化,因此縮小 Fixed Gain 與 Max Gain 的區(qū)別(3dB 以內(nèi)的增益變化一般不會引起聽覺響度明顯的變化),能夠限制 Gain的大幅變化。
選擇這個增益時還需要注意信號幅度和最大音量之間的關(guān)系,防止提示音過小或過大引起的問題。對于峰峰值在 500mV左右的輸出信號,建議的增益設(shè)置在 18dB~22dB之間。
由于快速信號動態(tài)范圍相對固定,因此一般不需要 DRC的介入,因此建議設(shè)置壓縮比為 1:1。
當增益的變化被控制在較小的變化范圍以內(nèi),Attack Time, Hold Time和 Release Time等參數(shù)對于漸變的影響就變得相對較小,但仍建議盡量減小將這幾個參數(shù)的值。
此外,因為軟件關(guān)閉芯片后,芯片的 I2C 部分仍然使能,因此相比硬件關(guān)閉芯片功耗要高。在 3.6V至 4.2V 范圍內(nèi),硬件關(guān)閉芯片,靜態(tài)電流在 0.2uA 至 0.3uA 之間。而使用軟件關(guān)閉芯片后,芯片的靜態(tài)電流在 50uA至 65uA之間。因此在設(shè)備進入待機后可以硬件關(guān)閉 TPA2028。
3.2突發(fā)音設(shè)置的時序控制
因為在開機或者退出待機狀態(tài)等情況下,仍然存在 EN 從拉低狀態(tài)到拉高狀態(tài)的變化,此時TPA2028D1 所有寄存器值均為初始狀態(tài)。因此在一次進入突發(fā)音播放的情況下,我們需要設(shè)置芯片寄存器參數(shù),使其適合突發(fā)音信號的播放。而使用軟件使能和關(guān)閉芯片,不會清除寄存器的狀態(tài),因此之后使用軟件關(guān)閉芯片后,再次使能前則不需要重新設(shè)置寄存器參數(shù)。
首次使能時序的控制:
l 將 EN管腳拉高,使能芯片;
l 在 6ms內(nèi)使用 I2C將 SWS設(shè)置為 1,軟件關(guān)閉 TPA2028;
l 設(shè)置 Fixed Gain和 Max Gain,以及 Attack/Release Time;
l 使用 I2C將 SWS設(shè)置為 0,軟件使能 TPA2028;
l 延遲 6ms后開始進行突發(fā)音的播放。
關(guān)閉時序的控制:
l 保持 EN管腳拉高,芯片一直處于使能狀態(tài);
l 使用 I2C將 SWS設(shè)置為 1,軟件關(guān)閉 TPA2028;
再次使能時序的控制
l 使用 I2C將 SWS設(shè)置為 0,軟件使能 TPA2028;
l 延遲 6ms后開始進行突發(fā)音的播放。
3.3實際案例
Android 智能手機,TPA2028D1 的應(yīng)用中,出現(xiàn)了電話撥號的應(yīng)用中,連續(xù)按撥號鍵,按鍵提示音逐漸變大的現(xiàn)象。
檢查按鍵音播放的流程為:
l 進入電話撥號應(yīng)用程序后,TPA2028D1的 EN管腳被拉低;
l 處理器得到按鍵鍵值后,讀取按鍵音音頻文件,并同時拉高 EN腳進行播放;
l 延時 1秒,如果沒有其他鍵按下,則拉低 EN腳關(guān)閉 TPA2028D1。
用 1kHz連續(xù)信號代替按鍵音,實測 TPA2028D1輸出波形如 Figure 4,信號緩慢增加,音量由小到大漸變。
Figure 4. 實際案例更改前 TPA2028D1輸出遞增波形
更改播放時序如下:
l 進入電話撥號應(yīng)用程序后,拉高 TPA2028D1的 EN管腳;
l 通過 I2C設(shè)置芯片:
I2CWrite(0xb0, 0x01, 0xe3); //SWS=1, disable TPA2028D1
I2CWrite(0xb0, 0x05, 0x1e); //Fixed Gain=30dB
I2CWrite(0xb0, 0x07, 0xc0); //Max Gain=30dB
l 處理器得到按鍵鍵值后,讀取按鍵音音頻文件,同時通過 I2C設(shè)置芯片:
I2CWrite(0xb0, 0x01, 0xc3); //SWS=1, enable TPA2028D1
使能 TPA2028,進行按鍵音播放;
l 延時 1秒,如果沒有其他鍵按下,則同時通過 I2C設(shè)置芯片:
I2CWrite(0xb0, 0x01, 0xe3); //SWS=1, disable TPA2028D1
關(guān)閉 TPA2028。
l 手機推出電話撥號應(yīng)用程序后,或者手機進入待機狀態(tài)后拉低 TPA2028D1的 EN管腳。
實測波形如 Figure 5。實際使用中,連續(xù)按按鍵,按鍵提示音正常。
Figure 5. 實際案例更改后輸出波形
4 小結(jié)
TPA2028D1由于加入了有效改善音樂重放效果的 AGC/DRC,其中包含的延遲設(shè)置,無法對于突發(fā)音等短暫信號起到快速響應(yīng)的效果。在我們的實際應(yīng)用中,如果能夠從以下兩個方面完善設(shè)計:
l 判斷播放模式,區(qū)分音樂和突發(fā)音的應(yīng)用場景,分別優(yōu)化參數(shù)設(shè)置;
l 以軟件方式使能或者關(guān)閉芯片;
即可達到更優(yōu)的播放效果。
參考資料
1. datasheet (TPA2028D1.pdf)