Skip to content

Commit 6aa84d2

Browse files
xutaoespressif-bot
xutao
authored andcommitted
audio_board: Support esp32-p4-function-ev-board
1 parent ae0ff05 commit 6aa84d2

File tree

209 files changed

+3169
-498
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

209 files changed

+3169
-498
lines changed

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ Espressif Systems has released a number of boards for ESP-ADF to develop audio a
5252

5353
It is recommended to use the ESP-ADF master branch, as it has the latest bugfixes and the new features.
5454

55-
| | [ESP32-LyraT](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat.html) | [ESP32-LyraTD-MSC](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyratd-msc.html) | [ESP32-LyraT-Mini](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat-mini.html) | [ESP32-Korvo-DU1906](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-korvo-du1906.html) | [ESP32-S2-Kaluga-1 Kit](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-esp32-s2-kaluga-1-kit.html)|[ESP32-S3-Korvo-2](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/user-guide-esp32-s3-korvo-2.html)|[ESP32-C3-Lyra](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/user-guide-esp32-c3-lyra.html)| [ESP32-S3-Box Serials](https://github.com/espressif/esp-box/tree/master)|
56-
|:----------- |:---------------------: | :---------------------:| :---------------------:|:---------------------: | :---------------------:| :---------------------:| :---------------------:| :---------------------:|
57-
| | [<img src="docs/_static/esp32-lyrat-v4.2-side.jpg" width="120" alt ="ESP32-LyraT Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-lyratd-msc-v2.2.jpg" width="120" alt ="ESP32-LyraTD-MSC Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyratd-msc.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-lyrat-mini-v1.2.png" width="110" alt ="ESP32-LyraT-Mini Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat-mini.html) | [<img src="docs/_static/esp32-korvo-du1906-v1.1.png" width="110" alt ="ESP32-Korvo-DU1906 Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-korvo-du1906.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-s2-kaluga-1-kit.png" width="100" alt ="ESP32-LyraT-Mini Development Board" align="center" />](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-esp32-s2-kaluga-1-kit.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-s3-korvo-2-v3.0-overview.png" width="120" alt ="ESP32-S3-Korvo-2 Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/user-guide-esp32-s3-korvo-2.html) | [<img src="docs/_static/esp32-c3-lyra-v2.0-small.png" width="120" alt ="ESP32-C3-Lyra Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/user-guide-esp32-c3-lyra.html) | [<img src="docs/_static/esp32_s3_box_3.jpg" width="100" alt ="ESP32-S3-Box Development Board" align="center" />](https://github.com/espressif/esp-box/tree/master) |
58-
| ESP-ADF Master | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) <sup> **1** </sup> |
59-
| ESP-ADF Release/v2.7 | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) <sup> **1** </sup> |
60-
| ESP-ADF Release/v2.6 | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) <sup> **1** </sup> |
55+
| | [ESP32-LyraT](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat.html) | [ESP32-LyraTD-MSC](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyratd-msc.html) | [ESP32-LyraT-Mini](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat-mini.html) | [ESP32-Korvo-DU1906](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-korvo-du1906.html) | [ESP32-S2-Kaluga-1 Kit](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-esp32-s2-kaluga-1-kit.html)|[ESP32-S3-Korvo-2](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/user-guide-esp32-s3-korvo-2.html)|[ESP32-C3-Lyra](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/user-guide-esp32-c3-lyra.html)| [ESP32-S3-Box Serials](https://github.com/espressif/esp-box/tree/master)| [ESP32-P4-function-ev-Board](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/index.html)|
56+
|:----------- |:---------------------: | :---------------------:| :---------------------:|:---------------------: | :---------------------:| :---------------------:| :---------------------:| :---------------------:| :---------------------:|
57+
| | [<img src="docs/_static/esp32-lyrat-v4.2-side.jpg" width="120" alt ="ESP32-LyraT Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-lyratd-msc-v2.2.jpg" width="120" alt ="ESP32-LyraTD-MSC Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyratd-msc.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-lyrat-mini-v1.2.png" width="110" alt ="ESP32-LyraT-Mini Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-lyrat-mini.html) | [<img src="docs/_static/esp32-korvo-du1906-v1.1.png" width="110" alt ="ESP32-Korvo-DU1906 Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/get-started-esp32-korvo-du1906.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-s2-kaluga-1-kit.png" width="100" alt ="ESP32-LyraT-Mini Development Board" align="center" />](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-esp32-s2-kaluga-1-kit.html) <sup> **2** </sup> | [<img src="docs/_static/esp32-s3-korvo-2-v3.0-overview.png" width="120" alt ="ESP32-S3-Korvo-2 Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/get-started/user-guide-esp32-s3-korvo-2.html) | [<img src="docs/_static/esp32-c3-lyra-v2.0-small.png" width="120" alt ="ESP32-C3-Lyra Development Board" align="center" />](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/user-guide-esp32-c3-lyra.html) | [<img src="docs/_static/esp32_s3_box_3.jpg" width="100" alt ="ESP32-S3-Box Development Board" align="center" />](https://github.com/espressif/esp-box/tree/master) | [<img src="docs/_static/esp32-p4-function-ev-board.jpg" width="100" alt ="" align="center" />](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/index.html) |
58+
| ESP-ADF Master | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) <sup> **1** </sup> | ![alt text](docs/_static/yes-checkm.png) |
59+
| ESP-ADF Release/v2.7 | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/no-icon.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) <sup> **1** </sup> | ![alt text](docs/_static/yes-checkm.png) |
60+
| ESP-ADF Release/v2.6 | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) | ![alt text](docs/_static/yes-checkm.png) <sup> **1** </sup> | ![alt text](docs/_static/no-icon.png) |
6161

