From 73cdfbfe799b08477958b6b4b65623d4766ca11c Mon Sep 17 00:00:00 2001 From: Darian Leung Date: Wed, 24 Jan 2018 17:22:13 +0800 Subject: [PATCH] esp_adc_cal/Add eFuse functionality This commit updates the esp_adc_cal ocmponent to support new calibration methods which utilize calibratoin values stored in eFuse. This commit includes LUT mode --- components/esp_adc_cal/Kconfig | 37 ++ components/esp_adc_cal/esp_adc_cal.c | 489 +++++++++++++++--- .../esp_adc_cal/esp_adc_cal_constants.c | 222 ++++++++ .../esp_adc_cal/esp_adc_cal_lookup_tables.c | 96 ---- components/esp_adc_cal/include/esp_adc_cal.h | 210 +++++--- .../include/esp_adc_cal_constants.h | 0 components/soc/esp32/include/soc/efuse_reg.h | 110 +++- components/soc/esp32/rtc_init.c | 13 +- docs/_static/adc-noise-graph.jpg | Bin 0 -> 110759 bytes docs/_static/adc-vref-graph.jpg | Bin 0 -> 63259 bytes docs/api-reference/peripherals/adc.rst | 77 +-- .../peripherals/adc/main/adc1_example_main.c | 83 ++- 12 files changed, 1008 insertions(+), 329 deletions(-) create mode 100644 components/esp_adc_cal/Kconfig create mode 100644 components/esp_adc_cal/esp_adc_cal_constants.c delete mode 100644 components/esp_adc_cal/esp_adc_cal_lookup_tables.c create mode 100644 components/esp_adc_cal/include/esp_adc_cal_constants.h create mode 100644 docs/_static/adc-noise-graph.jpg create mode 100644 docs/_static/adc-vref-graph.jpg diff --git a/components/esp_adc_cal/Kconfig b/components/esp_adc_cal/Kconfig new file mode 100644 index 0000000000..0db3d4e1f4 --- /dev/null +++ b/components/esp_adc_cal/Kconfig @@ -0,0 +1,37 @@ +menu "ADC-Calibration" + +config ADC_CAL_EFUSE_TP_DISABLE + bool "Disable Two Point values" + default "n" + help + Some ESP32s have Two Point calibration values burned into eFuse. Enabling + this option will prevent the ADC calibration component from using Two Point + values if they are available. + +config ADC_CAL_EFUSE_VREF_DISABLE + bool "Disable eFuse Vref" + default "n" + help + Some ESP32s have ADC Vref burned into eFuse. Enabling this option will + prevent the ADC calibration component from using eFuse Vref if they are + available. + +config ADC_CAL_DEFAULT_VREF_DISABLE + bool "Disable Default Vref" + default "n" + help + The esp_adc_cal_characterize() function requires the user to provide a + vref_default argument to be used if eFuse values are unavailable. Enabling + this option will prevent the ADC calibration component from using the + vref_default argument. Note that if eFuse values are also unavailabe, + the esp_adc_cal_characterize will trigger an abort. + +config ADC_CAL_NO_BLK3_RESERVE_FLAG + bool "EFUSE_BLK3_PART_RESERVE not set" + default "n" + help + By default, ESP32s will have the EFUSE_BLK3_PART_RESERVE flag set if it + uses BLK3 of eFuse to store Two Point values. Some ESP32s do not set this + flag. Enable this option if that is the case + +endmenu # ADC-Calibration diff --git a/components/esp_adc_cal/esp_adc_cal.c b/components/esp_adc_cal/esp_adc_cal.c index d07c3792bd..f7621fc162 100644 --- a/components/esp_adc_cal/esp_adc_cal.c +++ b/components/esp_adc_cal/esp_adc_cal.c @@ -13,99 +13,444 @@ // limitations under the License. #include +#include "esp_types.h" #include "driver/adc.h" - +#include "soc/efuse_reg.h" +#include "esp_err.h" +#include "esp_log.h" +#include "assert.h" +#include "esp_adc_cal_constants.h" #include "esp_adc_cal.h" -static const esp_adc_cal_lookup_table_t *table_ptrs[4] = {&esp_adc_cal_table_atten_0, - &esp_adc_cal_table_atten_1, - &esp_adc_cal_table_atten_2, - &esp_adc_cal_table_atten_3}; +#define CONFIG_ADC_CAL_EFUSE_TP_DISABLE +/* ----------------------------- Configuration ------------------------------ */ + +#ifdef CONFIG_ADC_CAL_EFUSE_TP_DISABLE +#define EFUSE_TP_ENABLED 0 +#else +#define EFUSE_TP_ENABLED 1 +#endif + +#ifdef CONFIG_ADC_CAL_EFUSE_VREF_DISABLE +#define EFUSE_VREF_ENABLED 0 +#else +#define EFUSE_VREF_ENABLED 1 +#endif + +#ifdef CONFIG_ADC_CAL_DEFAULT_VREF_DISABLE +#define DEFAULT_VREF_ENABLED 0 +#else +#define DEFAULT_VREF_ENABLED 1 +#endif + +/* ------------------------------ eFuse Access ----------------------------- */ + +#define BLK3_RESERVED_REG EFUSE_BLK0_RDATA4_REG + +#define VREF_REG EFUSE_BLK0_RDATA4_REG +#define VREF_SIGN_BIT 0x10 +#define VREF_MAG_BITS 0x0F +#define VREF_STEP_SIZE 7 +#define VREF_OFFSET 1100 + +#define TP_REG EFUSE_BLK3_RDATA3_REG +#define TP_LOW1_OFFSET 278 +#define TP_LOW2_OFFSET 421 +#define TP_HIGH1_OFFSET 3265 +#define TP_HIGH2_OFFSET 3406 +#define TP_LOW_SIGN_BIT 0x40 +#define TP_LOW_MAG_BITS 0x3F +#define TP_LOW_VOLTAGE 150 +#define TP_HIGH_SIGN_BIT 0x100 +#define TP_HIGH_MAG_BITS 0xFF +#define TP_HIGH_VOLTAGE 850 +#define TP_STEP_SIZE 4 + +/* -------------------- Linear and LUT mode constants ----------------------- */ + +#define LIN_COEFF_A_SCALE 65536 +#define LIN_COEFF_A_ROUND (LIN_COEFF_A_SCALE/2) +#define LUT_VREF_IDEAL 1100 +#define LUT_VREF_LOW 1000 +#define LUT_VREF_HIGH 1200 +#define LUT_ADC_STEP_SIZE 128 +#define ADC_12_BIT_MAX 4095 + +#define ADC_CAL_ASSERT(cond, ret) ({ \ + if(!(cond)){ \ + return ret; \ + } \ +}) -uint32_t get_adc_vref_from_efuse() +#define ESP_ADC_CAL_ERR_STR "No characterization possible" +static const char* ESP_ADC_CAL_TAG = "esp_adc_cal_log"; + +extern const uint32_t adc1_lin_tp_atten_scale[4]; +extern const uint32_t adc2_lin_tp_atten_scale[4]; +extern const uint32_t adc1_lin_tp_atten_offset[4]; +extern const uint32_t adc2_lin_tp_atten_offset[4]; +extern const uint32_t adc1_lin_vref_atten_scale[4]; +extern const uint32_t adc2_lin_vref_atten_scale[4]; +extern const uint32_t adc1_lin_vref_atten_offset[4]; +extern const uint32_t adc2_lin_vref_atten_offset[4]; + +extern const esp_adc_cal_lookup_table_t lut_atten0_adc1; +extern const esp_adc_cal_lookup_table_t lut_atten0_adc2; +extern const esp_adc_cal_lookup_table_t lut_atten1_adc1; +extern const esp_adc_cal_lookup_table_t lut_atten1_adc2; +extern const esp_adc_cal_lookup_table_t lut_atten2_adc1; +extern const esp_adc_cal_lookup_table_t lut_atten2_adc2; +extern const esp_adc_cal_lookup_table_t lut_atten3_adc1; +extern const esp_adc_cal_lookup_table_t lut_atten3_adc2; + +/* ----------------------- EFuse Access Functions --------------------------- */ + +//Check if Vref is burned in eFuse +static bool check_efuse_vref() { - //TODO: Replaced with read to eFuse once ATE confirms location of 5 bits - return 0; + //Check eFuse for vref + return (REG_GET_FIELD(VREF_REG, EFUSE_RD_ADC_VREF) != 0) ? true : false; } -void esp_adc_cal_get_characteristics(uint32_t v_ref, - adc_atten_t atten, - adc_bits_width_t bit_width, - esp_adc_cal_characteristics_t *chars) +//Check if Two Point values are burned in eFuse +static bool check_efuse_tp() +{ +#ifndef CONFIG_ADC_CAL_NO_BLK3_RESERVE_FLAG + //BLK3_PART_RESERVE flag must be set + if(REG_GET_FIELD(BLK3_RESERVED_REG, EFUSE_RD_BLK3_PART_RESERVE) == 0){ + return false; + } +#endif + //All TP cal values must be non zero + if((REG_GET_FIELD(TP_REG, EFUSE_RD_ADC1_TP_LOW) != 0) && + (REG_GET_FIELD(TP_REG, EFUSE_RD_ADC2_TP_LOW) != 0) && + (REG_GET_FIELD(TP_REG, EFUSE_RD_ADC1_TP_HIGH) != 0) && + (REG_GET_FIELD(TP_REG, EFUSE_RD_ADC2_TP_HIGH) != 0)){ + return true; + } else { + return false; + } +} + +//Read Vref from eFuse +static uint32_t read_efuse_vref() +{ + //eFuse stores deviation from ideal reference voltage + uint32_t ret = VREF_OFFSET; //Ideal vref + uint32_t bits = REG_GET_FIELD(VREF_REG, EFUSE_ADC_VREF); + + if(bits & VREF_SIGN_BIT){ //Negative deviation from ideal Vref +#ifndef CONFIG_ADC_CAL_NO_BLK3_RESERVE_FLAG + //Deviation stored in sign-magnitude format + ret -= (bits & VREF_MAG_BITS) * VREF_STEP_SIZE; +#else + //Deviation stored in two's complement + ret -= (((~bits)+1) & VREF_MAG_BITS) * VREF_STEP_SIZE; +#endif + } else { //Positive deviation from ideal Vref + ret += (bits & VREF_MAG_BITS) * VREF_STEP_SIZE; + } + return ret; //ADC Vref in mV +} + +//Read Two Point low reading from eFuse +static uint32_t read_efuse_tp_low(adc_unit_t adc_num) +{ + //ADC reading at 150mV stored in two's complement format + uint32_t ret; + uint32_t bits; + + if(adc_num == ADC_UNIT_1){ + ret = TP_LOW1_OFFSET; + bits = REG_GET_FIELD(TP_REG, EFUSE_RD_ADC1_TP_LOW); + } else { + ret = TP_LOW2_OFFSET; + bits = REG_GET_FIELD(TP_REG, EFUSE_RD_ADC2_TP_LOW); + } + + //Represented in two's complement format + if(bits & TP_LOW_SIGN_BIT){ //Negative + ret -= (((~bits) + 1) & TP_LOW_MAG_BITS) * TP_STEP_SIZE; + } else { //Positive + ret += (bits & TP_LOW_MAG_BITS) * TP_STEP_SIZE; + } + return ret; //Reading of ADC at 150mV +} + +//Read Two Point high reading from eFuse +static uint32_t read_efuse_tp_high(adc_unit_t adc_num) +{ + //ADC reading at 850mV stored in two's complement format + uint32_t ret; + uint32_t bits; + if(adc_num == ADC_UNIT_1){ + ret = TP_HIGH1_OFFSET; + bits = REG_GET_FIELD(TP_REG, EFUSE_RD_ADC1_TP_HIGH); + } else { + ret = TP_HIGH2_OFFSET; + bits = REG_GET_FIELD(TP_REG, EFUSE_RD_ADC2_TP_HIGH); + } + + //Represented in two's complement format + if(bits & TP_HIGH_SIGN_BIT){ //Negative + ret -= (((~bits) + 1) & TP_HIGH_MAG_BITS) * TP_STEP_SIZE; + } else { //Positive + ret += (bits & TP_HIGH_MAG_BITS) * TP_STEP_SIZE; + } + return ret; //Reading of ADC at 850mV +} + +/* ----------------------- Characterization Functions ----------------------- */ + +//Linear characterization using Two Point values +static void characterize_lin_tp(adc_unit_t adc_num, + adc_atten_t atten, + uint32_t high, + uint32_t low, + uint32_t *coeff_a, + uint32_t *coeff_b) +{ + const uint32_t *atten_scales; + const uint32_t *atten_offsets; + + if(adc_num == ADC_UNIT_1){ //Using ADC 1 + atten_scales = adc1_lin_tp_atten_scale; + atten_offsets = adc1_lin_tp_atten_offset; + } else { //Using ADC 2 + atten_scales = adc2_lin_tp_atten_scale; + atten_offsets = adc2_lin_tp_atten_offset; + } + //Characterize ADC-Voltage curve as y = (coeff_a * x) + coeff_b + uint32_t delta_x = high - low; + uint32_t delta_v = TP_HIGH_VOLTAGE - TP_LOW_VOLTAGE; + //coeff_a = (delta_v/delta_x) * atten_scale + *coeff_a = (delta_v * atten_scales[atten] + (delta_x/2)) / delta_x; //+(delta_x/2) for rounding + //coeff_b = high_v - ((delta_v/delta_x) * high_x) + atten_offset + *coeff_b = TP_HIGH_VOLTAGE - ((delta_v * high + (delta_x/2)) / delta_x) + atten_offsets[atten]; +} + +//Linear characterization using Vref +static void characterize_lin_vref(adc_unit_t adc_num, + adc_atten_t atten, + uint32_t vref, + uint32_t *coeff_a, + uint32_t *coeff_b) +{ + const uint32_t *atten_scales;; + const uint32_t *atten_offsets; + + if(adc_num == ADC_UNIT_1){ //Using ADC 1 + atten_scales = adc1_lin_vref_atten_scale; + atten_offsets = adc1_lin_vref_atten_offset; + } else { //Using ADC 2 + atten_scales = adc2_lin_vref_atten_scale; + atten_offsets = adc2_lin_vref_atten_offset; + } + //Characterize ADC-Voltage curve as y = (coeff_a * x) + coeff_b + //coeff_a = (vref/4096) * atten_scale + *coeff_a = (vref * atten_scales[atten]) / (ADC_12_BIT_MAX + 1); + *coeff_b = atten_offsets[atten]; +} + +//LUT characterization +static void characterize_lut(adc_unit_t adc_num, + adc_atten_t atten, + uint32_t vref, + const esp_adc_cal_lookup_table_t **table_ptr) +{ + //Get pointer to the correct lookup table + if(atten == ADC_ATTEN_DB_0){ + *table_ptr = (adc_num == ADC_UNIT_1) ? &lut_atten0_adc1 : &lut_atten0_adc2; + } else if (atten == ADC_ATTEN_DB_2_5){ + *table_ptr = (adc_num == ADC_UNIT_1) ? &lut_atten1_adc1 : &lut_atten1_adc2; + } else if (atten == ADC_ATTEN_DB_6){ + *table_ptr = (adc_num == ADC_UNIT_1) ? &lut_atten2_adc1 : &lut_atten2_adc2; + } else { + *table_ptr = (adc_num == ADC_UNIT_1) ? &lut_atten3_adc1 : &lut_atten3_adc2; + } +} + +/* ------------------------ Conversion Functions --------------------------- */ + +//Calculate voltage using linear characterization of the ADC curve +static uint32_t linear_raw_to_voltage(uint32_t adc, + uint32_t gain, + uint32_t offset) +{ + //ADC Curve is characterized as y = coeff_a * adc + coeff_b + //All gains scaled by 65536 + return (((gain * adc) + LIN_COEFF_A_ROUND) / LIN_COEFF_A_SCALE) + offset; +} + +//Calculate voltage using a lookup table +static uint32_t lut_raw_to_voltage(uint32_t adc, uint32_t vref, const esp_adc_cal_lookup_table_t *table) +{ + //Get index of lower bound points of LUT + uint32_t i = (adc / LUT_ADC_STEP_SIZE); + + //Let the X Axis be Vref, Y axis be ADC reading, and Z be voltage + int x2dist = LUT_VREF_HIGH - vref; //(x2 - x) + int x1dist = vref - LUT_VREF_LOW; //(x - x1) + int y2dist = ((i+1) * LUT_ADC_STEP_SIZE) - adc; //(y2 - y) + int y1dist = adc - (i * LUT_ADC_STEP_SIZE); //(y - y1) + + //For points for bilinear interpolation + int q11 = (int)table->low_vref_curve[i]; //Lower bound point of low_vref_curve + int q12 = (int)table->low_vref_curve[i+1]; //Upper bound point of low_vref_curve + int q21 = (int)table->high_vref_curve[i]; //Lower bound point of high_vref_curve + int q22 = (int)table->high_vref_curve[i+1]; //Upper bound point of high_vref_curve + + //Bilinear interpolation + //z = 1/((x2-x1)*(y2-y1)) * ( (q11*x2dist*y2dist) + (q21*x1dist*y2dist) + (q12*x2dist*y1dist) + (q22*x1dist*y1dist) ) + int voltage = (q11*x2dist*y2dist) + (q21*x1dist*y2dist) + (q12*x2dist*y1dist) + (q22*x1dist*y1dist); + voltage += ((LUT_VREF_HIGH - LUT_VREF_LOW) * LUT_ADC_STEP_SIZE)/2; //Integer division rounding + voltage /= ((LUT_VREF_HIGH - LUT_VREF_LOW) * LUT_ADC_STEP_SIZE); //Divide by ((x2-x1)*(y2-y1)) + return (uint32_t)voltage; +} + +/* ------------------------- Public API ------------------------------------- */ + +esp_err_t esp_adc_cal_check_efuse(esp_adc_cal_value_t source) { - chars->v_ref = v_ref; - chars->table = table_ptrs[atten]; - chars->bit_width = bit_width; - if (v_ref >= ADC_CAL_LOW_V_REF) { - chars->gain = ((chars->v_ref - ADC_CAL_LOW_V_REF) - * chars->table->gain_m) - + chars->table->gain_c; - chars->offset = (((chars->v_ref - ADC_CAL_LOW_V_REF) - * chars->table->offset_m) - + chars->table->offset_c - + ((1 << ADC_CAL_OFFSET_SCALE) / 2)) - >> ADC_CAL_OFFSET_SCALE; //Bit shift to cancel 2^10 multiplier - chars->ideal_offset = (((ADC_CAL_IDEAL_V_REF - ADC_CAL_LOW_V_REF) - * chars->table->offset_m) - + chars->table->offset_c - + ((1 << ADC_CAL_OFFSET_SCALE) / 2)) //Rounding - >> ADC_CAL_OFFSET_SCALE; - } else { //For case where v_ref is smaller than low bound resulting in negative - chars->gain = chars->table->gain_c - - ((ADC_CAL_LOW_V_REF - chars->v_ref) - * chars->table->gain_m); - chars->offset = (chars->table->offset_c - - ((chars->v_ref - ADC_CAL_LOW_V_REF) - * chars->table->offset_m) - + ((1 << ADC_CAL_OFFSET_SCALE) / 2)) //Rounding - >> ADC_CAL_OFFSET_SCALE; //Bit shift to cancel 2^10 multiplier - chars->ideal_offset = (chars->table->offset_c - - ((ADC_CAL_IDEAL_V_REF - ADC_CAL_LOW_V_REF) - * chars->table->offset_m) - + ((1 << ADC_CAL_OFFSET_SCALE) / 2)) //Rounding - >> ADC_CAL_OFFSET_SCALE; + if(source == ESP_ADC_CAL_VAL_EFUSE_TP){ + return (check_efuse_tp()) ? ESP_OK : ESP_ERR_NOT_SUPPORTED; + } else if (source == ESP_ADC_CAL_VAL_EFUSE_VREF){ + return (check_efuse_vref()) ? ESP_OK : ESP_ERR_NOT_SUPPORTED; + } else { + return ESP_ERR_INVALID_ARG; } } -static uint32_t esp_adc_cal_interpolate_round(uint32_t lower, uint32_t upper, - uint32_t step, uint32_t point) +esp_adc_cal_value_t esp_adc_cal_characterize(adc_unit_t adc_num, + adc_atten_t atten, + esp_adc_cal_mode_t mode, + uint32_t vref_default, + esp_adc_cal_characteristics_t *chars) { - //Interpolate 'point' between 'lower' and 'upper' seperated by 'step' - return ((lower * step) - (lower * point) + (upper * point) + (step / 2)) / step; + assert((adc_num == ADC_UNIT_1) || (adc_num == ADC_UNIT_2)); + assert(chars != NULL); + + //Check eFuse if enabled to do so + bool efuse_tp_present = check_efuse_tp(); + bool efuse_vref_present = check_efuse_vref(); + esp_adc_cal_value_t ret; + + if(mode == ESP_ADC_CAL_MODE_LIN){ + if(efuse_tp_present && EFUSE_TP_ENABLED){ + uint32_t high = read_efuse_tp_high(adc_num); + uint32_t low = read_efuse_tp_low(adc_num); + characterize_lin_tp(adc_num, atten, high, low, &chars->linear_chars.coeff_a, &chars->linear_chars.coeff_b); + ret = ESP_ADC_CAL_VAL_EFUSE_TP; + } else if(efuse_vref_present && EFUSE_VREF_ENABLED){ + uint32_t vref = read_efuse_vref(); + characterize_lin_vref(adc_num, atten, vref, &chars->linear_chars.coeff_a, &chars->linear_chars.coeff_b); + ret = ESP_ADC_CAL_VAL_EFUSE_VREF; + } else if(DEFAULT_VREF_ENABLED){ + characterize_lin_vref(adc_num, atten, vref_default, &chars->linear_chars.coeff_a, &chars->linear_chars.coeff_b); + ret = ESP_ADC_CAL_VAL_DEFAULT_VREF; + } else { + goto err; + } + } else if (mode == ESP_ADC_CAL_MODE_LUT){ + if(efuse_vref_present && EFUSE_VREF_ENABLED){ + uint32_t vref = read_efuse_vref(); + chars->lut_chars.vref = vref; + characterize_lut(adc_num, atten, vref, &chars->lut_chars.table); + ret = ESP_ADC_CAL_VAL_EFUSE_VREF; + } else if(DEFAULT_VREF_ENABLED){ + chars->lut_chars.vref = vref_default; + characterize_lut(adc_num, atten, vref_default, &chars->lut_chars.table); + ret = ESP_ADC_CAL_VAL_DEFAULT_VREF; + } else{ + goto err; + } + } else { + goto err; + } + chars->mode = mode; + chars->adc_num = adc_num; + return ret; + + err: //No possible characterization + // usually only occurs if users manually disable calibration values and modes in menuconfig + ESP_LOGE(ESP_ADC_CAL_TAG, ESP_ADC_CAL_ERR_STR); + abort(); + return ESP_ADC_CAL_VAL_DEFAULT_VREF; //Should not reach this point, added to suppress Eclipse warnings } -uint32_t esp_adc_cal_raw_to_voltage(uint32_t adc, +uint32_t esp_adc_cal_raw_to_voltage(uint32_t adc_reading, + adc_bits_width_t bit_width, const esp_adc_cal_characteristics_t *chars) { - //Scale ADC to 12 bit width (0 to 4095) - adc <<= (ADC_WIDTH_BIT_12 - chars->bit_width); - uint32_t i = (adc >> chars->table->bit_shift); //find index for lut voltages - //Refernce LUT to obtain voltage using index - uint32_t voltage = esp_adc_cal_interpolate_round(chars->table->voltage[i], - chars->table->voltage[i + 1], - (1 << chars->table->bit_shift), - adc - (i << chars->table->bit_shift)); - /* - * Apply Gain, scaling(bit shift) and offset to interpolated voltage - * v_true = (((v_id - off_id)*gain)*scaling) + off_true - */ - if (voltage > chars->ideal_offset) { - voltage = (voltage - chars->ideal_offset) * chars->gain; - voltage += (1 << ADC_CAL_GAIN_SCALE) / 2; //For rounding when scaled - voltage >>= ADC_CAL_GAIN_SCALE; - voltage += chars->offset; - } else { //For case where voltage is less than ideal offset leading to negative value - voltage = ((chars->ideal_offset - voltage) * chars->gain); - voltage += (1 << ADC_CAL_GAIN_SCALE) / 2; //For rounding when scaled - voltage >>= ADC_CAL_GAIN_SCALE; - voltage = chars->offset - voltage; + assert(chars != NULL); + //Scale adc_rading if not 12 bits wide + if(bit_width != ADC_WIDTH_BIT_12){ + adc_reading = (adc_reading << (ADC_WIDTH_BIT_12 - bit_width)); + //If adc_reading is out of 12bit range + if(adc_reading > ADC_12_BIT_MAX){ + adc_reading = ADC_12_BIT_MAX; //Set to 12bit max + } } - return voltage; + //Convert ADC reading to voltage in mV + if(chars->mode == ESP_ADC_CAL_MODE_LUT){ //Lookup Table + assert(chars->lut_chars.table != NULL); + return lut_raw_to_voltage(adc_reading, chars->lut_chars.vref, chars->lut_chars.table); + } else { + return linear_raw_to_voltage(adc_reading, chars->linear_chars.coeff_a, chars->linear_chars.coeff_b); + } +} + +esp_err_t adc_to_voltage(adc_channel_t channel, + adc_bits_width_t bit_width, + const esp_adc_cal_characteristics_t *chars, + uint32_t *voltage) +{ + //Check parameters + ADC_CAL_ASSERT(chars != NULL, ESP_ERR_INVALID_ARG); + ADC_CAL_ASSERT(voltage != NULL, ESP_ERR_INVALID_ARG); + + if(chars->adc_num == ADC_UNIT_1){ + //Check channel is valid on ADC1 + ADC_CAL_ASSERT((adc1_channel_t)channel < ADC1_CHANNEL_MAX, ESP_ERR_INVALID_ARG); + uint32_t adc_reading = (uint32_t)adc1_get_raw(channel); //Todo: get_raw function to change + *voltage = esp_adc_cal_raw_to_voltage(adc_reading, bit_width, chars); + } else { + //Check channel is valid on ADC2 + ADC_CAL_ASSERT((adc2_channel_t)channel < ADC2_CHANNEL_MAX, ESP_ERR_INVALID_ARG); + int adc_reading; + if(adc2_get_raw(channel, bit_width, &adc_reading) != ESP_OK){ + //Timed out waiting for ADC2 + return ESP_ERR_TIMEOUT; + } + *voltage = esp_adc_cal_raw_to_voltage((uint32_t)adc_reading, bit_width, chars); + } + return ESP_OK; +} + +/* ------------------------ Deprecated API --------------------------------- */ + +void esp_adc_cal_get_characteristics(uint32_t vref, + adc_atten_t atten, + adc_bits_width_t bit_width, + esp_adc_cal_characteristics_t *chars) +{ + //Default to ADC1 and LUT mode + assert(chars != NULL); + + //bit_width parameter unused, kept due to legacy API + chars->mode = ESP_ADC_CAL_MODE_LUT; + chars->lut_chars.vref = vref; + characterize_lut(ADC_UNIT_1, atten, vref, &chars->lut_chars.table); + chars->adc_num = ADC_UNIT_1; } uint32_t adc1_to_voltage(adc1_channel_t channel, const esp_adc_cal_characteristics_t *chars) { - return esp_adc_cal_raw_to_voltage((uint32_t)adc1_get_raw(channel), chars); + assert(chars != NULL); + uint32_t voltage = 0; + adc_to_voltage((adc_channel_t) channel, ADC_WIDTH_BIT_12, chars, &voltage); + return voltage; } + diff --git a/components/esp_adc_cal/esp_adc_cal_constants.c b/components/esp_adc_cal/esp_adc_cal_constants.c new file mode 100644 index 0000000000..833d2bcb3a --- /dev/null +++ b/components/esp_adc_cal/esp_adc_cal_constants.c @@ -0,0 +1,222 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "esp_adc_cal.h" +#include "esp_adc_cal_constants.h" + +/* ------------------------- Lookup Tables ---------------------------------- */ + +/** + * Mean error of 70 modules: 2.674297mV + * Max error of 70 modules: 12.176238mV + * Mean of max errors of 70 modules: 7.079913mV + */ +const esp_adc_cal_lookup_table_t lut_atten0_adc1 = { + .low_vref_curve = { + 58, 84, 114, 142, 168, 196, 224, 252, + 281, 308, 335, 363, 390, 417, 445, 473, + 501, 528, 556, 583, 611, 637, 665, 692, + 720, 747, 775, 802, 830, 856, 883, 910, + 937 + }, + .high_vref_curve = { + 86, 106, 152, 184, 218, 251, 283, 316, + 348, 381, 415, 447, 480, 513, 546, 579, + 612, 644, 677, 710, 742, 775, 808, 841, + 874, 906, 938, 971, 1003, 1035, 1068, 1100, + 1133 + } +}; + +/** + * Mean error of 70 modules: 3.950325mV + * Max error of 70 modules: 20.975788mV + * Mean of max errors of 70 modules: 6.629054mV + */ +const esp_adc_cal_lookup_table_t lut_atten0_adc2 = { + .low_vref_curve = { + 49, 75, 105, 132, 160, 187, 214, 241, + 268, 296, 324, 352, 380, 407, 434, 461, + 488, 516, 545, 572, 600, 627, 654, 681, + 708, 735, 763, 791, 818, 845, 872, 899, + 927 + }, + .high_vref_curve = { + 72, 103, 137, 170, 202, 235, 268, 302, + 335, 367, 399, 432, 464, 497, 530, 563, + 596, 628, 661, 693, 725, 758, 791, 824, + 857, 889, 921, 954, 986, 1018, 1051, 1084, + 1116 + } +}; + +/** + * Mean error of 70 modules: 3.339671mV + * Max error of 70 modules: 13.476428mV + * Mean of max errors of 70 modules: 5.818235mV + */ +const esp_adc_cal_lookup_table_t lut_atten1_adc1 = { + .low_vref_curve = { + 57, 87, 130, 168, 204, 240, 277, 313, + 349, 387, 424, 461, 498, 534, 571, 607, + 644, 680, 717, 753, 789, 826, 862, 898, + 934, 970, 1007, 1043, 1078, 1115, 1151, 1187, + 1223 + }, + .high_vref_curve = { + 89, 128, 178, 221, 264, 309, 353, 397, + 442, 484, 528, 572, 616, 659, 703, 747, + 790, 833, 877, 921, 964, 1006, 1050, 1094, + 1137, 1179, 1222, 1266, 1309, 1351, 1394, 1437, + 1481 + } +}; + +/** + * Mean error of 70 modules: 5.319836mV + * Max error of 70 modules: 29.034477mV + * Mean of max errors of 70 modules: 9.226072mV + */ +const esp_adc_cal_lookup_table_t lut_atten1_adc2 = { + .low_vref_curve = { + 47, 86, 122, 159, 196, 232, 268, 305, + 340, 377, 415, 452, 487, 525, 562, 598, + 635, 671, 708, 745, 782, 817, 853, 890, + 926, 962, 999, 1035, 1071, 1107, 1144, 1180, + 1215 + }, + .high_vref_curve = { + 78, 113, 165, 209, 251, 295, 339, 383, + 427, 470, 514, 558, 602, 644, 688, 732, + 775, 818, 862, 905, 948, 992, 1036, 1079, + 1122, 1164, 1208, 1252, 1295, 1338, 1381, 1424, + 1468 + } +}; + +/** + * Mean error of 70 modules: 4.943406mV + * Max error of 70 modules: 19.203104mV + * Mean of max errors of 70 modules: 9.462435mV + */ +const esp_adc_cal_lookup_table_t lut_atten2_adc1 = { + .low_vref_curve = { + 72, 117, 177, 228, 281, 330, 382, 434, + 483, 536, 587, 639, 690, 740, 791, 842, + 892, 942, 992, 1042, 1092, 1141, 1191, 1241, + 1290, 1339, 1391, 1441, 1490, 1540, 1591, 1642, + 1692 + }, + .high_vref_curve = { + 120, 175, 243, 305, 364, 426, 488, 550, + 612, 671, 732, 793, 852, 912, 973, 1033, + 1092, 1151, 1211, 1272, 1331, 1390, 1450, 1511, + 1571, 1631, 1691, 1752, 1812, 1872, 1933, 1994, + 2056 + } +}; + +/** + * Mean error of 70 modules: 7.782408mV + * Max error of 70 modules: 45.327423mV + * Mean of max errors of 70 modules: 13.569581mV + */ +const esp_adc_cal_lookup_table_t lut_atten2_adc2 = { + .low_vref_curve = { + 61, 119, 164, 216, 267, 317, 369, 420, + 471, 522, 574, 625, 676, 726, 777, 828, + 878, 928, 979, 1030, 1080, 1130, 1180, 1230, + 1280, 1330, 1381, 1432, 1483, 1532, 1583, 1634, + 1685 + }, + .high_vref_curve = { + 102, 152, 225, 286, 347, 407, 469, 530, + 590, 651, 712, 773, 832, 892, 953, 1013, + 1073, 1132, 1192, 1253, 1313, 1372, 1432, 1494, + 1554, 1613, 1675, 1735, 1795, 1856, 1917, 1978, + 2039 + } +}; + +/** + * Mean error of 70 modules: 9.568297mV + * Max error of 70 modules: 44.480817mV + * Mean of max errors of 70 modules: 20.165069mV + */ +const esp_adc_cal_lookup_table_t lut_atten3_adc1 = { + .low_vref_curve = { + 88, 185, 285, 380, 473, 568, 664, 759, + 853, 945, 1039, 1133, 1224, 1316, 1410, 1505, + 1599, 1692, 1788, 1886, 1983, 2081, 2186, 2297, + 2405, 2511, 2615, 2710, 2793, 2868, 2937, 3000, + 3061 + }, + .high_vref_curve = { + 173, 271, 399, 515, 628, 740, 853, 965, + 1075, 1186, 1299, 1411, 1523, 1634, 1749, 1863, + 1975, 2087, 2201, 2314, 2422, 2525, 2622, 2707, + 2779, 2844, 2901, 2956, 3008, 3059, 3110, 3160, + 3210 + } +}; + +/** + * Mean error of 70 modules: 12.799173mV + * Max error of 70 modules: 60.129227mV + * Mean of max errors of 70 modules: 23.334659mV + */ +const esp_adc_cal_lookup_table_t lut_atten3_adc2 = { + .low_vref_curve = { + 83, 177, 274, 370, 465, 559, 655, 751, + 844, 937, 1031, 1126, 1218, 1312, 1407, 1502, + 1597, 1691, 1787, 1885, 1983, 2081, 2185, 2293, + 2400, 2506, 2612, 2709, 2793, 2868, 2937, 2999, + 3059 + }, + .high_vref_curve = { + 155, 257, 383, 498, 610, 722, 836, 947, + 1058, 1170, 1283, 1396, 1507, 1619, 1733, 1848, + 1960, 2073, 2188, 2300, 2408, 2513, 2611, 2698, + 2773, 2838, 2895, 2946, 2996, 3044, 3092, 3139, + 3186 + } +}; + +/* ---------------- Constants for linear calibration using TP --------------- */ + +// (0.999518539509928, 1.32714033039721, 1.83698541693337, 3.42269475397192) * 65536 +const uint32_t adc1_lin_tp_atten_scale[4] = {65504, 86975, 120389, 224310}; + +// (0.99895306551877194, 1.3253993908658808, 1.8373986067502703, 3.4287787961634124) * 65536 +const uint32_t adc2_lin_tp_atten_scale[4] = {65467, 86861, 120416, 224708}; + +// (0.369882210218334, 1.33352056600476, 26.5266258898132, 54.2706443679156) +const uint32_t adc1_lin_tp_atten_offset[4] = {0, 1, 27, 54}; + +// (0.0, 3.59737421, 26.3951927, 64.738429) +const uint32_t adc2_lin_tp_atten_offset[4] = {0, 9, 26, 66}; + +/* ------------- Constants for linear calibration using Vref ---------------- */ + +// (0.87632707, 1.16327136, 1.60951523, 2.99991113) * 65536 +const uint32_t adc1_lin_vref_atten_scale[4] = {57431, 76236, 105481, 196602}; + +// (0.87335934, 1.16233322, 1.61251264, 3.00858015) * 65536 +const uint32_t adc2_lin_vref_atten_scale[4] = {57236, 76175, 105678, 197170}; + +// (74.97079, 77.67434785, 106.58843993, 142.18959459) +const uint32_t adc1_lin_vref_atten_offset[4] = {75, 78, 107, 142}; + +// (62.73368574, 66.33498527, 89.23584218, 127.69820652) +const uint32_t adc2_lin_vref_atten_offset[4] = {63, 66, 89, 128}; diff --git a/components/esp_adc_cal/esp_adc_cal_lookup_tables.c b/components/esp_adc_cal/esp_adc_cal_lookup_tables.c deleted file mode 100644 index 111f75c4b0..0000000000 --- a/components/esp_adc_cal/esp_adc_cal_lookup_tables.c +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "esp_adc_cal.h" - -/** - * Mean error of 219 modules: 3.756418mV - * Max error of 219 modules: 26.314087mV - * Mean of max errors of 219 modules: 7.387282mV - */ -const esp_adc_cal_lookup_table_t esp_adc_cal_table_atten_0 = { - .gain_m = 56, - .gain_c = 59928, - .offset_m = 91, - .offset_c = 52798, - .bit_shift = 7, - .voltage = { - 54, 90, 120, 150, 180, 209, 241, 271, - 301, 330, 360, 391, 421, 450, 480, 511, - 541, 571, 601, 630, 660, 690, 720, 750, - 780, 809, 839, 870, 900, 929, 959, 988, - 1018 - } -}; - -/** - * Mean error of 219 modules: 4.952441mV - * Max error of 219 modules: 38.235321mV - * Mean of max errors of 219 modules: 9.718749mV - */ -const esp_adc_cal_lookup_table_t esp_adc_cal_table_atten_1 = { - .gain_m = 57, - .gain_c = 59834, - .offset_m = 108, - .offset_c = 54733, - .bit_shift = 7, - .voltage = { - 60, 102, 143, 184, 223, 262, 303, 343, - 383, 423, 463, 503, 543, 583, 623, 663, - 703, 742, 782, 823, 862, 901, 942, 981, - 1022, 1060, 1101, 1141, 1180, 1219, 1259, 1298, - 1338 - } -}; - -/** - * Mean error of 219 modules: 6.793558mV - * Max error of 219 modules: 51.435440mV - * Mean of max errors of 219 modules: 13.083121mV - */ -const esp_adc_cal_lookup_table_t esp_adc_cal_table_atten_2 = { - .gain_m = 56, - .gain_c = 59927, - .offset_m = 154, - .offset_c = 71995, - .bit_shift = 7, - .voltage = { - 82, 138, 194, 250, 305, 360, 417, 473, - 529, 584, 639, 696, 751, 806, 861, 917, - 971, 1026, 1081, 1136, 1192, 1246, 1301, 1356, - 1411, 1466, 1522, 1577, 1632, 1687, 1743, 1799, - 1855 - } -}; - -/** - * Mean error of 219 modules: 13.149460mV - * Max error of 219 modules: 97.102951mV - * Mean of max errors of 219 modules: 35.538924mV - */ -const esp_adc_cal_lookup_table_t esp_adc_cal_table_atten_3 = { - .gain_m = 33, - .gain_c = 62214, - .offset_m = 610, - .offset_c = 108422, - .bit_shift = 7, - .voltage = { - 110, 221, 325, 430, 534, 637, 741, 845, - 947, 1049, 1153, 1256, 1358, 1461, 1565, 1670, - 1774, 1878, 1983, 2088, 2192, 2293, 2393, 2490, - 2580, 2665, 2746, 2820, 2885, 2947, 3007, 3060, - 3107 - } -}; - diff --git a/components/esp_adc_cal/include/esp_adc_cal.h b/components/esp_adc_cal/include/esp_adc_cal.h index adb6598496..9cee127a46 100644 --- a/components/esp_adc_cal/include/esp_adc_cal.h +++ b/components/esp_adc_cal/include/esp_adc_cal.h @@ -20,131 +20,171 @@ extern "C" { #endif #include +#include "esp_err.h" #include "driver/adc.h" +#include "esp_adc_cal_constants.h" -/** @cond */ -#define ADC_CAL_GAIN_SCALE 16 -#define ADC_CAL_OFFSET_SCALE 10 +/** + * @brief ADC characterization mode + */ +typedef enum { + ESP_ADC_CAL_MODE_LIN = 0, /**< Characterize the ADC as a linear curve*/ + ESP_ADC_CAL_MODE_LUT= 1, /**< Characterize the ADC using a lookup table*/ +} esp_adc_cal_mode_t; -#define ADC_CAL_IDEAL_V_REF 1100 //In mV -#define ADC_CAL_LOW_V_REF 1000 -#define ADC_CAL_HIGH_V_REF 1200 -#define ADC_CAL_MIN 0 -#define ADC_CAL_MAX 4095 -/** @endcond */ +/** + * @brief Type of calibration value used in characterization + */ +typedef enum { + ESP_ADC_CAL_VAL_EFUSE_VREF = 0, /**< Characterization based on reference voltage stored in eFuse*/ + ESP_ADC_CAL_VAL_EFUSE_TP = 1, /**< Characterization based on Two Point values stored in eFuse*/ + ESP_ADC_CAL_VAL_DEFAULT_VREF = 2, /**< Characterization based on default reference voltage*/ +} esp_adc_cal_value_t; /** * @brief Structure storing Lookup Table * - * The Lookup Tables (LUT) of a given attenuation contains 33 equally spaced - * points. The Gain and Offset curves are used to find the appopriate gain and - * offset factor given a reference voltage v_ref. + * A Lookup Table (LUT) of a given ADC and attenuation contains two curves + * mapping ADC readings to a voltage in mV. Each curve contains 33 equally spaced + * points separated by a step size of 128. The low_vref_curve represents the ADC + * voltage curve of a module with a reference voltage of 1000mV, whilst the + * high_vref_curve represents a reference voltage of 1200mV. * - * @note A seperate LUT is provided for each attenuation and are defined in - * esp_adc_cal_lookup_tables.c + * @note Separate LUTs are provided for each ADC at each attenuation */ typedef struct { - uint32_t gain_m; /**> EFUSE_RD_XPD_SDIO_REG_S; result.tieh = (efuse_reg & EFUSE_RD_SDIO_TIEH_M) >> EFUSE_RD_SDIO_TIEH_S; - // in this case, DREFH/M/L are also set from EFUSE - result.drefh = (efuse_reg & EFUSE_RD_SDIO_DREFH_M) >> EFUSE_RD_SDIO_DREFH_S; - result.drefm = (efuse_reg & EFUSE_RD_SDIO_DREFM_M) >> EFUSE_RD_SDIO_DREFM_S; - result.drefl = (efuse_reg & EFUSE_RD_SDIO_DREFL_M) >> EFUSE_RD_SDIO_DREFL_S; + //DREFH/M/L eFuse are used for EFUSE_ADC_VREF instead. Therefore tuning + //will only be available on older chips that don't have EFUSE_ADC_VREF + if(REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG ,EFUSE_RD_BLK3_PART_RESERVE) == 0){ + //BLK3_PART_RESERVE indicates the presence of EFUSE_ADC_VREF + // in this case, DREFH/M/L are also set from EFUSE + result.drefh = (efuse_reg & EFUSE_RD_SDIO_DREFH_M) >> EFUSE_RD_SDIO_DREFH_S; + result.drefm = (efuse_reg & EFUSE_RD_SDIO_DREFM_M) >> EFUSE_RD_SDIO_DREFM_S; + result.drefl = (efuse_reg & EFUSE_RD_SDIO_DREFL_M) >> EFUSE_RD_SDIO_DREFL_S; + } return result; } diff --git a/docs/_static/adc-noise-graph.jpg b/docs/_static/adc-noise-graph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3220c2464fd0e601a1a03dc05cc3f95712c7c1f9 GIT binary patch literal 110759 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

