Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

esp32s3+es8388驱动问题 (BSP-510) #342

Open
1 task done
welkinchan opened this issue Jun 17, 2024 · 0 comments
Open
1 task done

esp32s3+es8388驱动问题 (BSP-510) #342

welkinchan opened this issue Jun 17, 2024 · 0 comments

Comments

@welkinchan
Copy link

Board

ESP32-S3-Korvo-2 V3.0

Hardware Description

将Korvo-2 V3.0的板子的es8311音频芯片以及es7210换成了es8388,并且使用模拟咪头作为麦克风。
另外,把板子上LCD以及摄像头相关的器件都删掉了。
电路图

IDE Name

esp-idf 5.1.0

Operating System

windows10

Description

  1. 在跑如下录音与语音播放的例程的时候,功能无法正常实现。历程项目为:https://github.com/espressif/esp-bsp/tree/master/examples/audio
  2. 由于korvo2配置的默认音频芯片为es8311,而我的板子用的时es8388芯片,为了实现 es8388的音频驱动,将工程代码更改为使用bsp中的esp32_lyrat中的es8388的驱动代码。
  3. 例程跑起来以后,板子上只有一个麦克风能够正常播放音乐,并且录音无法正常工作。
  4. 备注:功能函数代码本身应该是没问题的,因为更改驱动后,代码可以在esp32s3box3上正常跑起来。所以推测问题应该出在驱动部分。

Sketch

1. 运行bsp项目的audio例程,为了实现es8388的音频驱动,使用了bsp中的esp32_lyrat的es8388的驱动代码。并且,把esp32_lyrat.h中的引脚定义按照我的板子上的引脚定义就行了变更(主要是音频I2S以及部分按键的引脚)。
2. 由于默认esp32_lyrat的默认支持芯片为esp32,于是将cmake相关代码以及target对象变更为esp32s3,编译与烧录均成功。
3. 代码运行后,只有一个麦克风可以正常播放音乐,并且麦克风无法录音,录音文件播出后都是沙沙声。
4. 代码都是基于原来的工程代码进行排列组合,部分主要变更包括:

=========================================================
1. esp32_lyrat.h引脚定义:

#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
#include "driver/i2s.h"
#else
#include "driver/i2s_std.h"
#endif
/**************************************************************************************************
 *  BSP Capabilities
 **************************************************************************************************/

#define BSP_CAPS_DISPLAY        0
#define BSP_CAPS_TOUCH          0
#define BSP_CAPS_BUTTONS        1
#define BSP_CAPS_AUDIO          1
#define BSP_CAPS_AUDIO_SPEAKER  1
#define BSP_CAPS_AUDIO_MIC      1
#define BSP_CAPS_LED            1
#define BSP_CAPS_SDCARD         1
#define BSP_CAPS_IMU            0


//cwg===0615
#define GPIO_NUM_45 45
#define GPIO_NUM_48 48
#define GPIO_NUM_22 22

/**************************************************************************************************
 *  Board pinout
 **************************************************************************************************/
// /* I2C */
// #define BSP_I2C_SCL           (GPIO_NUM_23)
// #define BSP_I2C_SDA           (GPIO_NUM_18)

// cwg
/* I2C */
#define BSP_I2C_SCL           (GPIO_NUM_18)
#define BSP_I2C_SDA           (GPIO_NUM_17)



// /* Audio */
// #define BSP_I2S_SCLK          (GPIO_NUM_5)
// #define BSP_I2S_MCLK          (GPIO_NUM_0)
// #define BSP_I2S_LCLK          (GPIO_NUM_25)
// #define BSP_I2S_DOUT          (GPIO_NUM_26)
// #define BSP_I2S_DSIN          (GPIO_NUM_35)  // From ADC ES8388
// #define BSP_POWER_AMP_IO      (GPIO_NUM_21)

// cwg=0420
/* Audio */
#define BSP_I2S_SCLK          (GPIO_NUM_9) // >i2s_sclk 4,5
#define BSP_I2S_MCLK          (GPIO_NUM_16) // >i2s_mclk 4,5
#define BSP_I2S_LCLK          (GPIO_NUM_45) // >i2s_lrck 3,4,5
#define BSP_I2S_DOUT          (GPIO_NUM_8) // To Codec ES8311  // >i2s_codec_dsdin 5
#define BSP_I2S_DSIN          (GPIO_NUM_10) // From ADC ES7210  // >i2s_adc_sdout 4   ???
#define BSP_POWER_AMP_IO      (GPIO_NUM_48) // >pa_ctrl 3,5  ????????????
// #define BSP_MUTE_STATUS       (GPIO_NUM_1)  // >mute_status_l 7   ???




// /* uSD card */
// #define BSP_SD_D0             (GPIO_NUM_2)
// #define BSP_SD_D1             (GPIO_NUM_4)
// #define BSP_SD_D2             (GPIO_NUM_12)
// #define BSP_SD_D3             (GPIO_NUM_13)
// #define BSP_SD_CMD            (GPIO_NUM_15)
// #define BSP_SD_CLK            (GPIO_NUM_14)

//cwg
/* uSD card */
#define BSP_SD_D0             (GPIO_NUM_9)
#define BSP_SD_D1             (GPIO_NUM_13)
#define BSP_SD_D2             (GPIO_NUM_42)
#define BSP_SD_D3             (GPIO_NUM_12)
#define BSP_SD_CMD            (GPIO_NUM_14)
#define BSP_SD_CLK            (GPIO_NUM_11)



/* Buttons */
// #define BSP_BUTTON_REC_IO        (GPIO_NUM_36)
// #define BSP_BUTTON_MODE_IO       (GPIO_NUM_39)
// #define BSP_BUTTON_PLAY_TOUCH    (TOUCH_PAD_NUM8) // GPIO33
// #define BSP_BUTTON_SET_TOUCH     (TOUCH_PAD_NUM9) // GPIO32
// #define BSP_BUTTON_VOLUP_TOUCH   (TOUCH_PAD_NUM7) // GPIO27
// #define BSP_BUTTON_VOLDOWN_TOUCH (TOUCH_PAD_NUM4) // GPIO13

//cwg
/* Buttons */
#define BSP_BUTTON_REC_IO        (GPIO_NUM_36)
#define BSP_BUTTON_MODE_IO       (GPIO_NUM_39)
#define BSP_BUTTON_PLAY_TOUCH    (TOUCH_PAD_NUM8) // GPIO33
#define BSP_BUTTON_SET_TOUCH     (TOUCH_PAD_NUM9) // GPIO32
#define BSP_BUTTON_VOLUP_TOUCH   (TOUCH_PAD_NUM7) // GPIO27
#define BSP_BUTTON_VOLDOWN_TOUCH (TOUCH_PAD_NUM4) // GPIO13







/* Leds */
typedef enum bsp_led_t {
    BSP_LED_GREEN = GPIO_NUM_22,
} bsp_led_t;

#ifdef __cplusplus
extern "C" {
#endif


============================================
2. 工程案例代码中的,idf_component.yml代码更改为:
description: BSP Audio example

dependencies:
  esp32_lyrat:
    override_path: "../../../bsp/esp32_lyrat"

Other Steps to Reproduce

audio_cwg_0616.zip
component-bsp-esp32_lyrat.zip

附件为我目前的代码,供参考。

I have checked existing issues, README.md and ESP32 Forum

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.
@github-actions github-actions bot changed the title esp32s3+es8388驱动问题 esp32s3+es8388驱动问题 (BSP-510) Jun 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant