esp32-智能語音-mp3(sdcard)


由於官方example為針對Esp32_LYRAT開發板的,因此底層需根據板子IO進行重定義:(后續案例使用該定義文件)

官方由於使用menuconfig配置對應V4.2或V4.3的板子驅動,因此根據板子也進行了板層驅動定義:

1.esp-adf\components\audio_hal目錄下,Kconfig.projbuild:(添加ESP_LYRAT_LLW變量)

 1 menu "Audio HAL"
 2 
 3 choice AUDIO_BOARD
 4     prompt "Audio board"
 5     default ESP_LYRAT_V4_3_BOARD
 6     help
 7         Select an audio board to use with the ESP-ADF
 8 
 9 config ESP_LYRAT_V4_3_BOARD
10     bool "ESP32-Lyrat V4.3"
11 config ESP_LYRAT_V4_2_BOARD
12     bool "ESP32-Lyrat V4.2"
13 config ESP_LYRAT_LLW
14     bool "ESP32-Lyrat LLW"
15 endchoice
16 
17 endmenu

2.進入app目錄下,sdkconfig:(配置menuconfig菜單)

1 #
2 # Audio HAL
3 #
4 CONFIG_ESP_LYRAT_V4_3_BOARD=
5 CONFIG_ESP_LYRAT_V4_2_BOARD=
6 CONFIG_ESP_LYRAT_LLW=y

3.配置驅動文件,esp-adf\components\audio_hal\board目錄下,board.d.h:

 1 #ifdef CONFIG_ESP_LYRAT_V4_3_BOARD
 2 #include "lyrat_v4_3_board.h"
 3 #endif
 4 
 5 #ifdef CONFIG_ESP_LYRAT_V4_2_BOARD
 6 #include "lyrat_v4_2_board.h"
 7 #endif
 8 
 9 #ifdef CONFIG_ESP_LYRAT_LLW
10 #include "lyrat_llw.h"
11 #endif

4.esp-adf\components\audio_hal\board目錄下,拷貝一份lyrat_v4_3_board.h,后改名為

lyrat_llw.h,根據實際硬件重定義(主要是GPIO的分配)
 1 #ifndef _AUDIO_LYRAT_LLW_H_
 2 #define _AUDIO_LYRAT_LLW_H_
 3 
 4 #ifdef __cplusplus
 5 extern "C" {
 6 #endif
 7 
 8 /* SD card related */
 9 #define SD_CARD_INTR_GPIO           GPIO_NUM_26
10 #define SD_CARD_INTR_SEL            GPIO_SEL_26
11 #define SD_CARD_OPEN_FILE_NUM_MAX   5
12 
13 #define GPIO_AUXIN_DETECT           21
14 
15 //#define GPIO_HEADPHONE_DETECT       19
16 
17 /* LED indicator */
18 #define GPIO_LED_BLUE               25
19 
20 /* I2C gpios */
21 #define IIC_CLK                     16
22 #define IIC_DATA                    17
23 
24 /* PA */
25 //#define GPIO_PA_EN                  GPIO_NUM_21
26 //#define GPIO_SEL_PA_EN              GPIO_SEL_21
27 
28 /* Press button related */
29 //#define GPIO_SEL_REC                GPIO_SEL_36    //SENSOR_VP
30 //#define GPIO_SEL_MODE               GPIO_SEL_39    //SENSOR_VN
31 //#define GPIO_REC                    GPIO_NUM_36
32 //#define GPIO_MODE                   GPIO_NUM_39
33 
34 /* Touch pad related */
35 #define TOUCH_SEL_SET               TOUCH_PAD_SEL9
36 #define TOUCH_SEL_PLAY              TOUCH_PAD_SEL8
37 #define TOUCH_SEL_VOLUP             TOUCH_PAD_SEL7
38 #define TOUCH_SEL_VOLDWN            TOUCH_PAD_SEL1
39 #define TOUCH_SET                   TOUCH_PAD_NUM9
40 #define TOUCH_PLAY                  TOUCH_PAD_NUM8
41 #define TOUCH_VOLUP                 TOUCH_PAD_NUM7
42 #define TOUCH_VOLDWN                TOUCH_PAD_NUM1
43 
44 /* I2S gpios */
45 #define IIS_SCLK                    19
46 #define IIS_LCLK                    23
47 #define IIS_DSIN                    18
48 #define IIS_DOUT                    5
49 
50 #ifdef __cplusplus
51 }
52 #endif
53 
54 #endif

 

官方源碼(esp-adf\examples\player\pipeline_sdcard_mp3),sdcard使用1線SDIO模式,所以只用到D0數據線(需外部上拉電路),(由於硬件D0線與GPIO2(strapping)共用,由於下載模式時,該電位需為低電平,所以與sdcard驅動有沖突,需注意)。

 

固件下載后,需要准備一張sdcard,並在sdcard根目錄拷貝一個test.mp3文件。

 

正常的話,重啟后,系統 播放sdcard的test.mp3文件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM