arduino-audio-tools
Loading...
Searching...
No Matches
AnalogConfigESP32.h
Go to the documentation of this file.
1#pragma once
2
3#include "AudioToolsConfig.h"
4#if (defined(ESP32) && defined(USE_ANALOG) && USE_LEGACY_I2S) || defined(DOXYGEN)
6
7# include "driver/i2s.h"
8# include "driver/adc.h"
9# include "soc/dac_channel.h"
10# include "soc/adc_channel.h"
11
12namespace audio_tools {
13
23 public:
28 bool is_blocking_write = true;
31 bool is_scale_to_16bit = false;
32
33 // allow ADC to access the protected methods
34 friend class AnalogDriverESP32;
35 bool use_apll = false;
36
37 // public config parameters
38 int port_no = I2S_NUM_0; // Analog input and output only supports 0!
39 bool auto_clear = I2S_AUTO_CLEAR;
43
46 sample_rate = 44100;
47 bits_per_sample = 16;
48 channels = 2;
49 rx_tx_mode = rxtxMode;
50 if (rx_tx_mode == RX_MODE) {
51 mode_internal = (I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_ADC_BUILT_IN);
52 adc_pin = PIN_ADC1;
53 auto_clear = false;
54 LOGI("I2S_MODE_ADC_BUILT_IN");
55 } else {
56 mode_internal = (I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN);
57 LOGI("I2S_MODE_DAC_BUILT_IN");
58 }
59 }
60
62 AnalogConfigESP32(const AnalogConfigESP32 &cfg) = default;
63
64 void logInfo() {
66 if (rx_tx_mode == TX_MODE){
67 LOGI("analog left output pin: %d", 25);
68 LOGI("analog right output pin: %d", 26);
69 }
70 }
71
73 void setInputPin1(int pin){
74 this->adc_pin = pin;
75 }
76
77};
78
79#ifndef ANALOG_CONFIG
80#define ANALOG_CONFIG
82#endif
83
84} // ns
85#endif
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define ANALOG_BUFFER_COUNT
Definition AudioToolsConfig.h:119
#define portMAX_DELAY
Definition BufferBlocking.h:14
uint32_t TickType_t
Definition BufferBlocking.h:11
ESP32 specific configuration for i2s input via adc. The default input pin is GPIO34....
Definition AnalogConfigESP32.h:22
AnalogConfigESP32(const AnalogConfigESP32 &cfg)=default
Copy constructor.
int buffer_count
Definition AnalogConfigESP32.h:25
void logInfo()
Definition AnalogConfigESP32.h:64
int adc_pin
Definition AnalogConfigESP32.h:42
bool uninstall_driver_on_end
Definition AnalogConfigESP32.h:40
RxTxMode rx_tx_mode
Definition AnalogConfigESP32.h:27
bool is_auto_center_read
Definition AnalogConfigESP32.h:29
TickType_t timeout
Definition AnalogConfigESP32.h:24
bool auto_clear
Definition AnalogConfigESP32.h:39
int mode_internal
Definition AnalogConfigESP32.h:41
bool is_scale_to_16bit
Scale the 12 bit ADC values to the full 16 bit range.
Definition AnalogConfigESP32.h:31
void setInputPin1(int pin)
Defines an alternative input pin (for the left channel)
Definition AnalogConfigESP32.h:73
bool use_apll
Definition AnalogConfigESP32.h:35
bool is_blocking_write
Definition AnalogConfigESP32.h:28
int port_no
Definition AnalogConfigESP32.h:38
int buffer_size
Definition AnalogConfigESP32.h:26
AnalogConfigESP32(RxTxMode rxtxMode=TX_MODE)
Default constructor.
Definition AnalogConfigESP32.h:45
Please use AnalogAudioStream: A very fast ADC and DAC using the ESP32 I2S interface.
Definition AnalogDriverESP32.h:35
#define ANALOG_BUFFER_SIZE
Definition giga.h:13
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition AudioTypes.h:26
@ TX_MODE
Definition AudioTypes.h:26
@ RX_MODE
Definition AudioTypes.h:26
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition LMSEchoCancellationStream.h:6
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:56
sample_rate_t sample_rate
Sample Rate: e.g 44100.
Definition AudioTypes.h:58
uint16_t channels
Number of channels: 2=stereo, 1=mono.
Definition AudioTypes.h:60
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition AudioTypes.h:62
virtual void logInfo(const char *source="")
Definition AudioTypes.h:127