When bridge mode is active, by default, only the left input channel is send to the output. With the configuration, you can choose either the left or the right channel, or a "mono" configuration which mix the two input channel. Co-authored-by: Alex <alex@alexlg.org>
319 lines
9.5 KiB
Plaintext
319 lines
9.5 KiB
Plaintext
menu "Audio Board"
|
|
|
|
config I2S_USE_MSB_FORMAT
|
|
bool
|
|
default n
|
|
help
|
|
Specifies if the I2S should use MSB format instead. Some DACs (such as PT8211) need this enabled to ensure
|
|
compatibility with their LSBJ timing under their native bit-depth. This option is only adjusted by the DAC
|
|
choice and is not exposed to menuconfig.
|
|
See https://github.com/schreibfaul1/ESP32-audioI2S/blob/1d9b299d0197f99fc70335295adcd226dc220f88/src/Audio.cpp#L4929
|
|
|
|
choice AUDIO_BOARD
|
|
prompt "Audio board"
|
|
default ESP_LYRAT_V4_3_BOARD
|
|
help
|
|
Select an audio board to use with the ESP-ADF
|
|
config AUDIO_BOARD_CUSTOM
|
|
bool "Custom audio board"
|
|
config ESP_LYRAT_V4_3_BOARD
|
|
bool "ESP32-Lyrat V4.3"
|
|
config ESP_LYRAT_V4_2_BOARD
|
|
bool "ESP32-Lyrat V4.2"
|
|
config ESP_LYRATD_MSC_V2_1_BOARD
|
|
bool "ESP32-LyraTD-MSC V2.1"
|
|
config ESP_LYRATD_MSC_V2_2_BOARD
|
|
bool "ESP32-LyraTD-MSC V2.2"
|
|
config ESP_LYRAT_MINI_V1_1_BOARD
|
|
bool "ESP32-Lyrat-Mini V1.1"
|
|
config ESP32_KORVO_DU1906_BOARD
|
|
bool "ESP32_KORVO_DU1906"
|
|
config ESP32_S2_KALUGA_1_V1_2_BOARD
|
|
bool "ESP32-S2-Kaluga-1 v1.2"
|
|
config ESP_AI_THINKER_ES8388_BOARD
|
|
bool "ESP-AI-Thinker-ES8388 v2.2"
|
|
#config ESP32_S3_KORVO2_V3_BOARD
|
|
# bool "ESP32-S3-Korvo-2 v3"
|
|
#config ESP32_S3_KORVO2L_V1_BOARD
|
|
# bool "ESP32-S3-Korvo-2L v1"
|
|
#config ESP32_S3_BOX_LITE_BOARD
|
|
# bool "ESP32-S3-BOX-Lite"
|
|
#config ESP32_S3_BOX_BOARD
|
|
# bool "ESP32-S3-BOX"
|
|
#config ESP32_C3_LYRA_V2_BOARD
|
|
# bool "ESP32-C3-Lyra-v2.0"
|
|
#config ESP32_C6_DEVKIT_BOARD
|
|
# bool "ESP32-C6-DEVKIT"
|
|
|
|
endchoice
|
|
|
|
choice ESP32_KORVO_DU1906_DAC
|
|
prompt "ESP32 KORVO DU1906 Board DAC chip"
|
|
depends on ESP32_KORVO_DU1906_BOARD
|
|
default ESP32_KORVO_DU1906_DAC_TAS5805M
|
|
help
|
|
Select DAC chip to use on ESP32_KORVO_DU1906 board
|
|
|
|
config ESP32_KORVO_DU1906_DAC_TAS5805M
|
|
bool "ESP32_KORVO_DU1906_DAC_TAS5805M"
|
|
config ESP32_KORVO_DU1906_DAC_ES7148
|
|
bool "ESP32_KORVO_DU1906_DAC_ES7148"
|
|
|
|
endchoice
|
|
|
|
choice ESP32_KORVO_DU1906_ADC
|
|
prompt "ESP32 KORVO DU1906 Board ADC chip"
|
|
depends on ESP32_KORVO_DU1906_BOARD
|
|
default ESP32_KORVO_DU1906_ADC_ES7243
|
|
help
|
|
Select ADC chip to use on ESP32_KORVO_DU1906 board
|
|
|
|
config ESP32_KORVO_DU1906_ADC_ES7243
|
|
bool "ESP32_KORVO_DU1906_ADC_ES7243"
|
|
endchoice
|
|
|
|
menu "Custom Audio Board"
|
|
depends on AUDIO_BOARD_CUSTOM
|
|
|
|
choice GENERIC_BOARD_DAC
|
|
prompt "DAC chip"
|
|
default DAC_MA120
|
|
help
|
|
Select a DAC connected to the generic ESP32 board
|
|
|
|
config DAC_PCM51XX
|
|
bool "TI PCM51XX/TAS57XX based DAC"
|
|
|
|
config DAC_PCM5102A
|
|
bool "TI PCM5102A based DAC"
|
|
|
|
config DAC_MA120
|
|
bool "Infineon MA120 ClassD AMP"
|
|
|
|
config DAC_MA120X0
|
|
bool "Infineon MA120X0 ClassD AMP"
|
|
|
|
config DAC_ADAU1961
|
|
bool "Analog Devices ADAU1961 DAC"
|
|
|
|
config DAC_MAX98357
|
|
bool "Analog Devices MAX98357 DAC"
|
|
|
|
config DAC_TAS5805M
|
|
bool "Texas Instruments TAS5805M"
|
|
|
|
config DAC_PT8211
|
|
bool "Princeton Technology PT8211"
|
|
select I2S_USE_MSB_FORMAT
|
|
endchoice
|
|
|
|
menu "DAC I2C control interface"
|
|
config DAC_I2C_SDA
|
|
int "SDA pin"
|
|
default 12 if DAC_ADAU1961
|
|
default 21 if DAC_MA120 || DAC_PCM51XX || DAC_MA120 || DAC_MA120X0 || DAC_MAX98357 || DAC_PCM5102A || DAC_TAS5805M
|
|
default -1 if DAC_PT8211
|
|
help
|
|
I2C SDA pin of the DAC control interface
|
|
config DAC_I2C_SCL
|
|
int "SCL pin"
|
|
default 14 if DAC_ADAU1961
|
|
default 22 if DAC_MA120 || DAC_PCM51XX || DAC_MA120 || DAC_MA120X0 || DAC_MAX98357 || DAC_PCM5102A
|
|
default 27 if DAC_TAS5805M
|
|
default -1 if DAC_PT8211
|
|
help
|
|
I2C SCL pin of the DAC control interface
|
|
config DAC_I2C_ADDR
|
|
hex "I2C address"
|
|
default 0x70 if DAC_ADAU1961
|
|
default 0x20 if DAC_MA120 || DAC_PCM51XX || DAC_MA120 || DAC_MA120X0 || DAC_MAX98357 || DAC_PCM5102A
|
|
default 0x2D if DAC_TAS5805M
|
|
default 0x00 if DAC_PT8211
|
|
help
|
|
I2C Address of the DAC control interface
|
|
endmenu
|
|
|
|
menu "I2S master interface"
|
|
config MASTER_I2S_MCLK_PIN
|
|
int "Master i2s mclk"
|
|
default 3 if DAC_ADAU1961
|
|
default 0
|
|
help
|
|
Master audio interface master clock.
|
|
|
|
config MASTER_I2S_BCK_PIN
|
|
int "Master i2s bck"
|
|
default 15 if DAC_ADAU1961
|
|
default 23 if DAC_MAX98357
|
|
default 26 if DAC_TAS5805M
|
|
default 23
|
|
|
|
help
|
|
Master audio interface bit clock.
|
|
|
|
config MASTER_I2S_LRCK_PIN
|
|
int "Master i2s lrck"
|
|
default 13 if DAC_ADAU1961
|
|
default 24 if DAC_MAX98357
|
|
default 25 if DAC_TAS5805M
|
|
default 2
|
|
help
|
|
Master audio interface left/right sync clock.
|
|
|
|
config MASTER_I2S_DATAOUT_PIN
|
|
int "Master i2s data out"
|
|
default 4 if DAC_ADAU1961
|
|
default 25 if DAC_MAX98357
|
|
default 22 if DAC_TAS5805M
|
|
default 14
|
|
help
|
|
Master audio interface data out.
|
|
|
|
endmenu
|
|
|
|
menu "DAC-Operation-Mode"
|
|
depends on DAC_TAS5805M
|
|
|
|
choice DAC_BRIDGE_MODE
|
|
prompt "Bridge-Mode selection"
|
|
default DAC_BRIDGE_MODE_DISABLED
|
|
|
|
config DAC_BRIDGE_MODE_DISABLED
|
|
bool "Stereo (bridge mode disabled)"
|
|
|
|
config DAC_BRIDGE_MODE_MONO
|
|
bool "Mono mode (Left + Right / 2)"
|
|
|
|
config DAC_BRIDGE_MODE_LEFT
|
|
bool "Output left input channel"
|
|
|
|
config DAC_BRIDGE_MODE_RIGHT
|
|
bool "Output right input channel"
|
|
|
|
endchoice
|
|
endmenu
|
|
|
|
menu "Merus MA120x0 interface Configuration"
|
|
depends on DAC_MA120X0
|
|
|
|
config MA120X0_NENABLE_PIN
|
|
int "Master enable/disable for ma120x0"
|
|
default 16
|
|
help
|
|
GPIO number to control enable/disable.
|
|
|
|
config MA120X0_NMUTE_PIN
|
|
int "Master mute/unmute for ma120x0"
|
|
default 2
|
|
help
|
|
GPIO number to controm mute/unmute.
|
|
|
|
config MERUS_NERR_PIN
|
|
int "NERR monitor pin"
|
|
default 21
|
|
help
|
|
GPIO number to monitor NERROR.
|
|
|
|
config MERUS_NCLIP_PIN
|
|
int "Clip indication pin"
|
|
default 22
|
|
help
|
|
GPIO number low if clip observed
|
|
endmenu
|
|
|
|
menu "Merus MA120 interface Configuration"
|
|
depends on DAC_MA120
|
|
|
|
config MA120_ENABLE_PIN
|
|
int "Master enable/disable for ma120x0"
|
|
default 16
|
|
help
|
|
GPIO number to control enable/disable.
|
|
|
|
config MA120_NMUTE_PIN
|
|
int "Master mute/unmute for ma120x0"
|
|
default 2
|
|
help
|
|
GPIO number to controm mute/unmute.
|
|
|
|
config MERUS_NERR_PIN
|
|
int "NERR monitor pin"
|
|
default 21
|
|
help
|
|
GPIO number to monitor NERROR.
|
|
|
|
config MERUS_NCLIP_PIN
|
|
int "Clip indication pin"
|
|
default 22
|
|
help
|
|
GPIO number low if clip observed
|
|
endmenu
|
|
|
|
menu "TI PCM5102A interface Configuration"
|
|
depends on DAC_PCM5102A
|
|
|
|
config PCM5102A_MUTE_PIN
|
|
int "Master mute/unmute for PCM5102A"
|
|
default 18
|
|
help
|
|
GPIO number to control mute/unmute.
|
|
This is labeled "X(S)MT" on chip/boards
|
|
endmenu
|
|
|
|
menu "MAX98357 interface Configuration"
|
|
depends on DAC_MAX98357
|
|
|
|
config MAX98357_MUTE_PIN
|
|
int "Master mute/mode for MAX98357"
|
|
default 18
|
|
help
|
|
GPIO number to control mute/mode. This require a special resistor to select the correct mode.
|
|
You need to put a serie resistor to select the mode (GPIO --> Resistor --> SD):
|
|
LEFT only : 0ohm (direct connection)
|
|
RIGHT only : 220Kohm
|
|
(L+R)/2 : 1Mohm
|
|
Refer to Analog Devices' doc for more infos.
|
|
This is labeled "SD" on chip/boards.
|
|
endmenu
|
|
|
|
menu "PT8211 interface Configuration"
|
|
depends on DAC_PT8211
|
|
|
|
config PT8211_MUTE_PIN
|
|
int "Master mute/unmute"
|
|
default -1
|
|
help
|
|
GPIO number to control mute/unmute.
|
|
Note that PT8211 does not have a mute control pin. This output is intended to control external circuit (e.g., amplifier).
|
|
|
|
config PT8211_MUTE_ACTIVE_LOW
|
|
bool "Mute active LOW"
|
|
default false
|
|
help
|
|
Output LOW instead of HIGH on mute/unmute pin when in mute state.
|
|
|
|
endmenu
|
|
|
|
menu "Logic-Level-Settings"
|
|
config INVERT_MCLK_LEVEL
|
|
bool "Invert Logic Level MCLK"
|
|
default false
|
|
help
|
|
Invert the Logic-Level of MCLK.
|
|
config INVERT_WORD_SELECT_LEVEL
|
|
bool "Invert Logic Level WordSelect"
|
|
default false
|
|
help
|
|
Some Dacs can bridge their outputs. Word-Select is used for selecting the played audio channel. This will switch L/R.
|
|
config INVERT_BCLK_LEVEL
|
|
bool "Invert Logic Level BCLK"
|
|
default false
|
|
help
|
|
Invert the Logic-Level of BCLK.
|
|
|
|
endmenu
|
|
|
|
endmenu
|
|
|
|
endmenu
|