add support for lyrat mini 1.1 board
- update Readme Signed-off-by: Karl Osterseher <karli_o@gmx.at>
This commit is contained in:
@@ -133,10 +133,10 @@ idf.py menuconfig
|
||||
Configure to match your setup
|
||||
- <b>Audio HAL :</b> Choose your audio board
|
||||
- Lyrat (4.3, 4.2)
|
||||
- Lyrat TD (2.2, 2.1)
|
||||
- Lyrat TD (2.2, 2.1) --> not supported yet
|
||||
- Lyrat Mini (1.1)
|
||||
- KORVO DU1906
|
||||
- ESP32-S2 Kaluga (1.2)
|
||||
- KORVO DU1906 --> not supported yet
|
||||
- ESP32-S2 Kaluga (1.2) --> not supported yet
|
||||
- Or a custom board
|
||||
- <b>Custom Audio Board :</b> Configure your DAC and GPIO
|
||||
- DAC Chip :
|
||||
|
||||
@@ -24,7 +24,7 @@ set(COMPONENT_SRCS
|
||||
)
|
||||
endif()
|
||||
|
||||
#[[
|
||||
|
||||
if (CONFIG_ESP_LYRAT_MINI_V1_1_BOARD)
|
||||
message(STATUS "Current board name is " CONFIG_ESP_LYRAT_MINI_V1_1_BOARD)
|
||||
list(APPEND COMPONENT_ADD_INCLUDEDIRS ./lyrat_mini_v1_1)
|
||||
@@ -34,7 +34,7 @@ set(COMPONENT_SRCS
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
#[[
|
||||
if (CONFIG_ESP_LYRATD_MSC_V2_1_BOARD)
|
||||
message(STATUS "Current board name is " CONFIG_ESP_LYRATD_MSC_V2_1_BOARD)
|
||||
list(APPEND COMPONENT_ADD_INCLUDEDIRS ./lyratd_msc_v2_1)
|
||||
|
||||
182
components/audio_board/lyrat_mini_v1_1/board.c
Normal file
182
components/audio_board/lyrat_mini_v1_1/board.c
Normal file
@@ -0,0 +1,182 @@
|
||||
/*
|
||||
* ESPRESSIF MIT License
|
||||
*
|
||||
* Copyright (c) 2019 <ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD>
|
||||
*
|
||||
* Permission is hereby granted for use on all ESPRESSIF SYSTEMS products, in
|
||||
* which case, it is free of charge, to any person obtaining a copy of this
|
||||
* software and associated documentation files (the "Software"), to deal in the
|
||||
* Software without restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do
|
||||
* so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "board.h"
|
||||
|
||||
#include "audio_mem.h"
|
||||
#include "esp_log.h"
|
||||
|
||||
// #include "periph_sdcard.h"
|
||||
// #include "led_indicator.h"
|
||||
// #include "periph_adc_button.h"
|
||||
|
||||
static const char *TAG = "AUDIO_BOARD";
|
||||
|
||||
static audio_board_handle_t board_handle = 0;
|
||||
|
||||
audio_board_handle_t audio_board_init(void) {
|
||||
if (board_handle) {
|
||||
ESP_LOGW(TAG, "The board has already been initialized!");
|
||||
return board_handle;
|
||||
}
|
||||
board_handle =
|
||||
(audio_board_handle_t)audio_calloc(1, sizeof(struct audio_board_handle));
|
||||
AUDIO_MEM_CHECK(TAG, board_handle, return NULL);
|
||||
board_handle->audio_hal = audio_board_codec_init();
|
||||
board_handle->adc_hal = audio_board_adc_init();
|
||||
return board_handle;
|
||||
}
|
||||
|
||||
audio_hal_handle_t audio_board_adc_init(void) {
|
||||
audio_hal_codec_config_t audio_codec_cfg = AUDIO_CODEC_DEFAULT_CONFIG();
|
||||
audio_hal_handle_t adc_hal =
|
||||
audio_hal_init(&audio_codec_cfg, &AUDIO_CODEC_ES7243_DEFAULT_HANDLE);
|
||||
AUDIO_NULL_CHECK(TAG, adc_hal, return NULL);
|
||||
return adc_hal;
|
||||
}
|
||||
|
||||
audio_hal_handle_t audio_board_codec_init(void) {
|
||||
audio_hal_codec_config_t audio_codec_cfg = AUDIO_CODEC_DEFAULT_CONFIG();
|
||||
audio_hal_handle_t codec_hal =
|
||||
audio_hal_init(&audio_codec_cfg, &AUDIO_CODEC_ES8311_DEFAULT_HANDLE);
|
||||
AUDIO_NULL_CHECK(TAG, codec_hal, return NULL);
|
||||
return codec_hal;
|
||||
}
|
||||
|
||||
// display_service_handle_t audio_board_led_init(void)
|
||||
//{
|
||||
// led_indicator_handle_t led =
|
||||
// led_indicator_init((gpio_num_t)get_green_led_gpio());
|
||||
// display_service_config_t display = {
|
||||
// .based_cfg = {
|
||||
// .task_stack = 0,
|
||||
// .task_prio = 0,
|
||||
// .task_core = 0,
|
||||
// .task_func = NULL,
|
||||
// .service_start = NULL,
|
||||
// .service_stop = NULL,
|
||||
// .service_destroy = NULL,
|
||||
// .service_ioctl = led_indicator_pattern,
|
||||
// .service_name = "DISPLAY_serv",
|
||||
// .user_data = NULL,
|
||||
// },
|
||||
// .instance = led,
|
||||
// };
|
||||
//
|
||||
// return display_service_create(&display);
|
||||
// }
|
||||
//
|
||||
// display_service_handle_t audio_board_blue_led_init(void)
|
||||
//{
|
||||
// led_indicator_handle_t led =
|
||||
// led_indicator_init((gpio_num_t)get_blue_led_gpio());
|
||||
// display_service_config_t display = {
|
||||
// .based_cfg = {
|
||||
// .task_stack = 0,
|
||||
// .task_prio = 0,
|
||||
// .task_core = 0,
|
||||
// .task_func = NULL,
|
||||
// .service_start = NULL,
|
||||
// .service_stop = NULL,
|
||||
// .service_destroy = NULL,
|
||||
// .service_ioctl = led_indicator_pattern,
|
||||
// .service_name = "DISPLAY_serv",
|
||||
// .user_data = NULL,
|
||||
// },
|
||||
// .instance = led,
|
||||
// };
|
||||
//
|
||||
// return display_service_create(&display);
|
||||
// }
|
||||
//
|
||||
// esp_err_t audio_board_key_init(esp_periph_set_handle_t set)
|
||||
//{
|
||||
// esp_err_t ret = ESP_OK;
|
||||
// periph_adc_button_cfg_t adc_btn_cfg = PERIPH_ADC_BUTTON_DEFAULT_CONFIG();
|
||||
// adc_arr_t adc_btn_tag = ADC_DEFAULT_ARR();
|
||||
// adc_btn_tag.total_steps = 6;
|
||||
// int btn_array[7] = {190, 600, 1000, 1375, 1775, 2195, 3100};
|
||||
// adc_btn_tag.adc_level_step = btn_array;
|
||||
// adc_btn_cfg.arr = &adc_btn_tag;
|
||||
// adc_btn_cfg.arr_size = 1;
|
||||
// esp_periph_handle_t adc_btn_handle =
|
||||
// periph_adc_button_init(&adc_btn_cfg); AUDIO_NULL_CHECK(TAG,
|
||||
// adc_btn_handle, return ESP_ERR_ADF_MEMORY_LACK); ret =
|
||||
// esp_periph_start(set, adc_btn_handle); return ret;
|
||||
// }
|
||||
//
|
||||
// esp_err_t audio_board_sdcard_init(esp_periph_set_handle_t set,
|
||||
// periph_sdcard_mode_t mode)
|
||||
//{
|
||||
// if (mode != SD_MODE_1_LINE) {
|
||||
// ESP_LOGE(TAG, "Current board only support 1-line SD mode!");
|
||||
// return ESP_FAIL;
|
||||
// }
|
||||
// gpio_config_t sdcard_pwr_pin_cfg = {
|
||||
// .pin_bit_mask = 1UL << SDCARD_PWR_CTRL,
|
||||
// .mode = GPIO_MODE_OUTPUT,
|
||||
// .pull_up_en = GPIO_PULLUP_DISABLE,
|
||||
// .pull_down_en = GPIO_PULLDOWN_DISABLE,
|
||||
// .intr_type = GPIO_INTR_DISABLE,
|
||||
// };
|
||||
//
|
||||
// gpio_config(&sdcard_pwr_pin_cfg);
|
||||
// gpio_set_level(SDCARD_PWR_CTRL, 0);
|
||||
//
|
||||
// periph_sdcard_cfg_t sdcard_cfg = {
|
||||
// .root = "/sdcard",
|
||||
// .card_detect_pin = get_sdcard_intr_gpio(), // GPIO_NUM_34
|
||||
// .mode = mode
|
||||
// };
|
||||
// esp_periph_handle_t sdcard_handle = periph_sdcard_init(&sdcard_cfg);
|
||||
// esp_err_t ret = esp_periph_start(set, sdcard_handle);
|
||||
// int retry_time = 5;
|
||||
// bool mount_flag = false;
|
||||
// while (retry_time --) {
|
||||
// if (periph_sdcard_is_mounted(sdcard_handle)) {
|
||||
// mount_flag = true;
|
||||
// break;
|
||||
// } else {
|
||||
// vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
// }
|
||||
// }
|
||||
// if (mount_flag == false) {
|
||||
// ESP_LOGE(TAG, "Sdcard mount failed");
|
||||
// return ESP_FAIL;
|
||||
// }
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
audio_board_handle_t audio_board_get_handle(void) { return board_handle; }
|
||||
|
||||
esp_err_t audio_board_deinit(audio_board_handle_t audio_board) {
|
||||
esp_err_t ret = ESP_OK;
|
||||
ret |= audio_hal_deinit(audio_board->audio_hal);
|
||||
ret |= audio_hal_deinit(audio_board->adc_hal);
|
||||
audio_free(audio_board);
|
||||
board_handle = NULL;
|
||||
return ret;
|
||||
}
|
||||
130
components/audio_board/lyrat_mini_v1_1/board.h
Normal file
130
components/audio_board/lyrat_mini_v1_1/board.h
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* ESPRESSIF MIT License
|
||||
*
|
||||
* Copyright (c) 2019 <ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD>
|
||||
*
|
||||
* Permission is hereby granted for use on all ESPRESSIF SYSTEMS products, in
|
||||
* which case, it is free of charge, to any person obtaining a copy of this
|
||||
* software and associated documentation files (the "Software"), to deal in the
|
||||
* Software without restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do
|
||||
* so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _AUDIO_BOARD_H_
|
||||
#define _AUDIO_BOARD_H_
|
||||
|
||||
#include "audio_hal.h"
|
||||
#include "board_def.h"
|
||||
#include "board_pins_config.h"
|
||||
// #include "esp_peripherals.h"
|
||||
// #include "display_service.h"
|
||||
// #include "periph_sdcard.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Audio board handle
|
||||
*/
|
||||
struct audio_board_handle {
|
||||
audio_hal_handle_t audio_hal; /*!< audio hardware abstract layer handle */
|
||||
audio_hal_handle_t adc_hal; /*!< adc hardware abstract layer handle */
|
||||
};
|
||||
|
||||
typedef struct audio_board_handle *audio_board_handle_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize audio board
|
||||
*
|
||||
* @return The audio board handle
|
||||
*/
|
||||
audio_board_handle_t audio_board_init(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize codec chip
|
||||
*
|
||||
* @return The audio hal handle
|
||||
*/
|
||||
audio_hal_handle_t audio_board_codec_init(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize adc
|
||||
*
|
||||
* @return The adc hal handle
|
||||
*/
|
||||
audio_hal_handle_t audio_board_adc_init(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize led peripheral and display service
|
||||
*
|
||||
* @return The audio display service handle
|
||||
*/
|
||||
// display_service_handle_t audio_board_led_init(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize led peripheral and display service
|
||||
*
|
||||
* @return The audio display service handle
|
||||
*/
|
||||
// display_service_handle_t audio_board_blue_led_init(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize key peripheral
|
||||
*
|
||||
* @param set The handle of esp_periph_set_handle_t
|
||||
*
|
||||
* @return
|
||||
* - ESP_OK, success
|
||||
* - Others, fail
|
||||
*/
|
||||
// esp_err_t audio_board_key_init(esp_periph_set_handle_t set);
|
||||
|
||||
/**
|
||||
* @brief Initialize sdcard peripheral
|
||||
*
|
||||
* @param set The handle of esp_periph_set_handle_t
|
||||
*
|
||||
* @return
|
||||
* - ESP_OK, success
|
||||
* - Others, fail
|
||||
*/
|
||||
// esp_err_t audio_board_sdcard_init(esp_periph_set_handle_t set,
|
||||
// periph_sdcard_mode_t mode);
|
||||
|
||||
/**
|
||||
* @brief Query audio_board_handle
|
||||
*
|
||||
* @return The audio board handle
|
||||
*/
|
||||
audio_board_handle_t audio_board_get_handle(void);
|
||||
|
||||
/**
|
||||
* @brief Uninitialize the audio board
|
||||
*
|
||||
* @param audio_board The handle of audio board
|
||||
*
|
||||
* @return 0 success,
|
||||
* others fail
|
||||
*/
|
||||
esp_err_t audio_board_deinit(audio_board_handle_t audio_board);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
125
components/audio_board/lyrat_mini_v1_1/board_def.h
Normal file
125
components/audio_board/lyrat_mini_v1_1/board_def.h
Normal file
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
* ESPRESSIF MIT License
|
||||
*
|
||||
* Copyright (c) 2019 <ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD>
|
||||
*
|
||||
* Permission is hereby granted for use on all ESPRESSIF SYSTEMS products, in
|
||||
* which case, it is free of charge, to any person obtaining a copy of this
|
||||
* software and associated documentation files (the "Software"), to deal in the
|
||||
* Software without restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do
|
||||
* so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _AUDIO_BOARD_DEFINITION_H_
|
||||
#define _AUDIO_BOARD_DEFINITION_H_
|
||||
|
||||
/**
|
||||
* @brief SDCARD Function Definition
|
||||
*/
|
||||
#define FUNC_SDCARD_EN (1)
|
||||
#define SDCARD_OPEN_FILE_NUM_MAX 5
|
||||
#define SDCARD_INTR_GPIO GPIO_NUM_34
|
||||
#define SDCARD_PWR_CTRL GPIO_NUM_13
|
||||
|
||||
#define ESP_SD_PIN_CLK GPIO_NUM_14
|
||||
#define ESP_SD_PIN_CMD GPIO_NUM_15
|
||||
#define ESP_SD_PIN_D0 GPIO_NUM_2
|
||||
#define ESP_SD_PIN_D3 -1
|
||||
|
||||
/**
|
||||
* @brief LED Function Definition
|
||||
*/
|
||||
#define FUNC_SYS_LEN_EN (1)
|
||||
#define BLUE_LED_GPIO GPIO_NUM_27
|
||||
#define GREEN_LED_GPIO GPIO_NUM_22
|
||||
|
||||
/**
|
||||
* @brief Audio Codec Chip Function Definition
|
||||
*/
|
||||
#define FUNC_AUDIO_CODEC_EN (1)
|
||||
#define ES7243_MCLK_GPIO GPIO_NUM_0
|
||||
#define HEADPHONE_DETECT GPIO_NUM_19
|
||||
#define PA_ENABLE_GPIO GPIO_NUM_21
|
||||
#define ES8311_MCLK_SOURCE 0 /* 0 From MCLK of esp32 1 From BCLK */
|
||||
#define CODEC_ADC_I2S_PORT (1)
|
||||
#define CODEC_ADC_BITS_PER_SAMPLE I2S_BITS_PER_SAMPLE_16BIT
|
||||
#define CODEC_ADC_SAMPLE_RATE (16000)
|
||||
#define RECORD_HARDWARE_AEC (true)
|
||||
#define BOARD_PA_GAIN (20) /* Power amplifier gain defined by board (dB) */
|
||||
|
||||
extern audio_hal_func_t AUDIO_CODEC_ES8311_DEFAULT_HANDLE;
|
||||
extern audio_hal_func_t AUDIO_CODEC_ES7243_DEFAULT_HANDLE;
|
||||
#define AUDIO_CODEC_DEFAULT_CONFIG() \
|
||||
{ \
|
||||
.adc_input = AUDIO_HAL_ADC_INPUT_LINE1, \
|
||||
.dac_output = AUDIO_HAL_DAC_OUTPUT_ALL, \
|
||||
.codec_mode = AUDIO_HAL_CODEC_MODE_BOTH, \
|
||||
.i2s_iface = \
|
||||
{ \
|
||||
.mode = AUDIO_HAL_MODE_SLAVE, \
|
||||
.fmt = AUDIO_HAL_I2S_NORMAL, \
|
||||
.samples = AUDIO_HAL_48K_SAMPLES, \
|
||||
.bits = AUDIO_HAL_BIT_LENGTH_16BITS, \
|
||||
}, \
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Button Function Definition
|
||||
*/
|
||||
#define FUNC_BUTTON_EN (1)
|
||||
#define ADC_DETECT_GPIO GPIO_NUM_39
|
||||
#define INPUT_KEY_NUM 6
|
||||
#define BUTTON_VOLUP_ID 0
|
||||
#define BUTTON_VOLDOWN_ID 1
|
||||
#define BUTTON_SET_ID 2
|
||||
#define BUTTON_PLAY_ID 3
|
||||
#define BUTTON_MODE_ID 4
|
||||
#define BUTTON_REC_ID 5
|
||||
#define INPUT_KEY_DEFAULT_INFO() \
|
||||
{ \
|
||||
{ \
|
||||
.type = PERIPH_ID_ADC_BTN, \
|
||||
.user_id = INPUT_KEY_USER_ID_REC, \
|
||||
.act_id = BUTTON_REC_ID, \
|
||||
}, \
|
||||
{ \
|
||||
.type = PERIPH_ID_ADC_BTN, \
|
||||
.user_id = INPUT_KEY_USER_ID_MODE, \
|
||||
.act_id = BUTTON_MODE_ID, \
|
||||
}, \
|
||||
{ \
|
||||
.type = PERIPH_ID_ADC_BTN, \
|
||||
.user_id = INPUT_KEY_USER_ID_SET, \
|
||||
.act_id = BUTTON_SET_ID, \
|
||||
}, \
|
||||
{ \
|
||||
.type = PERIPH_ID_ADC_BTN, \
|
||||
.user_id = INPUT_KEY_USER_ID_PLAY, \
|
||||
.act_id = BUTTON_PLAY_ID, \
|
||||
}, \
|
||||
{ \
|
||||
.type = PERIPH_ID_ADC_BTN, \
|
||||
.user_id = INPUT_KEY_USER_ID_VOLUP, \
|
||||
.act_id = BUTTON_VOLUP_ID, \
|
||||
}, \
|
||||
{ \
|
||||
.type = PERIPH_ID_ADC_BTN, .user_id = INPUT_KEY_USER_ID_VOLDOWN, \
|
||||
.act_id = BUTTON_VOLDOWN_ID, \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
167
components/audio_board/lyrat_mini_v1_1/board_pins_config.c
Normal file
167
components/audio_board/lyrat_mini_v1_1/board_pins_config.c
Normal file
@@ -0,0 +1,167 @@
|
||||
/*
|
||||
* ESPRESSIF MIT License
|
||||
*
|
||||
* Copyright (c) 2019 <ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD>
|
||||
*
|
||||
* Permission is hereby granted for use on all ESPRESSIF SYSTEMS products, in
|
||||
* which case, it is free of charge, to any person obtaining a copy of this
|
||||
* software and associated documentation files (the "Software"), to deal in the
|
||||
* Software without restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do
|
||||
* so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "audio_error.h"
|
||||
#include "audio_mem.h"
|
||||
#include "board.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "esp_log.h"
|
||||
#include "soc/io_mux_reg.h"
|
||||
#include "soc/soc_caps.h"
|
||||
|
||||
static const char *TAG = "LYRAT_MINI_V1_1";
|
||||
|
||||
esp_err_t get_i2c_pins(i2c_port_t port, i2c_config_t *i2c_config) {
|
||||
AUDIO_NULL_CHECK(TAG, i2c_config, return ESP_FAIL);
|
||||
if (port == I2C_NUM_0 || port == I2C_NUM_1) {
|
||||
i2c_config->sda_io_num = GPIO_NUM_18;
|
||||
i2c_config->scl_io_num = GPIO_NUM_23;
|
||||
} else {
|
||||
i2c_config->sda_io_num = -1;
|
||||
i2c_config->scl_io_num = -1;
|
||||
ESP_LOGE(TAG, "i2c port %d is not supported", port);
|
||||
return ESP_FAIL;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t get_i2s_pins(i2s_port_t port, i2s_pin_config_t *i2s_config) {
|
||||
AUDIO_NULL_CHECK(TAG, i2s_config, return ESP_FAIL);
|
||||
if (port == I2S_NUM_0) {
|
||||
// i2s_config->mck_io_num = GPIO_NUM_0;
|
||||
i2s_config->bck_io_num = GPIO_NUM_5;
|
||||
i2s_config->ws_io_num = GPIO_NUM_25;
|
||||
i2s_config->data_out_num = GPIO_NUM_26;
|
||||
i2s_config->data_in_num = GPIO_NUM_35;
|
||||
} else if (port == I2S_NUM_1) {
|
||||
// i2s_config->mck_io_num = GPIO_NUM_0;
|
||||
i2s_config->bck_io_num = GPIO_NUM_32;
|
||||
i2s_config->ws_io_num = GPIO_NUM_33;
|
||||
i2s_config->data_out_num = -1;
|
||||
i2s_config->data_in_num = GPIO_NUM_36;
|
||||
} else {
|
||||
memset(i2s_config, -1, sizeof(i2s_pin_config_t));
|
||||
ESP_LOGE(TAG, "i2s port %d is not supported", port);
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t get_spi_pins(
|
||||
spi_bus_config_t *spi_config,
|
||||
spi_device_interface_config_t *spi_device_interface_config) {
|
||||
AUDIO_NULL_CHECK(TAG, spi_config, return ESP_FAIL);
|
||||
AUDIO_NULL_CHECK(TAG, spi_device_interface_config, return ESP_FAIL);
|
||||
|
||||
spi_config->mosi_io_num = -1;
|
||||
spi_config->miso_io_num = -1;
|
||||
spi_config->sclk_io_num = -1;
|
||||
spi_config->quadwp_io_num = -1;
|
||||
spi_config->quadhd_io_num = -1;
|
||||
|
||||
spi_device_interface_config->spics_io_num = -1;
|
||||
|
||||
ESP_LOGW(TAG, "SPI interface is not supported");
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t i2s_mclk_gpio_select(i2s_port_t i2s_num, gpio_num_t gpio_num) {
|
||||
if (i2s_num >= I2S_NUM_MAX) {
|
||||
ESP_LOGE(TAG, "Does not support i2s number(%d)", i2s_num);
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
if (gpio_num != GPIO_NUM_0 && gpio_num != GPIO_NUM_1 &&
|
||||
gpio_num != GPIO_NUM_3) {
|
||||
ESP_LOGE(TAG, "Only support GPIO0/GPIO1/GPIO3, gpio_num:%d", gpio_num);
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
ESP_LOGI(TAG, "I2S%d, MCLK output by GPIO%d", i2s_num, gpio_num);
|
||||
if (i2s_num == I2S_NUM_0) {
|
||||
if (gpio_num == GPIO_NUM_0) {
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_CLK_OUT1);
|
||||
WRITE_PERI_REG(PIN_CTRL, 0xFFF0);
|
||||
} else if (gpio_num == GPIO_NUM_1) {
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD_CLK_OUT3);
|
||||
WRITE_PERI_REG(PIN_CTRL, 0xF0F0);
|
||||
} else {
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_U0RXD_CLK_OUT2);
|
||||
WRITE_PERI_REG(PIN_CTRL, 0xFF00);
|
||||
}
|
||||
} else if (i2s_num == I2S_NUM_1) {
|
||||
if (gpio_num == GPIO_NUM_0) {
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_CLK_OUT1);
|
||||
WRITE_PERI_REG(PIN_CTRL, 0xFFFF);
|
||||
} else if (gpio_num == GPIO_NUM_1) {
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD_CLK_OUT3);
|
||||
WRITE_PERI_REG(PIN_CTRL, 0xF0FF);
|
||||
} else {
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_U0RXD_CLK_OUT2);
|
||||
WRITE_PERI_REG(PIN_CTRL, 0xFF0F);
|
||||
}
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
// sdcard
|
||||
|
||||
int8_t get_sdcard_intr_gpio(void) { return SDCARD_INTR_GPIO; }
|
||||
|
||||
int8_t get_sdcard_open_file_num_max(void) { return SDCARD_OPEN_FILE_NUM_MAX; }
|
||||
|
||||
int8_t get_sdcard_power_ctrl_gpio(void) { return SDCARD_PWR_CTRL; }
|
||||
|
||||
// input-output pins
|
||||
|
||||
int8_t get_headphone_detect_gpio(void) { return HEADPHONE_DETECT; }
|
||||
|
||||
int8_t get_pa_enable_gpio(void) { return PA_ENABLE_GPIO; }
|
||||
|
||||
// adc button id
|
||||
|
||||
int8_t get_input_rec_id(void) { return BUTTON_REC_ID; }
|
||||
|
||||
int8_t get_input_mode_id(void) { return BUTTON_MODE_ID; }
|
||||
|
||||
int8_t get_input_set_id(void) { return BUTTON_SET_ID; }
|
||||
|
||||
int8_t get_input_play_id(void) { return BUTTON_PLAY_ID; }
|
||||
|
||||
int8_t get_input_volup_id(void) { return BUTTON_VOLUP_ID; }
|
||||
|
||||
int8_t get_input_voldown_id(void) { return BUTTON_VOLDOWN_ID; }
|
||||
|
||||
// led pins
|
||||
|
||||
int8_t get_green_led_gpio(void) { return GREEN_LED_GPIO; }
|
||||
|
||||
int8_t get_blue_led_gpio(void) { return BLUE_LED_GPIO; }
|
||||
|
||||
int8_t get_es8311_mclk_src(void) { return ES8311_MCLK_SOURCE; }
|
||||
|
||||
int8_t get_es7243_mclk_gpio(void) { return ES7243_MCLK_GPIO; }
|
||||
@@ -132,11 +132,11 @@ CONFIG_PARTITION_TABLE_MD5=y
|
||||
# Audio HAL
|
||||
#
|
||||
# CONFIG_AUDIO_BOARD_CUSTOM is not set
|
||||
CONFIG_ESP_LYRAT_V4_3_BOARD=y
|
||||
# CONFIG_ESP_LYRAT_V4_3_BOARD is not set
|
||||
# CONFIG_ESP_LYRAT_V4_2_BOARD is not set
|
||||
# CONFIG_ESP_LYRATD_MSC_V2_1_BOARD is not set
|
||||
# CONFIG_ESP_LYRATD_MSC_V2_2_BOARD is not set
|
||||
# CONFIG_ESP_LYRAT_MINI_V1_1_BOARD is not set
|
||||
CONFIG_ESP_LYRAT_MINI_V1_1_BOARD=y
|
||||
# CONFIG_ESP32_KORVO_DU1906_BOARD is not set
|
||||
# CONFIG_ESP32_S2_KALUGA_1_V1_2_BOARD is not set
|
||||
# end of Audio HAL
|
||||
@@ -164,8 +164,8 @@ CONFIG_SNTP_SERVER="pool.ntp.org"
|
||||
# Wifi Configuration
|
||||
#
|
||||
# CONFIG_ENABLE_WIFI_PROVISIONING is not set
|
||||
CONFIG_WIFI_SSID="zuhause"
|
||||
CONFIG_WIFI_PASSWORD="dErtischlEr"
|
||||
CONFIG_WIFI_SSID="test"
|
||||
CONFIG_WIFI_PASSWORD="12345678"
|
||||
CONFIG_WIFI_MAXIMUM_RETRY=0
|
||||
# end of Wifi Configuration
|
||||
|
||||
|
||||
@@ -164,8 +164,8 @@ CONFIG_SNTP_SERVER="pool.ntp.org"
|
||||
# Wifi Configuration
|
||||
#
|
||||
# CONFIG_ENABLE_WIFI_PROVISIONING is not set
|
||||
CONFIG_WIFI_SSID="zuhause"
|
||||
CONFIG_WIFI_PASSWORD="dErtischlEr"
|
||||
CONFIG_WIFI_SSID="test"
|
||||
CONFIG_WIFI_PASSWORD="12345678"
|
||||
CONFIG_WIFI_MAXIMUM_RETRY=0
|
||||
# end of Wifi Configuration
|
||||
|
||||
@@ -310,7 +310,6 @@ CONFIG_ESP_TLS_USING_MBEDTLS=y
|
||||
#
|
||||
# ESP32-specific
|
||||
#
|
||||
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
|
||||
CONFIG_ESP32_REV_MIN_0=y
|
||||
# CONFIG_ESP32_REV_MIN_1 is not set
|
||||
# CONFIG_ESP32_REV_MIN_1_1 is not set
|
||||
@@ -328,69 +327,7 @@ CONFIG_ESP32_DPORT_WORKAROUND=y
|
||||
# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
||||
|
||||
#
|
||||
# SPI RAM config
|
||||
#
|
||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||
CONFIG_SPIRAM_SIZE=-1
|
||||
# CONFIG_SPIRAM_SPEED_40M is not set
|
||||
CONFIG_SPIRAM_SPEED_80M=y
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||
# CONFIG_SPIRAM_USE_MEMMAP is not set
|
||||
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||
CONFIG_SPIRAM_USE_MALLOC=y
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
|
||||
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
|
||||
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
|
||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||
|
||||
#
|
||||
# SPIRAM cache workaround debugging
|
||||
#
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW=y
|
||||
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST is not set
|
||||
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS is not set
|
||||
# end of SPIRAM cache workaround debugging
|
||||
|
||||
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
|
||||
CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
|
||||
# CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY is not set
|
||||
# CONFIG_SPIRAM_OCCUPY_HSPI_HOST is not set
|
||||
CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y
|
||||
# CONFIG_SPIRAM_OCCUPY_NO_HOST is not set
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32-DOWD
|
||||
#
|
||||
CONFIG_D0WD_PSRAM_CLK_IO=17
|
||||
CONFIG_D0WD_PSRAM_CS_IO=16
|
||||
# end of PSRAM clock and cs IO for ESP32-DOWD
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32-D2WD
|
||||
#
|
||||
CONFIG_D2WD_PSRAM_CLK_IO=9
|
||||
CONFIG_D2WD_PSRAM_CS_IO=10
|
||||
# end of PSRAM clock and cs IO for ESP32-D2WD
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32-PICO
|
||||
#
|
||||
CONFIG_PICO_PSRAM_CS_IO=10
|
||||
# end of PSRAM clock and cs IO for ESP32-PICO
|
||||
|
||||
# CONFIG_SPIRAM_2T_MODE is not set
|
||||
# end of SPI RAM config
|
||||
|
||||
# CONFIG_ESP32_SPIRAM_SUPPORT is not set
|
||||
# CONFIG_ESP32_TRAX is not set
|
||||
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
|
||||
# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set
|
||||
@@ -557,7 +494,7 @@ CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
||||
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
|
||||
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
||||
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
|
||||
# CONFIG_ESP_SYSTEM_PSRAM_LEAKAGE_WORKAROUND is not set
|
||||
CONFIG_ESP_SYSTEM_PD_FLASH=y
|
||||
# CONFIG_ESP_SYSTEM_FLASH_LEAKAGE_WORKAROUND is not set
|
||||
|
||||
#
|
||||
@@ -588,15 +525,14 @@ CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=8
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=64
|
||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
||||
# CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER is not set
|
||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=8
|
||||
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=32
|
||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=8
|
||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_RX_BA_WIN=16
|
||||
# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||
@@ -665,7 +601,6 @@ CONFIG_FATFS_LFN_NONE=y
|
||||
CONFIG_FATFS_FS_LOCK=0
|
||||
CONFIG_FATFS_TIMEOUT_MS=10000
|
||||
CONFIG_FATFS_PER_FILE_CACHE=y
|
||||
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
||||
# CONFIG_FATFS_USE_FASTSEEK is not set
|
||||
# end of FAT Filesystem support
|
||||
|
||||
@@ -917,7 +852,6 @@ CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
||||
# mbedTLS
|
||||
#
|
||||
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
||||
# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set
|
||||
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
|
||||
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
|
||||
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
||||
@@ -1323,8 +1257,7 @@ CONFIG_STACK_CHECK_NONE=y
|
||||
CONFIG_ESP32_APPTRACE_DEST_NONE=y
|
||||
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
|
||||
CONFIG_ADC2_DISABLE_DAC=y
|
||||
CONFIG_SPIRAM_SUPPORT=y
|
||||
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
|
||||
# CONFIG_SPIRAM_SUPPORT is not set
|
||||
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
||||
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||
|
||||
@@ -164,8 +164,8 @@ CONFIG_SNTP_SERVER="pool.ntp.org"
|
||||
# Wifi Configuration
|
||||
#
|
||||
# CONFIG_ENABLE_WIFI_PROVISIONING is not set
|
||||
CONFIG_WIFI_SSID="zuhause"
|
||||
CONFIG_WIFI_PASSWORD="dErtischlEr"
|
||||
CONFIG_WIFI_SSID="test"
|
||||
CONFIG_WIFI_PASSWORD="12345678"
|
||||
CONFIG_WIFI_MAXIMUM_RETRY=0
|
||||
# end of Wifi Configuration
|
||||
|
||||
|
||||
1374
sdkconfig_for_esp_snapserver
Normal file
1374
sdkconfig_for_esp_snapserver
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user