12
12
#if CONFIG_IDF_TARGET_ESP32
13
13
# define ADC_CONV_MODE ADC_CONV_SINGLE_UNIT_1
14
14
# define ADC_OUTPUT_TYPE ADC_DIGI_OUTPUT_FORMAT_TYPE1
15
- # define ADC_CHANNELS {ADC_CHANNEL_7, ADC_CHANNEL_0, ADC_CHANNEL_3, ADC_CHANNEL_6, ADC_CHANNEL_4, ADC_CHANNEL_5}
15
+ # define ADC_CHANNELS {ADC_CHANNEL_0, ADC_CHANNEL_3, ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6, ADC_CHANNEL_7}
16
+ # define NUM_ADC_CHANNELS 6
16
17
# define AUDIO_ADC_GET_CHANNEL (p_data ) ((p_data)->type1.channel)
17
18
# define AUDIO_ADC_GET_DATA (p_data ) ((p_data)->type1.data)
18
19
# define HAS_ESP32_DAC
20
+ # define ADC_CHANNEL_TYPE uint16_t
21
+ # define ADC_DATA_TYPE uint16_t
19
22
#elif CONFIG_IDF_TARGET_ESP32S2
20
23
# define ADC_CONV_MODE ADC_CONV_SINGLE_UNIT_1
21
24
# define ADC_OUTPUT_TYPE ADC_DIGI_OUTPUT_FORMAT_TYPE2
22
25
# define AUDIO_ADC_GET_CHANNEL (p_data ) ((p_data)->type2.channel)
23
26
# define AUDIO_ADC_GET_DATA (p_data ) ((p_data)->type2.data)
24
- # define ADC_CHANNELS {ADC_CHANNEL_7, ADC_CHANNEL_0, ADC_CHANNEL_3, ADC_CHANNEL_6, ADC_CHANNEL_4, ADC_CHANNEL_5}
27
+ # define ADC_CHANNELS {ADC_CHANNEL_0, ADC_CHANNEL_1, ADC_CHANNEL_2, ADC_CHANNEL_3, ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6, ADC_CHANNEL_7, ADC_CHANNEL_8, ADC_CHANNEL_9}
28
+ # define NUM_ADC_CHANNELS 10
25
29
# define HAS_ESP32_DAC
30
+ # define ADC_CHANNEL_TYPE uint16_t
31
+ # define ADC_DATA_TYPE uint16_t
26
32
#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
27
33
# define ADC_CONV_MODE ADC_CONV_ALTER_UNIT // ESP32C3 only supports alter mode
28
34
# define ADC_OUTPUT_TYPE ADC_DIGI_OUTPUT_FORMAT_TYPE2
29
35
# define AUDIO_ADC_GET_CHANNEL (p_data ) ((p_data)->type2.channel)
30
36
# define AUDIO_ADC_GET_DATA (p_data ) ((p_data)->type2.data)
31
- # define ADC_CHANNELS {ADC_CHANNEL_7, ADC_CHANNEL_0, ADC_CHANNEL_3, ADC_CHANNEL_6, ADC_CHANNEL_4, ADC_CHANNEL_5}
37
+ # define ADC_CHANNELS {ADC_CHANNEL_0, ADC_CHANNEL_1, ADC_CHANNEL_2, ADC_CHANNEL_3, ADC_CHANNEL_4}
38
+ # define NUM_ADC_CHANNELS 5
39
+ # define ADC_CHANNEL_TYPE uint32_t
40
+ # define ADC_DATA_TYPE uint32_t
41
+ #elif CONFIG_IDF_TARGET_ESP32C6
42
+ # define ADC_CONV_MODE ADC_CONV_ALTER_UNIT
43
+ # define ADC_OUTPUT_TYPE ADC_DIGI_OUTPUT_FORMAT_TYPE2
44
+ # define AUDIO_ADC_GET_CHANNEL (p_data ) ((p_data)->type2.channel)
45
+ # define AUDIO_ADC_GET_DATA (p_data ) ((p_data)->type2.data)
46
+ # define ADC_CHANNELS {ADC_CHANNEL_0, ADC_CHANNEL_1, ADC_CHANNEL_2, ADC_CHANNEL_3, ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6}
47
+ # define NUM_ADC_CHANNELS 7
48
+ # define ADC_CHANNEL_TYPE uint32_t
49
+ # define ADC_DATA_TYPE uint32_t
32
50
#elif CONFIG_IDF_TARGET_ESP32S3
33
51
# define ADC_CONV_MODE ADC_CONV_SINGLE_UNIT_1
34
52
# define ADC_OUTPUT_TYPE ADC_DIGI_OUTPUT_FORMAT_TYPE2
35
53
# define AUDIO_ADC_GET_CHANNEL (p_data ) ((p_data)->type2.channel)
36
54
# define AUDIO_ADC_GET_DATA (p_data ) ((p_data)->type2.data)
37
- # define ADC_CHANNELS {ADC_CHANNEL_8, ADC_CHANNEL_9, ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_4, ADC_CHANNEL_5}
55
+ # define ADC_CHANNELS {ADC_CHANNEL_0, ADC_CHANNEL_1, ADC_CHANNEL_2, ADC_CHANNEL_3, ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6, ADC_CHANNEL_7, ADC_CHANNEL_8, ADC_CHANNEL_9}
56
+ # define NUM_ADC_CHANNELS 10
57
+ # define ADC_CHANNEL_TYPE uint32_t
58
+ # define ADC_DATA_TYPE uint32_t
59
+ #elif CONFIG_IDF_TARGET_ESP32P4
60
+ # define ADC_CONV_MODE ADC_CONV_SINGLE_UNIT_1
61
+ # define ADC_OUTPUT_TYPE ADC_DIGI_OUTPUT_FORMAT_TYPE2
62
+ # define AUDIO_ADC_GET_CHANNEL (p_data ) ((p_data)->type2.channel)
63
+ # define AUDIO_ADC_GET_DATA (p_data ) ((p_data)->type2.data)
64
+ # define ADC_CHANNELS {ADC_CHANNEL_0, ADC_CHANNEL_1, ADC_CHANNEL_2, ADC_CHANNEL_3, ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6, ADC_CHANNEL_7}
65
+ # define NUM_ADC_CHANNELS 8
66
+ # define ADC_CHANNEL_TYPE uint32_t
67
+ # define ADC_DATA_TYPE uint32_t
38
68
#endif
39
69
40
- // #define GET_ADC_UNIT_FROM_CHANNEL(x) ((x >> 3) & 0x1)
41
- # define ADC_UNIT ADC_UNIT_1 // continuous ADC API only supports ADC1
70
+ // continuous ADC API should run on ADC1
42
71
72
+ # define ADC_UNIT ADC_UNIT_1
43
73
#ifdef HAS_ESP32_DAC
44
74
# include " driver/dac_continuous.h"
45
75
#endif
46
76
47
77
namespace audio_tools {
48
78
49
79
/* *
50
- * @brief ESP32 specific configuration for i2s input via adc using the
51
- * adc_continuous API
52
- *
80
+ * @brief ESP32 specific configuration for i2s input via adc using the adc_continuous API
53
81
* @author Phil Schatzmann
54
82
* @ingroup platform
55
83
* @copyright GPLv3
@@ -63,12 +91,12 @@ class AnalogConfigESP32V1 : public AudioInfo {
63
91
RxTxMode rx_tx_mode;
64
92
TickType_t timeout = portMAX_DELAY;
65
93
66
- #ifdef HAS_ESP32_DAC
67
- bool is_blocking_write = true ;
68
- bool use_apll = false ;
69
- // / ESP32: DAC_CHANNEL_MASK_CH0 or DAC_CHANNEL_MASK_CH1
70
- dac_channel_mask_t dac_mono_channel = DAC_CHANNEL_MASK_CH0;
71
- #endif
94
+ #ifdef HAS_ESP32_DAC
95
+ bool is_blocking_write = true ;
96
+ bool use_apll = false ;
97
+ // / ESP32: DAC_CHANNEL_MASK_CH0 or DAC_CHANNEL_MASK_CH1
98
+ dac_channel_mask_t dac_mono_channel = DAC_CHANNEL_MASK_CH0;
99
+ #endif
72
100
73
101
// ADC config parameters
74
102
bool adc_calibration_active = false ;
@@ -77,7 +105,8 @@ class AnalogConfigESP32V1 : public AudioInfo {
77
105
adc_digi_output_format_t adc_output_type = ADC_OUTPUT_TYPE;
78
106
uint8_t adc_attenuation = ADC_ATTEN_DB_12; // full voltage range of 3.9V
79
107
uint8_t adc_bit_width = SOC_ADC_DIGI_MAX_BITWIDTH;
80
- adc_channel_t adc_channels[6 ] = ADC_CHANNELS;
108
+
109
+ adc_channel_t adc_channels[NUM_ADC_CHANNELS] = ADC_CHANNELS;
81
110
82
111
// / Default constructor
83
112
AnalogConfigESP32V1 (RxTxMode rxtxMode=TX_MODE) {
@@ -113,5 +142,6 @@ class AnalogConfigESP32V1 : public AudioInfo {
113
142
using AnalogConfig = AnalogConfigESP32V1;
114
143
#endif
115
144
116
- } // ns
145
+ } // namespace audio_tools
146
+
117
147
#endif
0 commit comments