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
¶
-