標題: ESK32-360開發(fā)板的音頻輸出 [打印本頁]

作者: jinglixixi    時間: 2020-8-18 09:31
標題: ESK32-360開發(fā)板的音頻輸出
ESK32-360開發(fā)板在硬件上支持音頻的錄制和播放,它是以I2S接口的WM8978編解碼芯片來實現的,其接口電路如圖1所示。
                              

圖1 音頻電路

其中,揚聲器的接口是以LS1的焊盤的形式來給出的,見圖2所示。通常情況下,我們可以通過接口J1接耳機來收聽。


圖2 揚聲器接口

1. I2S功能測試
在下載出廠例程的情況下,每當按下復位鍵就會聽到“卡”的聲響。此外,若接好串行通訊,則通過串口可見到圖3所示的輸出內容。


圖3 串口輸出內容

鑒于手頭的相關資料較少,很難做進一步的擴展,其實這一個非常有用的功能單元,也還有開發(fā)的潛力。
2. MP3語音模塊及使用
既然I2S沒有讓我們聽到一絲優(yōu)美的旋律,那我們就另想它法吧!
MP3語音播放模塊是一款小巧的音頻功能模塊,通過串口的指令控制,依然能奏出美妙的旋律。該功能模塊的引腳分布如圖4所示。

圖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 播放第2


6 播放第5

7  OLED屏下的樂曲選播






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1