testing battery probe (experimental)
This commit is contained in:
		
							parent
							
								
									9c60a237cf
								
							
						
					
					
						commit
						5ca3ef72fd
					
				| @ -14,7 +14,7 @@ | ||||
| ;env_default = heltec | ||||
| ;env_default = ttgov1 | ||||
| ;env_default = ttgov2 | ||||
| ;env_default = ttgov21 | ||||
| env_default = ttgov21 | ||||
| ;env_default = lopy | ||||
| ;env_default = lopy4 | ||||
| ;env_default = fipy | ||||
|  | ||||
| @ -18,10 +18,6 @@ | ||||
| // Local logging tag
 | ||||
| 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() | ||||
| { | ||||
|     //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) | ||||
| { | ||||
|     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_efuse(); | ||||
| 
 | ||||
|     //Configure ADC
 | ||||
|     if (unit == ADC_UNIT_1) { | ||||
|         adc1_config_width(ADC_WIDTH_BIT_12); | ||||
|         adc1_config_channel_atten((adc1_channel_t)channel, atten); | ||||
|     } else { | ||||
|         adc2_config_channel_atten((adc2_channel_t)channel, atten); | ||||
|     } | ||||
|     //Configure ADC1
 | ||||
|     adc1_config_width(ADC_WIDTH_BIT_12); | ||||
|     adc1_config_channel_atten(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_value_t val_type = esp_adc_cal_characterize(unit, atten, ADC_WIDTH_BIT_12, DEFAULT_VREF, adc_chars); | ||||
|     print_char_val_type(val_type); | ||||
| 
 | ||||
|     //sample ADC
 | ||||
|     //sample ADC1
 | ||||
|     uint32_t adc_reading = 0; | ||||
|     //Multisampling
 | ||||
|     for (int i = 0; i < NO_OF_SAMPLES; i++) { | ||||
|         if (unit == ADC_UNIT_1) { | ||||
|             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 += adc1_get_raw(channel); | ||||
|     } | ||||
| 
 | ||||
|     adc_reading /= NO_OF_SAMPLES; | ||||
| 
 | ||||
|     //Convert adc_reading to voltage in mV
 | ||||
|     uint32_t voltage = esp_adc_cal_raw_to_voltage(adc_reading, adc_chars); | ||||
|     ESP_LOGI(TAG,"Raw: %d\tVoltage: %dmV", adc_reading, voltage); | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
| #define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C | ||||
| #define DISPLAY_FLIP  1 // rotated display
 | ||||
| #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
 | ||||
| #define PIN_SPI_SS    18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user