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