CGDCmDLwAFMJIiv98->b{cm*- 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 literal 0 HcmV?d00001 diff --git a/docs/api-reference/peripherals/adc.rst b/docs/api-reference/peripherals/adc.rst index 3bad7b24b8..d5fa4ce346 100644 --- a/docs/api-reference/peripherals/adc.rst +++ b/docs/api-reference/peripherals/adc.rst @@ -85,55 +85,58 @@ The value read in both these examples is 12 bits wide (range 0-4095). .. _adc-api-adc-calibration: +Minimizing Noise +---------------- + +The ESP32 ADC can be sensitive to noise leading to large discrepancies in ADC readings. To minimize noise, users may connect a 0.1uF capacitor to the ADC input pad in use. Multisampling may also be used to further mitigate the effects of noise. + +.. figure:: ../../_static/adc-noise-graph.jpg + :align: center + :alt: ADC noise mitigation + + Graph illustrating noise mitigation using capacitor and multisampling of 64 samples. + ADC Calibration --------------- -The :component_file:`esp_adc_cal/include/esp_adc_cal.h` API provides functions to correct for differences in measured voltages caused by non-ideal ADC reference voltages in ESP32s. The ideal ADC reference voltage is 1100 mV however the reference voltage of different ESP32s can range from 1000 mV to 1200 mV. +The :component_file:`esp_adc_cal/include/esp_adc_cal.h` API provides functions to correct for differences in measured voltages caused by non-ideal ADC reference voltages and non-linear characteristics (only applicable at 11dB attenuation). The ideal ADC reference voltage is 1100mV, however true reference voltages can range from 1000mV to 1200 mV amongst ESP32s. -Correcting the measured voltage using this API involves referencing a lookup table of voltages. The voltage obtained from the lookup table is then scaled and shifted by a gain and offset factor that is based on the ADC's reference voltage. This is done with function :cpp:func:`esp_adc_cal_get_characteristics`. +.. figure:: ../../_static/adc-vref-graph.jpg + :align: center + :alt: ADC reference voltage comparison + + Graph illustrating effect of differing reference voltages on the ADC voltage curve. -The reference voltage of the ADCs can be routed to certain GPIOs and measured manually using the ADC driver’s :cpp:func:`adc2_vref_to_gpio` function. +Correcting ADC readings using this API involves characterizing one of the ADCs at a given attenuation to obtain a characteristics curve (ADC-Voltage curve). The characteristics curve is used to convert ADC readings to voltages in mV. Representation of characteristics curve will differ under **Linear Mode** and **Lookup Table Mode**. Calculation of the characteristics curve is based on calibration values which can be stored in eFuse or provided by the user. -Example of Reading Calibrated Values ------------------------------------- +.. _linear-mode: -Reading the ADC and obtaining a result in mV:: +Linear Mode +^^^^^^^^^^^ - #include - #include - - ... - #define V_REF 1100 // ADC reference voltage - - // Configure ADC - adc1_config_width(ADC_WIDTH_12Bit); - adc1_config_channel_atten(ADC1_CHANNEL_6, ADC_ATTEN_11db); - - // Calculate ADC characteristics i.e. gain and offset factors - esp_adc_cal_characteristics_t characteristics; - esp_adc_cal_get_characteristics(V_REF, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, &characteristics); - - // Read ADC and obtain result in mV - uint32_t voltage = adc1_to_voltage(ADC1_CHANNEL_6, &characteristics); - printf("%d mV\n",voltage); - - -Routing ADC reference voltage to GPIO, so it can be manually measured and entered in function :cpp:func:`esp_adc_cal_get_characteristics`:: +Linear Mode characterization will generate a linear characteristics curve in the form of ``y = coeff_a * x + coeff_b``. The linear curve will map ADC readings to a voltage in mV. The calibration values which the calculation of ``coeff_a`` and ``coeff_b`` can be based on will be prioritized in the following order - #include - #include - #include +1. Two Point values +2. eFuse Vref +3. Default Vref - ... +.. _lut-mode: - esp_err_t status = adc2_vref_to_gpio(GPIO_NUM_25); - if (status == ESP_OK){ - printf("v_ref routed to GPIO\n"); - }else{ - printf("failed to route v_ref\n"); - } +Lookup Table Mode +^^^^^^^^^^^^^^^^^ + +Lookup Table (LUT) Mode characterization utilizes a LUT to represent an ADC’s characteristics curve. Each LUT consists of a High and Low reference curve which are representative of the characteristic curve of ESP32s with a Vref of 1200mV and 1000mV respectively. Converting an ADC reading to a voltage using a LUT involves interpolating between the High and Low curves based on an ESP32’s true Vref. The true Vref can be read from eFuse (eFuse Vref) or provided by the user (Default Vref) if eFuse Vref is unavailable. + +Calibration Values +^^^^^^^^^^^^^^^^^^ + +Calibration values are used during the characterization processes, and there are currently three possible types of calibration values. Note the availability of these calibration values will depend on the type of version of the ESP32 chip/module. + +The **Two Point** calibration values represent each of the ADCs’ readings at 150mV and 850mV. The values are burned into eFuse during factory calibration and are used in Linear Mode to generate a linear characteristics curve. Note that the Two Point values are only available on some versions of ESP32 chips/modules + +The **eFuse Vref** value represents the true reference voltage of the ADCs and can be used in both Linear and LUT modes. This value is measured and burned into eFuse during factory calibration. Note that eFuse Vref is not available on older variations of ESP32 chips/modules -An example of using the ADC driver and obtaining calibrated measurements is available in esp-idf: :example:`peripherals/adc` +**Default Vref** is an estimate of the ADC reference voltage provided by the user as a parameter during characterization. If Two Point or eFuse Vref values are unavailable, Default Vref will be used. To obtain an estimate of an ESP32 modules Vref, users can call the function ``adc2_vref_to_gpio()`` to route the ADC refernce voltage to a GPIO and measure it manually. GPIO Lookup Macros ------------------ diff --git a/examples/peripherals/adc/main/adc1_example_main.c b/examples/peripherals/adc/main/adc1_example_main.c index eca1e4aa29..9b7d9db8d4 100644 --- a/examples/peripherals/adc/main/adc1_example_main.c +++ b/examples/peripherals/adc/main/adc1_example_main.c @@ -10,42 +10,71 @@ #include #include "freertos/FreeRTOS.h" #include "freertos/task.h" -#include "freertos/queue.h" #include "driver/gpio.h" #include "driver/adc.h" -#include "esp_system.h" #include "esp_adc_cal.h" -/*Note: Different ESP32 modules may have different reference voltages varying from - * 1000mV to 1200mV. Use #define GET_VREF to route v_ref to a GPIO - */ -#define V_REF 1100 -#define ADC1_TEST_CHANNEL (ADC1_CHANNEL_6) //GPIO 34 -//#define V_REF_TO_GPIO //Remove comment on define to route v_ref to GPIO +#define PRINT_VAL_SUPPORT(support, type) ({ \ + if(support == ESP_OK){ \ + printf("%s: supported\n", (type)); \ + } else { \ + printf("%s: not supported\n", (type)); \ + } \ +}) + +#define PRINT_VAL_TYPE(type, mode) ({ \ + if(type == ESP_ADC_CAL_VAL_EFUSE_TP){ \ + printf("%s mode: Two Point Value\n", (mode)); \ + } else if (type == ESP_ADC_CAL_VAL_EFUSE_VREF){ \ + printf("%s mode: eFuse Vref\n", (mode)); \ + } else { \ + printf("%s mode: Default Vref\n", (mode)); \ + } \ +}) + +#define DEFAULT_VREF 1100 //Use adc2_vref_to_gpio() to obtain a better estimate +#define NO_OF_SAMPLES 64 + +static esp_adc_cal_characteristics_t *adc_linear_chars; +static esp_adc_cal_characteristics_t *adc_lut_chars; +static adc1_channel_t channel = ADC1_CHANNEL_6; void app_main(void) { -#ifndef V_REF_TO_GPIO - //Init ADC and Characteristics - esp_adc_cal_characteristics_t characteristics; + //Check if Two Point or Vref are burned into eFuse + esp_err_t efuse_vref_support = esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_VREF); + esp_err_t efuse_tp_support = esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_TP); + PRINT_VAL_SUPPORT(efuse_vref_support, "eFuse Vref"); + PRINT_VAL_SUPPORT(efuse_tp_support, "eFuse Two Point"); + + + //Configure ADC1 adc1_config_width(ADC_WIDTH_BIT_12); - adc1_config_channel_atten(ADC1_TEST_CHANNEL, ADC_ATTEN_DB_0); - esp_adc_cal_get_characteristics(V_REF, ADC_ATTEN_DB_0, ADC_WIDTH_BIT_12, &characteristics); - uint32_t voltage; + adc1_config_channel_atten(channel, ADC_ATTEN_DB_0); + + //Characterize ADC1 in both linear and lut mode + adc_linear_chars = calloc(1, sizeof(esp_adc_cal_characteristics_t)); + adc_lut_chars = calloc(1, sizeof(esp_adc_cal_characteristics_t)); + + esp_adc_cal_value_t lin_val_type = esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_0, ESP_ADC_CAL_MODE_LIN, DEFAULT_VREF, adc_linear_chars); + esp_adc_cal_value_t lut_val_type = esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_0, ESP_ADC_CAL_MODE_LUT, DEFAULT_VREF, adc_lut_chars); + PRINT_VAL_TYPE(lin_val_type, "Linear"); + PRINT_VAL_TYPE(lut_val_type, "LUT"); + + //Continuously sample ADC1 while(1){ - voltage = adc1_to_voltage(ADC1_TEST_CHANNEL, &characteristics); - printf("%d mV\n",voltage); + uint32_t adc1_raw = 0; + //Multisample + for(int i = 0; i < NO_OF_SAMPLES; i++){ + adc1_raw += adc1_get_raw(channel); + } + adc1_raw /= NO_OF_SAMPLES; + + uint32_t corrected_linear = esp_adc_cal_raw_to_voltage(adc1_raw, ADC_WIDTH_BIT_12, adc_linear_chars); + uint32_t corrected_lut = esp_adc_cal_raw_to_voltage(adc1_raw, ADC_WIDTH_BIT_12, adc_lut_chars); + printf("Raw: %d\tLinear: %dmV\tLUT: %dmV\n", adc1_raw, corrected_linear, corrected_lut); + vTaskDelay(pdMS_TO_TICKS(1000)); } -#else - //Get v_ref - esp_err_t status; - status = adc2_vref_to_gpio(GPIO_NUM_25); - if (status == ESP_OK){ - printf("v_ref routed to GPIO\n"); - }else{ - printf("failed to route v_ref\n"); - } - fflush(stdout); -#endif + } -- 2.40.0

334o+)@m$k=I7qBQ;r# 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