mirror of
https://github.com/esphome/esphome.git
synced 2024-11-22 23:18:10 +01:00
set adc width to 13 bits for esp32-s2 (#3117)
This commit is contained in:
parent
c5974b8833
commit
7590d5eacb
1 changed files with 7 additions and 2 deletions
|
@ -15,6 +15,11 @@ namespace esphome {
|
||||||
namespace adc {
|
namespace adc {
|
||||||
|
|
||||||
static const char *const TAG = "adc";
|
static const char *const TAG = "adc";
|
||||||
|
// 13 bits for S3 / 12 bit for all other esp32 variants
|
||||||
|
// create a const to avoid the repated cast to enum
|
||||||
|
#ifdef USE_ESP32
|
||||||
|
static const adc_bits_width_t ADC_WIDTH_MAX_SOC_BITS = static_cast<adc_bits_width_t>(ADC_WIDTH_MAX - 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
void ADCSensor::setup() {
|
void ADCSensor::setup() {
|
||||||
ESP_LOGCONFIG(TAG, "Setting up ADC '%s'...", this->get_name().c_str());
|
ESP_LOGCONFIG(TAG, "Setting up ADC '%s'...", this->get_name().c_str());
|
||||||
|
@ -23,14 +28,14 @@ void ADCSensor::setup() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#ifdef USE_ESP32
|
||||||
adc1_config_width(ADC_WIDTH_BIT_12);
|
adc1_config_width(ADC_WIDTH_MAX_SOC_BITS);
|
||||||
if (!autorange_) {
|
if (!autorange_) {
|
||||||
adc1_config_channel_atten(channel_, attenuation_);
|
adc1_config_channel_atten(channel_, attenuation_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// load characteristics for each attenuation
|
// load characteristics for each attenuation
|
||||||
for (int i = 0; i < (int) ADC_ATTEN_MAX; i++) {
|
for (int i = 0; i < (int) ADC_ATTEN_MAX; i++) {
|
||||||
auto cal_value = esp_adc_cal_characterize(ADC_UNIT_1, (adc_atten_t) i, ADC_WIDTH_BIT_12,
|
auto cal_value = esp_adc_cal_characterize(ADC_UNIT_1, (adc_atten_t) i, ADC_WIDTH_MAX_SOC_BITS,
|
||||||
1100, // default vref
|
1100, // default vref
|
||||||
&cal_characteristics_[i]);
|
&cal_characteristics_[i]);
|
||||||
switch (cal_value) {
|
switch (cal_value) {
|
||||||
|
|
Loading…
Reference in a new issue