forked from xiaozhi/xiaozhi-esp32
Added support for the T-CameraPlus-S3_V1.2 board (#680)
* Adapt for LilyGO-T-Circle-S3 device * Adapt for LilyGO-T-Circle-S3 device * Remove comments and modify the size of the lilygo-t-circle-s3 image * Modify the code style and format to Google C++ * Modify the code style and format to Google C++ * Fixed bugs in the LILYGO T-Circle-S3 board and added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32 * Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Fix the color display issue for T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY. * Update T-CameraPlus-S3_V1.2 Version Xiaozhi Example
This commit is contained in:
@@ -116,7 +116,9 @@ elseif(CONFIG_BOARD_TYPE_TUDOUZI)
|
|||||||
set(BOARD_TYPE "tudouzi")
|
set(BOARD_TYPE "tudouzi")
|
||||||
elseif(CONFIG_BOARD_TYPE_LILYGO_T_CIRCLE_S3)
|
elseif(CONFIG_BOARD_TYPE_LILYGO_T_CIRCLE_S3)
|
||||||
set(BOARD_TYPE "lilygo-t-circle-s3")
|
set(BOARD_TYPE "lilygo-t-circle-s3")
|
||||||
elseif(CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3)
|
elseif(CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1)
|
||||||
|
set(BOARD_TYPE "lilygo-t-cameraplus-s3")
|
||||||
|
elseif(CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2)
|
||||||
set(BOARD_TYPE "lilygo-t-cameraplus-s3")
|
set(BOARD_TYPE "lilygo-t-cameraplus-s3")
|
||||||
elseif(CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA)
|
elseif(CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA)
|
||||||
set(BOARD_TYPE "lilygo-t-display-s3-pro-mvsrlora")
|
set(BOARD_TYPE "lilygo-t-display-s3-pro-mvsrlora")
|
||||||
|
|||||||
@@ -110,8 +110,10 @@ choice BOARD_TYPE
|
|||||||
bool "土豆子"
|
bool "土豆子"
|
||||||
config BOARD_TYPE_LILYGO_T_CIRCLE_S3
|
config BOARD_TYPE_LILYGO_T_CIRCLE_S3
|
||||||
bool "LILYGO T-Circle-S3"
|
bool "LILYGO T-Circle-S3"
|
||||||
config BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3
|
config BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1
|
||||||
bool "LILYGO T-CameraPlus-S3"
|
bool "LILYGO T-CameraPlus-S3_V1_0_V1_1"
|
||||||
|
config BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
|
||||||
|
bool "LILYGO T-CameraPlus-S3_V1_2"
|
||||||
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA
|
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA
|
||||||
bool "LILYGO T-Display-S3-Pro-MVSRLora"
|
bool "LILYGO T-Display-S3-Pro-MVSRLora"
|
||||||
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA_NO_BATTERY
|
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA_NO_BATTERY
|
||||||
|
|||||||
@@ -8,13 +8,21 @@
|
|||||||
#define AUDIO_INPUT_SAMPLE_RATE 24000
|
#define AUDIO_INPUT_SAMPLE_RATE 24000
|
||||||
#define AUDIO_OUTPUT_SAMPLE_RATE 24000
|
#define AUDIO_OUTPUT_SAMPLE_RATE 24000
|
||||||
|
|
||||||
|
#ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1
|
||||||
#define AUDIO_MIC_I2S_GPIO_BCLK static_cast<gpio_num_t>(MSM261_BCLK)
|
#define AUDIO_MIC_I2S_GPIO_BCLK static_cast<gpio_num_t>(MSM261_BCLK)
|
||||||
#define AUDIO_MIC_I2S_GPIO_WS static_cast<gpio_num_t>(MSM261_WS)
|
#define AUDIO_MIC_I2S_GPIO_WS static_cast<gpio_num_t>(MSM261_WS)
|
||||||
#define AUDIO_MIC_I2S_GPIO_DATA static_cast<gpio_num_t>(MSM261_DIN)
|
#define AUDIO_MIC_I2S_GPIO_DATA static_cast<gpio_num_t>(MSM261_DATA)
|
||||||
|
#elif defined CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
|
||||||
|
#define AUDIO_MIC_I2S_GPIO_BCLK GPIO_NUM_NC
|
||||||
|
#define AUDIO_MIC_I2S_GPIO_WS static_cast<gpio_num_t>(MP34DT05TR_LRCLK)
|
||||||
|
#define AUDIO_MIC_I2S_GPIO_DATA static_cast<gpio_num_t>(MP34DT05TR_DATA)
|
||||||
|
|
||||||
|
#define AUDIO_MIC_SPKR_EN static_cast<gpio_num_t>(MP34DT05TR_MAX98357_EN)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define AUDIO_SPKR_I2S_GPIO_BCLK static_cast<gpio_num_t>(MAX98357A_BCLK)
|
#define AUDIO_SPKR_I2S_GPIO_BCLK static_cast<gpio_num_t>(MAX98357A_BCLK)
|
||||||
#define AUDIO_SPKR_I2S_GPIO_LRCLK static_cast<gpio_num_t>(MAX98357A_LRCLK)
|
#define AUDIO_SPKR_I2S_GPIO_LRCLK static_cast<gpio_num_t>(MAX98357A_LRCLK)
|
||||||
#define AUDIO_SPKR_I2S_GPIO_DATA static_cast<gpio_num_t>(MAX98357A_DOUT)
|
#define AUDIO_SPKR_I2S_GPIO_DATA static_cast<gpio_num_t>(MAX98357A_DATA)
|
||||||
|
|
||||||
#define TOUCH_I2C_SDA_PIN static_cast<gpio_num_t>(TP_SDA)
|
#define TOUCH_I2C_SDA_PIN static_cast<gpio_num_t>(TP_SDA)
|
||||||
#define TOUCH_I2C_SCL_PIN static_cast<gpio_num_t>(TP_SCL)
|
#define TOUCH_I2C_SCL_PIN static_cast<gpio_num_t>(TP_SCL)
|
||||||
|
|||||||
@@ -1,96 +1,148 @@
|
|||||||
/*
|
/*
|
||||||
* @Description: None
|
* @Description: None
|
||||||
* @version: V1.0.0
|
* @Author: LILYGO_L
|
||||||
* @Author: None
|
* @Date: 2024-11-11 11:36:49
|
||||||
* @Date: 2023-08-16 14:24:03
|
* @LastEditTime: 2025-04-25 15:53:53
|
||||||
* @LastEditors: LILYGO_L
|
|
||||||
* @LastEditTime: 2023-12-12 10:12:31
|
|
||||||
* @License: GPL 3.0
|
* @License: GPL 3.0
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// microSD
|
#ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1
|
||||||
#define SD_CS 21
|
#define T_CameraPlus_S3_V1_0_V1_1
|
||||||
#define SD_SCLK 36
|
#elif defined CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
|
||||||
#define SD_MOSI 35
|
#define T_CameraPlus_S3_V1_2
|
||||||
#define SD_MISO 37
|
#endif
|
||||||
|
|
||||||
|
#ifdef T_CameraPlus_S3_V1_0_V1_1
|
||||||
|
|
||||||
// SPI
|
// SPI
|
||||||
#define SCLK 36
|
#define SPI_SCLK 36
|
||||||
#define MOSI 35
|
#define SPI_MOSI 35
|
||||||
#define MISO 37
|
#define SPI_MISO 37
|
||||||
|
|
||||||
// MAX98357A
|
|
||||||
#define MAX98357A_BCLK 41
|
|
||||||
#define MAX98357A_LRCLK 42
|
|
||||||
#define MAX98357A_DOUT 38
|
|
||||||
|
|
||||||
// MSM261
|
|
||||||
#define MSM261_BCLK 18
|
|
||||||
#define MSM261_WS 39
|
|
||||||
#define MSM261_DIN 40
|
|
||||||
|
|
||||||
// FP-133H01D
|
|
||||||
#define LCD_WIDTH 240
|
|
||||||
#define LCD_HEIGHT 240
|
|
||||||
#define LCD_BL 46
|
|
||||||
#define LCD_MOSI 35
|
|
||||||
#define LCD_SCLK 36
|
|
||||||
#define LCD_CS 34
|
|
||||||
#define LCD_DC 45
|
|
||||||
#define LCD_RST 33
|
|
||||||
|
|
||||||
// SY6970
|
|
||||||
#define SY6970_SDA 1
|
|
||||||
#define SY6970_SCL 2
|
|
||||||
#define SY6970_Address 0x6A
|
|
||||||
#define SY6970_INT 47
|
|
||||||
|
|
||||||
// IIC
|
// IIC
|
||||||
#define IIC_SDA 1
|
#define IIC_SDA 1
|
||||||
#define IIC_SCL 2
|
#define IIC_SCL 2
|
||||||
|
|
||||||
|
// MSM261
|
||||||
|
#define MSM261_BCLK 18
|
||||||
|
#define MSM261_WS 39
|
||||||
|
#define MSM261_DATA 40
|
||||||
|
|
||||||
|
// MAX98357A
|
||||||
|
#define MAX98357A_DATA 38
|
||||||
|
|
||||||
|
// FP-133H01D
|
||||||
|
#define LCD_CS 34
|
||||||
|
#define LCD_RST 33
|
||||||
|
|
||||||
// OV2640
|
// OV2640
|
||||||
#define OV2640_PWDN -1
|
#define OV2640_PWDN -1
|
||||||
#define OV2640_RESET 3
|
#define OV2640_RESET 3
|
||||||
#define OV2640_XCLK 7
|
|
||||||
#define OV2640_SIOD 1
|
|
||||||
#define OV2640_SIOC 2
|
|
||||||
#define OV2640_D7 6
|
|
||||||
#define OV2640_D6 8
|
|
||||||
#define OV2640_D5 9
|
|
||||||
#define OV2640_D4 11
|
|
||||||
#define OV2640_D3 13
|
|
||||||
#define OV2640_D2 15
|
|
||||||
#define OV2640_D1 14
|
|
||||||
#define OV2640_D0 12
|
|
||||||
#define OV2640_VSYNC 4
|
#define OV2640_VSYNC 4
|
||||||
|
|
||||||
|
// CST816
|
||||||
|
#define TP_RST 48
|
||||||
|
|
||||||
|
// SY6970
|
||||||
|
#define SY6970_INT 47
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef T_CameraPlus_S3_V1_2
|
||||||
|
|
||||||
|
// SPI
|
||||||
|
#define SPI_SCLK 35
|
||||||
|
#define SPI_MOSI 34
|
||||||
|
#define SPI_MISO 48
|
||||||
|
|
||||||
|
// IIC
|
||||||
|
#define IIC_SDA 33
|
||||||
|
#define IIC_SCL 37
|
||||||
|
|
||||||
|
// MP34DT05TR
|
||||||
|
#define MP34DT05TR_LRCLK 40
|
||||||
|
#define MP34DT05TR_DATA 38
|
||||||
|
|
||||||
|
#define MP34DT05TR_MAX98357_EN 18
|
||||||
|
|
||||||
|
// MAX98357A
|
||||||
|
#define MAX98357A_DATA 39
|
||||||
|
|
||||||
|
// FP-133H01D
|
||||||
|
#define LCD_CS 36
|
||||||
|
#define LCD_RST -1
|
||||||
|
|
||||||
|
// OV2640
|
||||||
|
#define OV2640_PWDN 4
|
||||||
|
#define OV2640_RESET -1
|
||||||
|
#define OV2640_VSYNC 3
|
||||||
|
|
||||||
|
// CST816
|
||||||
|
#define TP_RST -1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// SD
|
||||||
|
#define SD_CS 21
|
||||||
|
#define SD_SCLK SPI_SCLK
|
||||||
|
#define SD_MOSI SPI_MOSI
|
||||||
|
#define SD_MISO SPI_MISO
|
||||||
|
|
||||||
|
// MAX98357A
|
||||||
|
#define MAX98357A_BCLK 41
|
||||||
|
#define MAX98357A_LRCLK 42
|
||||||
|
|
||||||
|
// FP-133H01D
|
||||||
|
#define LCD_WIDTH 240
|
||||||
|
#define LCD_HEIGHT 240
|
||||||
|
#define LCD_BL 46
|
||||||
|
#define LCD_MOSI SPI_MOSI
|
||||||
|
#define LCD_SCLK SPI_SCLK
|
||||||
|
#define LCD_DC 45
|
||||||
|
|
||||||
|
// SY6970
|
||||||
|
#define SY6970_SDA IIC_SDA
|
||||||
|
#define SY6970_SCL IIC_SCL
|
||||||
|
#define SY6970_ADDRESS 0x6A
|
||||||
|
|
||||||
|
// OV2640
|
||||||
|
#define OV2640_XCLK 7
|
||||||
|
#define OV2640_SDA 1
|
||||||
|
#define OV2640_SCL 2
|
||||||
|
#define OV2640_D9 6
|
||||||
|
#define OV2640_D8 8
|
||||||
|
#define OV2640_D7 9
|
||||||
|
#define OV2640_D6 11
|
||||||
|
#define OV2640_D5 13
|
||||||
|
#define OV2640_D4 15
|
||||||
|
#define OV2640_D3 14
|
||||||
|
#define OV2640_D2 12
|
||||||
#define OV2640_HREF 5
|
#define OV2640_HREF 5
|
||||||
#define OV2640_PCLK 10
|
#define OV2640_PCLK 10
|
||||||
|
|
||||||
#define PWDN_GPIO_NUM -1
|
#define PWDN_GPIO_NUM OV2640_PWDN
|
||||||
#define RESET_GPIO_NUM 3
|
#define RESET_GPIO_NUM OV2640_RESET
|
||||||
#define XCLK_GPIO_NUM 7
|
#define XCLK_GPIO_NUM OV2640_XCLK
|
||||||
#define SIOD_GPIO_NUM 1
|
#define SIOD_GPIO_NUM OV2640_SDA
|
||||||
#define SIOC_GPIO_NUM 2
|
#define SIOC_GPIO_NUM OV2640_SCL
|
||||||
|
|
||||||
#define Y9_GPIO_NUM 6
|
#define Y9_GPIO_NUM OV2640_D9
|
||||||
#define Y8_GPIO_NUM 8
|
#define Y8_GPIO_NUM OV2640_D8
|
||||||
#define Y7_GPIO_NUM 9
|
#define Y7_GPIO_NUM OV2640_D7
|
||||||
#define Y6_GPIO_NUM 11
|
#define Y6_GPIO_NUM OV2640_D6
|
||||||
#define Y5_GPIO_NUM 13
|
#define Y5_GPIO_NUM OV2640_D5
|
||||||
#define Y4_GPIO_NUM 15
|
#define Y4_GPIO_NUM OV2640_D4
|
||||||
#define Y3_GPIO_NUM 14
|
#define Y3_GPIO_NUM OV2640_D3
|
||||||
#define Y2_GPIO_NUM 12
|
#define Y2_GPIO_NUM OV2640_D2
|
||||||
#define VSYNC_GPIO_NUM 4
|
#define VSYNC_GPIO_NUM OV2640_VSYNC
|
||||||
#define HREF_GPIO_NUM 5
|
#define HREF_GPIO_NUM OV2640_HREF
|
||||||
#define PCLK_GPIO_NUM 10
|
#define PCLK_GPIO_NUM OV2640_PCLK
|
||||||
|
|
||||||
// CST816
|
// CST816
|
||||||
#define CST816_Address 0x15
|
#define CST816_ADDRESS 0x15
|
||||||
#define TP_SDA 1
|
#define TP_SDA IIC_SDA
|
||||||
#define TP_SCL 2
|
#define TP_SCL IIC_SCL
|
||||||
#define TP_RST 48
|
|
||||||
#define TP_INT 47
|
#define TP_INT 47
|
||||||
|
|
||||||
// AP1511B
|
// AP1511B
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
#include <esp_log.h>
|
#include <esp_log.h>
|
||||||
#include <driver/i2c_master.h>
|
#include <driver/i2c_master.h>
|
||||||
#include <driver/i2s_tdm.h>
|
#include <driver/i2s_tdm.h>
|
||||||
|
#include <driver/i2s_pdm.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
static const char TAG[] = "Tcamerapluss3AudioCodec";
|
static const char TAG[] = "Tcamerapluss3AudioCodec";
|
||||||
|
|
||||||
@@ -19,6 +22,20 @@ Tcamerapluss3AudioCodec::Tcamerapluss3AudioCodec(int input_sample_rate, int outp
|
|||||||
CreateVoiceHardware(mic_bclk, mic_ws, mic_data, spkr_bclk, spkr_lrclk, spkr_data);
|
CreateVoiceHardware(mic_bclk, mic_ws, mic_data, spkr_bclk, spkr_lrclk, spkr_data);
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Tcamerapluss3AudioCodec initialized");
|
ESP_LOGI(TAG, "Tcamerapluss3AudioCodec initialized");
|
||||||
|
|
||||||
|
#ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
|
||||||
|
gpio_config_t config_mic_spkr_en;
|
||||||
|
config_mic_spkr_en.pin_bit_mask = BIT64(AUDIO_MIC_SPKR_EN);
|
||||||
|
config_mic_spkr_en.mode = GPIO_MODE_OUTPUT;
|
||||||
|
config_mic_spkr_en.pull_up_en = GPIO_PULLUP_ENABLE;
|
||||||
|
config_mic_spkr_en.pull_down_en = GPIO_PULLDOWN_DISABLE;
|
||||||
|
config_mic_spkr_en.intr_type = GPIO_INTR_DISABLE;
|
||||||
|
#if SOC_GPIO_SUPPORT_PIN_HYS_FILTER
|
||||||
|
config_mic_spkr_en.hys_ctrl_mode = GPIO_HYS_SOFT_ENABLE;
|
||||||
|
#endif
|
||||||
|
gpio_config(&config_mic_spkr_en);
|
||||||
|
gpio_set_level(AUDIO_MIC_SPKR_EN, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Tcamerapluss3AudioCodec::~Tcamerapluss3AudioCodec() {
|
Tcamerapluss3AudioCodec::~Tcamerapluss3AudioCodec() {
|
||||||
@@ -41,9 +58,10 @@ void Tcamerapluss3AudioCodec::CreateVoiceHardware(gpio_num_t mic_bclk, gpio_num_
|
|||||||
ESP_ERROR_CHECK(i2s_new_channel(&mic_chan_config, NULL, &rx_handle_));
|
ESP_ERROR_CHECK(i2s_new_channel(&mic_chan_config, NULL, &rx_handle_));
|
||||||
ESP_ERROR_CHECK(i2s_new_channel(&spkr_chan_config, &tx_handle_, NULL));
|
ESP_ERROR_CHECK(i2s_new_channel(&spkr_chan_config, &tx_handle_, NULL));
|
||||||
|
|
||||||
|
#ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1
|
||||||
i2s_std_config_t mic_config = {
|
i2s_std_config_t mic_config = {
|
||||||
.clk_cfg = {
|
.clk_cfg = {
|
||||||
.sample_rate_hz = (uint32_t)output_sample_rate_,
|
.sample_rate_hz = (uint32_t)input_sample_rate_,
|
||||||
.clk_src = I2S_CLK_SRC_DEFAULT,
|
.clk_src = I2S_CLK_SRC_DEFAULT,
|
||||||
.mclk_multiple = I2S_MCLK_MULTIPLE_256,
|
.mclk_multiple = I2S_MCLK_MULTIPLE_256,
|
||||||
#ifdef I2S_HW_VERSION_2
|
#ifdef I2S_HW_VERSION_2
|
||||||
@@ -60,11 +78,29 @@ void Tcamerapluss3AudioCodec::CreateVoiceHardware(gpio_num_t mic_bclk, gpio_num_
|
|||||||
.invert_flags = {
|
.invert_flags = {
|
||||||
.mclk_inv = false,
|
.mclk_inv = false,
|
||||||
.bclk_inv = false,
|
.bclk_inv = false,
|
||||||
.ws_inv = true // 默认右声道
|
.ws_inv = true // 默认右通道
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_handle_, &mic_config));
|
||||||
|
#elif defined CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
|
||||||
|
i2s_pdm_rx_config_t mic_config = {
|
||||||
|
.clk_cfg = I2S_PDM_RX_CLK_DEFAULT_CONFIG(static_cast<uint32_t>(input_sample_rate_)),
|
||||||
|
/* The data bit-width of PDM mode is fixed to 16 */
|
||||||
|
.slot_cfg = I2S_PDM_RX_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO),
|
||||||
|
.gpio_cfg = {
|
||||||
|
.clk = mic_ws,
|
||||||
|
.din = mic_data,
|
||||||
|
.invert_flags = {
|
||||||
|
.clk_inv = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ESP_ERROR_CHECK(i2s_channel_init_pdm_rx_mode(rx_handle_, &mic_config));
|
||||||
|
#endif
|
||||||
|
|
||||||
i2s_std_config_t spkr_config = {
|
i2s_std_config_t spkr_config = {
|
||||||
.clk_cfg ={
|
.clk_cfg ={
|
||||||
.sample_rate_hz = static_cast<uint32_t>(11025),
|
.sample_rate_hz = static_cast<uint32_t>(11025),
|
||||||
@@ -87,7 +123,6 @@ void Tcamerapluss3AudioCodec::CreateVoiceHardware(gpio_num_t mic_bclk, gpio_num_
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_handle_, &mic_config));
|
|
||||||
ESP_ERROR_CHECK(i2s_channel_init_std_mode(tx_handle_, &spkr_config));
|
ESP_ERROR_CHECK(i2s_channel_init_std_mode(tx_handle_, &spkr_config));
|
||||||
ESP_LOGI(TAG, "Voice hardware created");
|
ESP_LOGI(TAG, "Voice hardware created");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user