嵌入式系統(tǒng)播放音頻的能力正在成為一個相當普遍的功能。音頻為用戶提供了很好的反饋,但如今有如此多的高保真音頻可用,使用嗶嗶聲和啁啾聲不再削減它。開發(fā)人員當然可以使用分立組件和
DAC
從系統(tǒng)中獲得不錯的音頻,但音頻編解碼器已經(jīng)變得非常便宜,并且為嵌入式開發(fā)人員提供了廣泛的功能,否則這些功能將耗費時間和成本來實現(xiàn)。在今天的文章中,讓我們研究一些將音頻編解碼器添加到嵌入式系統(tǒng)的技巧。
技巧 #1 – 使用微控制器作為主時鐘
音頻編解碼器通常通過 I2S(IC
間聲音)接口連接到系統(tǒng)。許多音頻編解碼器為開發(fā)人員提供了如何為音頻編解碼器生成時鐘的靈活性。例如,時鐘源可以由微控制器通過 I2S
總線或連接到編解碼器的振蕩器生成。編解碼器本身可以充當主時鐘源并將時鐘發(fā)送到微控制器。但是,如果開發(fā)人員想要最大限度地降低物料清單 (BOM)
成本,最簡單的方法是將微控制器設(shè)置為主控并為編解碼器生成時鐘。這最大限度地減少了成本和組件數(shù)量,并簡化了音頻播放系統(tǒng)。
技巧 #2 – 使用外部音頻放大器
大多數(shù)音頻編解碼器都帶有內(nèi)置音頻放大器。這些放大器通常可以輸出 0.5 到 1.5
瓦之間的任何功率,當然也有例外。如果音頻應(yīng)用簡單且不需要大量輸出,則利用內(nèi)部放大器再次節(jié)省 BOM
成本是有利的。然而,在大多數(shù)應(yīng)用中,內(nèi)部放大器無法為應(yīng)用提供足夠的輸出功率或靈活性。出于這些原因,嵌入式開發(fā)人員經(jīng)常使用外部音頻放大器,可以通過揚聲器輸出系統(tǒng)進行調(diào)整以獲得更好的性能。在這些應(yīng)用中,音頻編解碼器通常設(shè)置為繞過內(nèi)部音頻放大器,因為它們通常期望驅(qū)動
4 或 8 歐姆負載。然后使用線路輸出驅(qū)動外部音頻放大器。
技巧 #3 – 利用音頻塊調(diào)整揚聲器
很多音頻編解碼器是通常包含的數(shù)字塊。這個數(shù)字音頻模塊允許開發(fā)人員針對他們的應(yīng)用仔細調(diào)整他們的音頻播放系統(tǒng)。例如,一個典型的音頻塊可能包含幾個可編程的低通和高通濾波器以及一個多點均衡器。這些可編程組件允許開發(fā)人員仔細調(diào)整其輸出系統(tǒng),以最大限度地提高音頻質(zhì)量,同時最大限度地減少系統(tǒng)所需的外部組件數(shù)量。這些組件的編程方式取決于最終應(yīng)用中使用的揚聲器的頻率特性以及將使用的音頻類型,例如器樂與人類語音。
技巧 #4 – 將編解碼器配置存儲在表格中
音頻編解碼器的配置通常通過 I2C 總線傳輸,而數(shù)字音頻流則通過 I2S
接口傳輸。大多數(shù)音頻編解碼器都有幾十個寄存器,需要配置這些寄存器才能使編解碼器按照應(yīng)用程序需要的方式運行,嵌入式開發(fā)人員存儲此配置信息的一個好方法是將配置表保存在
EEPROM 或閃存中,然后在系統(tǒng)初始化期間將該表加載到 RAM 中。然后,如果需要調(diào)整系統(tǒng)性能,例如調(diào)整當前音量,用戶可以修改 RAM
值。在啟用音頻播放系統(tǒng)之前的初始化期間,可以通過 I2C 發(fā)送初始配置,然后可以根據(jù)需要提供單獨的寄存器更新。
技巧 #5 – 在 PCB 上添加備用電容封裝
電容很重要,因為有時揚聲器需要拉出“大量”瞬時能量,而電容充當能量儲存器。電容太小,揚聲器可能無法按需要移動,因此會產(chǎn)生耳朵聽得見的音頻缺陷。確保有足夠的唯一方法是在系統(tǒng)運行時進行測量。沒有人愿意浪費
PCB 旋轉(zhuǎn)以確保有足夠的電容,因此一個好的做法是按照您的預(yù)期設(shè)置電容,但添加一些額外的并行封裝,以防您需要調(diào)整所需的電容量。
結(jié)論
高保真音頻正成為許多系統(tǒng)的要求,因為它為用戶提供可聽反饋,有助于他們了解系統(tǒng)的狀態(tài)。嵌入式開發(fā)團隊第一次與音頻編解碼器合作時,他們可能會感到害怕,但事實是,它們并不像從數(shù)據(jù)表中第一眼看到的那樣糟糕。