一、WM8978簡介
WM8978是由美國音頻晶元廠商WOLFSN提供的一個集成式音頻編解碼器,具備錄音、放音、調節音量等多種功能。WM8978採用I2S、I2C介面和MCU交互,通過I2S採集和發送聲音數據,通過I2C控制音頻參數,是一款成本低、性能高的音頻晶元。
WM8978的具體參數如下:
供電電壓:3.0V~3.6V
工作溫度範圍: -40℃ ~ +85℃
DAC/AQC SNR:98dB
ADC SNR:94 dB
THD+N@3V(DAC):0.005%
THD+N@3V(ADC):0.007%
支持I2S、PCM介面
二、WM8978的應用領域
WM8978常用於音頻介面的設計,比如音頻採集、錄製、編解碼等場景,具體如下:
1、語音錄音
通過WM8978晶元,可以實現高品質的語音錄音功能。其具備自動增益控制功能(AGC),能自動適應環境音量,並自動調節採集音量,使錄音質量更加穩定。
// 初始化WM8978晶元為錄音模式
WM8978_Init();
WM8978_ADDA_Cfg(1, 0); // 打開ADC輸入使能
WM8978_Input_Cfg(0, 0, 0); // PGA和MIC的增益都為0
WM8978_Output_Cfg(1, 0, 0); // 關閉DAC輸出,防止輸入到輸出
WM8978_MIC_Gain(40); // 設置MIC的增益,值越大則音量越大
// 開始錄音
WM8978_Record_Start();
2、音樂播放器
WM8978晶元可用於音頻播放,同時通過I2C控制DAC的音量等參數,還可以實現聲音調節、均衡器、失真調節等音頻效果。
// 初始化WM8978晶元為播放模式
WM8978_Init();
WM8978_ADDA_Cfg(1, 1); // 打開ADC和DAC輸出使能
WM8978_Input_Cfg(0, 3, 0); // PGA採用MIC左聲道作為輸入,增益為3,MIC右聲道的PGA增益為0
WM8978_Output_Cfg(1, 1, 0); // DAC輸出到左右聲道,且每個DAC增益都為1,關閉BYPASS使能,不錄製MIC的聲音
WM8978_HPvol_Set(40, 40); // 設置耳機輸出的音量增益,值越大則音量越大
WM8978_I2S_Cfg(2, 0); // 設置I2S採樣率和聲道數
uint16_t sendData[4]={0,0,0,0}; // 待發送的數據數組
// 發送音頻數據
while(1) {
// 從外部音源獲取音頻數據
// ...
// 將音頻數據寫入WM8978的I2S FIFO中
WM8978_I2S_WriteData(sendData[0], sendData[1]);
WM8978_I2S_WriteData(sendData[2], sendData[3]);
}
3、數字音頻處理
WM8978提供了多種數字音頻處理功能,比如均衡器、壓限器和失真控制器等。這些功能可以通過I2S或I2C進行控制。例如,均衡器可以根據需要調節不同頻段的增益,壓限器可以限制輸入音量以避免失真。
WM8978_EQ_3D_Off(); // 關閉3D環繞音效
WM8978_EQ_Set(0, 5); // 將第1個頻段的增益設置為5dB
WM8978_EQ_Set(1, 3); // 將第2個頻段的增益設置為3dB
WM8978_EQ_Set(2, -7); // 將第3個頻段的增益設置為-7dB
WM8978_Lim_Init(1, 0x7f); // 打開壓限器使能,設置壓限器的閾值為0x7f
WM8978_NOISE_Init(1, 6); // 打開降噪功能,設置降噪等級為6
三、WM8978的應用案例
1、基於WM8978的語音識別系統
本系統使用WM8978實現語音採集和播放功能,並搭載語音識別演算法以達到對人聲的自動識別功能。
2、基於WM8978的音頻播放器
本系統使用WM8978實現音頻播放和音量調節功能,搭載EQ均衡器增強音質,以實現高品質音樂播放。
四、總結
以上是對WM8978介紹與應用的詳細闡述,WM8978在語音、音頻播放、數字音頻處理等領域有著廣泛的應用,希望本文對讀者有所幫助。
原創文章,作者:PTYR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147778.html