6262
**Note 1:** For the development board of [esp-box series](https://github.com/espressif/esp-box), only [esp32-s3-box](https://github.com/espressif/esp-box/blob/master/docs/hardware_overview/esp32_s3_box/hardware_overview_for_box.md) and [esp32-s3-box-lite](https://github.com/espressif/esp-box/blob/master/docs/hardware_overview/esp32_s3_box_lite/hardware_overview_for_lite.md) are supported in *ESP-ADF*.
6363

components/audio_board/CMakeLists.txt

+9
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,13 @@ set(COMPONENT_SRCS
134134
)
135135
endif()
136136

137+
if (CONFIG_ESP32_P4_FUNCTION_EV_BOARD)
138+
message(STATUS "Current board name is " CONFIG_ESP32_P4_FUNCTION_EV_BOARD)
139+
list(APPEND COMPONENT_ADD_INCLUDEDIRS ./esp32_p4_function_ev_board)
140+
set(COMPONENT_SRCS
141+
./esp32_p4_function_ev_board/board.c
142+
./esp32_p4_function_ev_board/board_pins_config.c
143+
)
144+
endif()
145+
137146
register_component()

components/audio_board/Kconfig.projbuild

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ config ESP32_C3_LYRA_V2_BOARD
3535
bool "ESP32-C3-Lyra-v2.0"
3636
config ESP32_C6_DEVKIT_BOARD
3737
bool "ESP32-C6-DEVKIT"
38+
config ESP32_P4_FUNCTION_EV_BOARD
39+
bool "ESP32-P4-FUNCTION-EV-BOARD"
3840

3941
endchoice
4042

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/*
2+
* ESPRESSIF MIT License
3+
*
4+
* Copyright (c) 2024 <ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD>
5+
*
6+
* Permission is hereby granted for use on all ESPRESSIF SYSTEMS products, in which case,
7+
* it is free of charge, to any person obtaining a copy of this software and associated
8+
* documentation files (the "Software"), to deal in the Software without restriction, including
9+
* without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
10+
* and/or sell copies of the Software, and to permit persons to whom the Software is furnished
11+
* to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all copies or
14+
* substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22+
*
23+
*/
24+
25+
#include "esp_log.h"
26+
#include "board.h"
27+
#include "audio_mem.h"
28+
#include "periph_sdcard.h"
29+
#include "periph_adc_button.h"
30+
31+
static const char *TAG = "AUDIO_BOARD";
32+
33+
static audio_board_handle_t board_handle = 0;
34+
35+
audio_board_handle_t audio_board_init(void)
36+
{
37+
if (board_handle) {
38+
ESP_LOGW(TAG, "The board has already been initialized!");
39+
return board_handle;
40+
}
41+
board_handle = (audio_board_handle_t)audio_calloc(1, sizeof(struct audio_board_handle));
42+
AUDIO_MEM_CHECK(TAG, board_handle, return NULL);
43+
board_handle->audio_hal = audio_board_codec_init();
44+
return board_handle;
45+
}
46+
47+
audio_hal_handle_t audio_board_codec_init(void)
48+
{
49+
audio_hal_codec_config_t audio_codec_cfg = AUDIO_CODEC_DEFAULT_CONFIG();
50+
audio_hal_handle_t codec_hal = audio_hal_init(&audio_codec_cfg, &AUDIO_CODEC_ES8311_DEFAULT_HANDLE);
51+
AUDIO_NULL_CHECK(TAG, codec_hal, return NULL);
52+
return codec_hal;
53+
}
54+
55+
esp_err_t audio_board_sdcard_init(esp_periph_set_handle_t set, periph_sdcard_mode_t mode)
56+
{
57+
periph_sdcard_cfg_t sdcard_cfg = {
58+
.root = "/sdcard",
59+
.card_detect_pin = get_sdcard_intr_gpio(),
60+
.mode = mode
61+
};
62+
esp_periph_handle_t sdcard_handle = periph_sdcard_init(&sdcard_cfg);
63+
esp_err_t ret = esp_periph_start(set, sdcard_handle);
64+
int retry_time = 5;
65+
bool mount_flag = false;
66+
while (retry_time--) {
67+
if (periph_sdcard_is_mounted(sdcard_handle)) {
68+
mount_flag = true;
69+
break;
70+
} else {
71+
vTaskDelay(500 / portTICK_PERIOD_MS);
72+
}
73+
}
74+
if (mount_flag == false) {
75+
ESP_LOGE(TAG, "Sdcard mount failed");
76+
return ESP_FAIL;
77+
}
78+
return ret;
79+
}
80+
81+
esp_err_t audio_board_key_init(esp_periph_set_handle_t set)
82+
{
83+
ESP_LOGE(TAG, "esp32_p4_function_ev_board not support key");
84+
return ESP_FAIL;
85+
}
86+
87+
audio_board_handle_t audio_board_get_handle(void)
88+
{
89+
return board_handle;
90+
}
91+
92+
esp_err_t audio_board_deinit(audio_board_handle_t audio_board)
93+
{
94+
esp_err_t ret = ESP_OK;
95+
ret |= audio_hal_deinit(audio_board->audio_hal);
96+
audio_free(audio_board);
97+
board_handle = NULL;
98+
return ret;
99+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
/*
2+
* ESPRESSIF MIT License
3+
*
4+
* Copyright (c) 2024 <ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD>
5+
*
6+
* Permission is hereby granted for use on all ESPRESSIF SYSTEMS products, in which case,
7+
* it is free of charge, to any person obtaining a copy of this software and associated
8+
* documentation files (the "Software"), to deal in the Software without restriction, including
9+
* without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
10+
* and/or sell copies of the Software, and to permit persons to whom the Software is furnished
11+
* to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all copies or
14+
* substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22+
*
23+
*/
24+
25+
#ifndef _AUDIO_BOARD_H_
26+
#define _AUDIO_BOARD_H_
27+
28+
#include "audio_hal.h"
29+
#include "board_def.h"
30+
#include "board_pins_config.h"
31+
#include "esp_peripherals.h"
32+
#include "display_service.h"
33+
#include "periph_sdcard.h"
34+
#include "periph_lcd.h"
35+
36+
#ifdef __cplusplus
37+
extern "C" {
38+
#endif /* __cplusplus */
39+
40+
/**
41+
* @brief Audio board handle
42+
*/
43+
struct audio_board_handle {
44+
audio_hal_handle_t audio_hal; /*!< audio hardware abstract layer handle */
45+
};
46+
47+
typedef struct audio_board_handle *audio_board_handle_t;
48+
49+
/**
50+
* @brief Initialize audio board
51+
*
52+
* @return
53+
* - NULL If initialization failed
54+
* - Others The audio board handle
55+
*/
56+
audio_board_handle_t audio_board_init(void);
57+
58+
/**
59+
* @brief Initialize codec chip
60+
*
61+
* @return
62+
* - NULL If initialization failed
63+
* - Others The audio hal handle
64+
*/
65+
audio_hal_handle_t audio_board_codec_init(void);
66+
67+
/**
68+
* @brief Initialize sdcard peripheral
69+
*
70+
* @param[in] set The handle of esp_periph_set_handle_t
71+
* @param[in] mode SDCard mode
72+
*
73+
* @return
74+
* - ESP_OK On success
75+
* - Others On failure
76+
*/
77+
esp_err_t audio_board_sdcard_init(esp_periph_set_handle_t set, periph_sdcard_mode_t mode);
78+
79+
/**
80+
* @brief Initialize key peripheral
81+
*
82+
* @param[in] set The handle of esp_periph_set_handle_t
83+
*
84+
* @return
85+
* - ESP_OK On success
86+
* - Others On failure
87+
*/
88+
esp_err_t audio_board_key_init(esp_periph_set_handle_t set);
89+
90+
/**
91+
* @brief Query audio_board_handle
92+
*
93+
* @return
94+
* - NULL If board not initialized
95+
* - Others The audio board handle
96+
*/
97+
audio_board_handle_t audio_board_get_handle(void);
98+
99+
/**
100+
* @brief Uninitialize the audio board
101+
*
102+
* @param[in] audio_board The handle of audio board
103+
*
104+
* @return
105+
* - ESP_OK On success
106+
* - Others On failure
107+
*/
108+
esp_err_t audio_board_deinit(audio_board_handle_t audio_board);
109+
110+
#ifdef __cplusplus
111+
}
112+
#endif /* __cplusplus */
113+
114+
#endif /* _AUDIO_BOARD_H_ */

0 commit comments

Comments
 (0)