ES8388 Driver¶
Driver for ES8388 codec chip used in ESP32 LyraT audio board.
API Reference¶
Header File¶
Functions¶
-
esp_err_t
es8388_init(audio_hal_codec_config_t *cfg)¶ Initialize ES8388 codec chip.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
cfg: configuration of ES8388
-
esp_err_t
es8388_deinit(void)¶ Deinitialize ES8388 codec chip.
- Return
- ESP_OK
- ESP_FAIL
-
esp_err_t
es8388_config_fmt(es_module_t mod, es_i2s_fmt_t cfg)¶ Configure ES8388 I2S format.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
mod: set ADC or DAC or bothcfg: ES8388 I2S format
-
esp_err_t
es8388_i2s_config_clock(es_i2s_clock_t cfg)¶ Configure I2s clock in MSATER mode.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
cfg: set bits clock and WS clock
-
esp_err_t
es8388_set_bits_per_sample(es_module_t mode, es_bits_length_t bit_per_sample)¶ Configure ES8388 data sample bits.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
mode: set ADC or DAC or bothbit_per_sample: bit number of per sample
-
esp_err_t
es8388_start(es_module_t mode)¶ Start ES8388 codec chip.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
mode: set ADC or DAC or both
-
esp_err_t
es8388_stop(es_module_t mode)¶ Stop ES8388 codec chip.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
mode: set ADC or DAC or both
-
esp_err_t
es8388_set_voice_volume(int volume)¶ Set voice volume.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
volume: voice volume (0~100)
-
esp_err_t
es8388_get_voice_volume(int *volume)¶ Get voice volume.
- Return
- ESP_OK
- ESP_FAIL
- Parameters
*volume: voice volume (0~100)
-
esp_err_t
es8388_set_voice_mute(int enable)¶ Configure ES8388 DAC mute or not. Basically you can use this function to mute the output or not.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
enable: enable(1) or disable(0)
-
esp_err_t
es8388_get_voice_mute(void)¶ Get ES8388 DAC mute status.
- Return
- -1 Parameter error
- 0 voice mute disable
- 1 voice mute enable
-
esp_err_t
es8388_set_mic_gain(es_mic_gain_t gain)¶ Set ES8388 mic gain.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
gain: db of mic gain
-
esp_err_t
es8388_config_adc_input(es_adc_input_t input)¶ Set ES8388 adc input mode.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
input: adc input mode
-
esp_err_t
es8388_config_dac_output(es_dac_output_t output)¶ Set ES8388 dac output mode.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
output: dac output mode
-
esp_err_t
es8388_write_reg(uint8_t reg_add, uint8_t data)¶ Write ES8388 register.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
reg_add: address of registerdata: data of register
-
void
es8388_read_all()¶ Print all ES8388 registers.
- Return
- void
-
esp_err_t
es8388_config_i2s(audio_hal_codec_mode_t mode, audio_hal_codec_i2s_iface_t *iface)¶ Configure ES8388 codec mode and I2S interface.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
mode: codec modeiface: I2S config
-
esp_err_t
es8388_ctrl_state(audio_hal_codec_mode_t mode, audio_hal_ctrl_t ctrl_state)¶ Control ES8388 codec chip.
- Return
- ESP_FAIL Parameter error
- ESP_OK Success
- Parameters
mode: codec modectrl_state: start or stop decode or encode progress
-
void
es8388_pa_power(bool enable)¶ Set ES8388 PA power.
- Return
- void
- Parameters
enable: true for enable PA power, false for disable PA power
Macros¶
-
ES8388_ADDR¶ 0x22:CE=1;0x20:CE=0
-
ES8388_CONTROL1¶
-
ES8388_CONTROL2¶
-
ES8388_CHIPPOWER¶
-
ES8388_ADCPOWER¶
-
ES8388_DACPOWER¶
-
ES8388_CHIPLOPOW1¶
-
ES8388_CHIPLOPOW2¶
-
ES8388_ANAVOLMANAG¶
-
ES8388_MASTERMODE¶
-
ES8388_ADCCONTROL1¶
-
ES8388_ADCCONTROL2¶
-
ES8388_ADCCONTROL3¶
-
ES8388_ADCCONTROL4¶
-
ES8388_ADCCONTROL5¶
-
ES8388_ADCCONTROL6¶
-
ES8388_ADCCONTROL7¶
-
ES8388_ADCCONTROL8¶
-
ES8388_ADCCONTROL9¶
-
ES8388_ADCCONTROL10¶
-
ES8388_ADCCONTROL11¶
-
ES8388_ADCCONTROL12¶
-
ES8388_ADCCONTROL13¶
-
ES8388_ADCCONTROL14¶
-
ES8388_DACCONTROL1¶
-
ES8388_DACCONTROL2¶
-
ES8388_DACCONTROL3¶
-
ES8388_DACCONTROL4¶
-
ES8388_DACCONTROL5¶
-
ES8388_DACCONTROL6¶
-
ES8388_DACCONTROL7¶
-
ES8388_DACCONTROL8¶
-
ES8388_DACCONTROL9¶
-
ES8388_DACCONTROL10¶
-
ES8388_DACCONTROL11¶
-
ES8388_DACCONTROL12¶
-
ES8388_DACCONTROL13¶
-
ES8388_DACCONTROL14¶
-
ES8388_DACCONTROL15¶
-
ES8388_DACCONTROL16¶
-
ES8388_DACCONTROL17¶
-
ES8388_DACCONTROL18¶
-
ES8388_DACCONTROL19¶
-
ES8388_DACCONTROL20¶
-
ES8388_DACCONTROL21¶
-
ES8388_DACCONTROL22¶
-
ES8388_DACCONTROL23¶
-
ES8388_DACCONTROL24¶
-
ES8388_DACCONTROL25¶
-
ES8388_DACCONTROL26¶
-
ES8388_DACCONTROL27¶
-
ES8388_DACCONTROL28¶
-
ES8388_DACCONTROL29¶
-
ES8388_DACCONTROL30¶
Enumerations¶
-
enum
es_bits_length_t¶ Values:
-
BIT_LENGTH_MIN= -1¶
-
BIT_LENGTH_16BITS= 0x03¶
-
BIT_LENGTH_18BITS= 0x02¶
-
BIT_LENGTH_20BITS= 0x01¶
-
BIT_LENGTH_24BITS= 0x00¶
-
BIT_LENGTH_32BITS= 0x04¶
-
BIT_LENGTH_MAX¶
-
-
enum
es_sclk_div_t¶ Values:
-
MCLK_DIV_MIN= -1¶
-
MCLK_DIV_1= 1¶
-
MCLK_DIV_2= 2¶
-
MCLK_DIV_3= 3¶
-
MCLK_DIV_4= 4¶
-
MCLK_DIV_6= 5¶
-
MCLK_DIV_8= 6¶
-
MCLK_DIV_9= 7¶
-
MCLK_DIV_11= 8¶
-
MCLK_DIV_12= 9¶
-
MCLK_DIV_16= 10¶
-
MCLK_DIV_18= 11¶
-
MCLK_DIV_22= 12¶
-
MCLK_DIV_24= 13¶
-
MCLK_DIV_33= 14¶
-
MCLK_DIV_36= 15¶
-
MCLK_DIV_44= 16¶
-
MCLK_DIV_48= 17¶
-
MCLK_DIV_66= 18¶
-
MCLK_DIV_72= 19¶
-
MCLK_DIV_5= 20¶
-
MCLK_DIV_10= 21¶
-
MCLK_DIV_15= 22¶
-
MCLK_DIV_17= 23¶
-
MCLK_DIV_20= 24¶
-
MCLK_DIV_25= 25¶
-
MCLK_DIV_30= 26¶
-
MCLK_DIV_32= 27¶
-
MCLK_DIV_34= 28¶
-
MCLK_DIV_7= 29¶
-
MCLK_DIV_13= 30¶
-
MCLK_DIV_14= 31¶
-
MCLK_DIV_MAX¶
-
-
enum
es_lclk_div_t¶ Values:
-
LCLK_DIV_MIN= -1¶
-
LCLK_DIV_128= 0¶
-
LCLK_DIV_192= 1¶
-
LCLK_DIV_256= 2¶
-
LCLK_DIV_384= 3¶
-
LCLK_DIV_512= 4¶
-
LCLK_DIV_576= 5¶
-
LCLK_DIV_768= 6¶
-
LCLK_DIV_1024= 7¶
-
LCLK_DIV_1152= 8¶
-
LCLK_DIV_1408= 9¶
-
LCLK_DIV_1536= 10¶
-
LCLK_DIV_2112= 11¶
-
LCLK_DIV_2304= 12¶
-
LCLK_DIV_125= 16¶
-
LCLK_DIV_136= 17¶
-
LCLK_DIV_250= 18¶
-
LCLK_DIV_272= 19¶
-
LCLK_DIV_375= 20¶
-
LCLK_DIV_500= 21¶
-
LCLK_DIV_544= 22¶
-
LCLK_DIV_750= 23¶
-
LCLK_DIV_1000= 24¶
-
LCLK_DIV_1088= 25¶
-
LCLK_DIV_1496= 26¶
-
LCLK_DIV_1500= 27¶
-
LCLK_DIV_MAX¶
-
-
enum
es_d2se_pga_t¶ Values:
-
D2SE_PGA_GAIN_MIN= -1¶
-
D2SE_PGA_GAIN_DIS= 0¶
-
D2SE_PGA_GAIN_EN= 1¶
-
D2SE_PGA_GAIN_MAX=2¶
-
-
enum
es_adc_input_t¶ Values:
-
ADC_INPUT_MIN= -1¶
-
ADC_INPUT_LINPUT1_RINPUT1= 0x00¶
-
ADC_INPUT_MIC1= 0x05¶
-
ADC_INPUT_MIC2= 0x06¶
-
ADC_INPUT_LINPUT2_RINPUT2= 0x50¶
-
ADC_INPUT_DIFFERENCE= 0xf0¶
-
ADC_INPUT_MAX¶
-
-
enum
es_dac_output_t¶ Values:
-
DAC_OUTPUT_MIN= -1¶
-
DAC_OUTPUT_LOUT1= 0x04¶
-
DAC_OUTPUT_LOUT2= 0x08¶
-
DAC_OUTPUT_SPK= 0x09¶
-
DAC_OUTPUT_ROUT1= 0x10¶
-
DAC_OUTPUT_ROUT2= 0x20¶
-
DAC_OUTPUT_ALL= 0x3c¶
-
DAC_OUTPUT_MAX¶
-
-
enum
es_mic_gain_t¶ Values:
-
MIC_GAIN_MIN= -1¶
-
MIC_GAIN_0DB= 0¶
-
MIC_GAIN_3DB= 3¶
-
MIC_GAIN_6DB= 6¶
-
MIC_GAIN_9DB= 9¶
-
MIC_GAIN_12DB= 12¶
-
MIC_GAIN_15DB= 15¶
-
MIC_GAIN_18DB= 18¶
-
MIC_GAIN_21DB= 21¶
-
MIC_GAIN_24DB= 24¶
-
MIC_GAIN_MAX¶
-