testing battery probe (experimental)
This commit is contained in:
parent
9c60a237cf
commit
5ca3ef72fd
@ -14,7 +14,7 @@
|
|||||||
;env_default = heltec
|
;env_default = heltec
|
||||||
;env_default = ttgov1
|
;env_default = ttgov1
|
||||||
;env_default = ttgov2
|
;env_default = ttgov2
|
||||||
;env_default = ttgov21
|
env_default = ttgov21
|
||||||
;env_default = lopy
|
;env_default = lopy
|
||||||
;env_default = lopy4
|
;env_default = lopy4
|
||||||
;env_default = fipy
|
;env_default = fipy
|
||||||
|
@ -18,10 +18,6 @@
|
|||||||
// Local logging tag
|
// Local logging tag
|
||||||
static const char TAG[] = "main";
|
static const char TAG[] = "main";
|
||||||
|
|
||||||
static const adc_channel_t channel = (adc_channel_t) HAS_BATTERY_PROBE;
|
|
||||||
static const adc_atten_t atten = ADC_ATTEN_DB_0;
|
|
||||||
static const adc_unit_t unit = ADC_UNIT_1;
|
|
||||||
|
|
||||||
static void check_efuse()
|
static void check_efuse()
|
||||||
{
|
{
|
||||||
//Check if two point calibration values are burned into eFuse
|
//Check if two point calibration values are burned into eFuse
|
||||||
@ -52,35 +48,31 @@ static void print_char_val_type(esp_adc_cal_value_t val_type)
|
|||||||
|
|
||||||
uint16_t read_voltage(void)
|
uint16_t read_voltage(void)
|
||||||
{
|
{
|
||||||
|
static const adc1_channel_t channel = HAS_BATTERY_PROBE;
|
||||||
|
static const adc_atten_t atten = ADC_ATTEN_DB_0;
|
||||||
|
static const adc_unit_t unit = ADC_UNIT_1;
|
||||||
|
|
||||||
//Check if Two Point or Vref are burned into eFuse
|
//Check if Two Point or Vref are burned into eFuse
|
||||||
check_efuse();
|
check_efuse();
|
||||||
|
|
||||||
//Configure ADC
|
//Configure ADC1
|
||||||
if (unit == ADC_UNIT_1) {
|
|
||||||
adc1_config_width(ADC_WIDTH_BIT_12);
|
adc1_config_width(ADC_WIDTH_BIT_12);
|
||||||
adc1_config_channel_atten((adc1_channel_t)channel, atten);
|
adc1_config_channel_atten(channel, atten);
|
||||||
} else {
|
|
||||||
adc2_config_channel_atten((adc2_channel_t)channel, atten);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Characterize ADC
|
//Characterize ADC1
|
||||||
esp_adc_cal_characteristics_t *adc_chars = (esp_adc_cal_characteristics_t *) calloc(1, sizeof(esp_adc_cal_characteristics_t));
|
esp_adc_cal_characteristics_t *adc_chars = (esp_adc_cal_characteristics_t *) calloc(1, sizeof(esp_adc_cal_characteristics_t));
|
||||||
esp_adc_cal_value_t val_type = esp_adc_cal_characterize(unit, atten, ADC_WIDTH_BIT_12, DEFAULT_VREF, adc_chars);
|
esp_adc_cal_value_t val_type = esp_adc_cal_characterize(unit, atten, ADC_WIDTH_BIT_12, DEFAULT_VREF, adc_chars);
|
||||||
print_char_val_type(val_type);
|
print_char_val_type(val_type);
|
||||||
|
|
||||||
//sample ADC
|
//sample ADC1
|
||||||
uint32_t adc_reading = 0;
|
uint32_t adc_reading = 0;
|
||||||
//Multisampling
|
//Multisampling
|
||||||
for (int i = 0; i < NO_OF_SAMPLES; i++) {
|
for (int i = 0; i < NO_OF_SAMPLES; i++) {
|
||||||
if (unit == ADC_UNIT_1) {
|
adc_reading += adc1_get_raw(channel);
|
||||||
adc_reading += adc1_get_raw((adc1_channel_t)channel);
|
|
||||||
} else {
|
|
||||||
int raw;
|
|
||||||
adc2_get_raw((adc2_channel_t)channel, ADC_WIDTH_BIT_12, &raw);
|
|
||||||
adc_reading += raw;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
adc_reading /= NO_OF_SAMPLES;
|
adc_reading /= NO_OF_SAMPLES;
|
||||||
|
|
||||||
//Convert adc_reading to voltage in mV
|
//Convert adc_reading to voltage in mV
|
||||||
uint32_t voltage = esp_adc_cal_raw_to_voltage(adc_reading, adc_chars);
|
uint32_t voltage = esp_adc_cal_raw_to_voltage(adc_reading, adc_chars);
|
||||||
ESP_LOGI(TAG,"Raw: %d\tVoltage: %dmV", adc_reading, voltage);
|
ESP_LOGI(TAG,"Raw: %d\tVoltage: %dmV", adc_reading, voltage);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C
|
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C
|
||||||
#define DISPLAY_FLIP 1 // rotated display
|
#define DISPLAY_FLIP 1 // rotated display
|
||||||
#define HAS_LED 23 // green on board LED_G3 (not in initial board version)
|
#define HAS_LED 23 // green on board LED_G3 (not in initial board version)
|
||||||
#define HAS_BATTERY_PROBE ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC_CHANNEL_7
|
#define HAS_BATTERY_PROBE ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC1_CHANNEL_7
|
||||||
|
|
||||||
// re-define pin definitions of pins_arduino.h
|
// re-define pin definitions of pins_arduino.h
|
||||||
#define PIN_SPI_SS 18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
|
#define PIN_SPI_SS 18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
|
||||||
|
Loading…
Reference in New Issue
Block a user