標題: ESK32-360開發(fā)板的音頻輸出 [打印本頁]
作者: jinglixixi 時間: 2020-8-18 09:31
標題: ESK32-360開發(fā)板的音頻輸出
ESK32-360開發(fā)板在硬件上支持音頻的錄制和播放,它是以I2S接口的WM8978編解碼芯片來實現的,其接口電路如圖1所示。
1.jpg (25.44 KB, 下載次數: 66)
下載附件
2020-8-18 09:30 上傳
圖1 音頻電路
其中,揚聲器的接口是以LS1的焊盤的形式來給出的,見圖2所示。通常情況下,我們可以通過接口J1接耳機來收聽。
2.jpg (9.19 KB, 下載次數: 71)
下載附件
2020-8-18 09:30 上傳
圖2 揚聲器接口
1. I2S功能測試
在下載出廠例程的情況下,每當按下復位鍵就會聽到“卡”的聲響。此外,若接好串行通訊,則通過串口可見到圖3所示的輸出內容。
3.jpg (33.16 KB, 下載次數: 65)
下載附件
2020-8-18 09:30 上傳
圖3 串口輸出內容
鑒于手頭的相關資料較少,很難做進一步的擴展,其實這一個非常有用的功能單元,也還有開發(fā)的潛力。
2. MP3語音模塊及使用
既然I2S沒有讓我們聽到一絲優(yōu)美的旋律,那我們就另想它法吧!
MP3語音播放模塊是一款小巧的音頻功能模塊,通過串口的指令控制,依然能奏出美妙的旋律。該功能模塊的引腳分布如圖4所示。
4.jpg (11.02 KB, 下載次數: 73)
下載附件
2020-8-18 09:30 上傳
圖4 MP3引腳分布
此外,在通常的使用中最常用的MP3播放指令為播放指令、停止指令及音量調節(jié)指令:
將此指令存放到數組中,并借助串口的方式即可到達播放的目的。
uint8_t cmd3[] = {0X7E, 0xFF, 0x06, 0X03,00, 00, 01, 0xFE, 0xF7, 0XEF}; //play index
uint8_t cmd6[] = {0X7E, 0xFF, 0x06, 0X06,00, 00, 10, 0xFE, 0xE5, 0XEF}; //set Volume
uint8_t cmd5[] = {0X7E, 0xFF, 0x06, 0X16,00, 00, 00, 0xFE, 0xE5, 0XEF}; //stop
實現歌曲播放的主程序如下:
int main(void)
{
u16n;
UxART_Configuration();
UxART_TxTest();
while(1)
{
while(USART_GetFlagStatus(HTCFG_UART_PORT, USART_FLAG_RXDR) == RESET);
n= USART_ReceiveData(HTCFG_UART_PORT);
UxART_TxSend(n);
playn(n);
mp3();
}
}
在編譯下載程序后,通過串口我們即可指定播放的樂曲,其操作過程如圖5所示和圖6所示。
若配接OLED屏的顯示,則可以通過菜單的選擇來播放,其效果如圖7所示。
5.jpg (35.71 KB, 下載次數: 65)
下載附件
2020-8-18 09:30 上傳
圖5 播放第2首
6.jpg (36.63 KB, 下載次數: 61)
下載附件
2020-8-18 09:30 上傳
圖6 播放第5首
7.jpg (36.31 KB, 下載次數: 68)
下載附件
2020-8-18 09:30 上傳
圖7 OLED屏下的樂曲選播
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |