Touch Enabled Deep Sleep Power is too high; please help
Posted: Sun Mar 18, 2018 7:39 am
Hello,
I am using an ESP32 WRoom module for a control application which needs to wake from deep sleep by one of two configured touch sensors and perform a brief update task then go back to deep sleep.
My module has:
1.) 5K ohm resistor connected from IO0 to VDD33
2.) 5K ohm resistor connected from IO2 to Vss
3.) 12K ohm resistor connected from EN to VDD33
4.) Isolated touch pads are connected to GPIO12 and 14, which are RTC_Touch 5 & 6.
VDD = 3.3
Along with all of the recommended capacitors.
When entering deep sleep mode and not enabling touch, my current reads at 5-6 uA. As expected!
However, by just adding a few lines of code to enable / configuring touch, my current jumps to 360uA.
********Code body*********
wakeup_time_sec = 10;
//touch enable code section (if omit this section, current during timer deep sleep is 5-6uA.
//with this section included, deep sleep current is 360 uA. Datasheet page 8-9 indicates 150uA
touch_pad_init();
touch_pad_config(TOUCH_PAD_NUM5, wakeup_right_val); //Right Touch
touch_pad_config(TOUCH_PAD_NUM6, wakeup_left_val); //Left Touch
printf("Enabling touch pad wakeup\n");
esp_sleep_enable_touchpad_wakeup();
//end of touch enable code
printf("Enabling timer wakeup, %ds\n", wakeup_time_sec);
esp_sleep_enable_timer_wakeup(wakeup_time_sec * 1000000);
//Setting deep sleep power down options
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_AUTO);
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_AUTO);
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_AUTO);
printf ("Touch Sleep On\n");
printf("Entering deep sleep\n");
esp_deep_sleep_start();
********End Code************
Any thoughts on what is using this current?
Flux Confused
I am using an ESP32 WRoom module for a control application which needs to wake from deep sleep by one of two configured touch sensors and perform a brief update task then go back to deep sleep.
My module has:
1.) 5K ohm resistor connected from IO0 to VDD33
2.) 5K ohm resistor connected from IO2 to Vss
3.) 12K ohm resistor connected from EN to VDD33
4.) Isolated touch pads are connected to GPIO12 and 14, which are RTC_Touch 5 & 6.
VDD = 3.3
Along with all of the recommended capacitors.
When entering deep sleep mode and not enabling touch, my current reads at 5-6 uA. As expected!
However, by just adding a few lines of code to enable / configuring touch, my current jumps to 360uA.
********Code body*********
wakeup_time_sec = 10;
//touch enable code section (if omit this section, current during timer deep sleep is 5-6uA.
//with this section included, deep sleep current is 360 uA. Datasheet page 8-9 indicates 150uA
touch_pad_init();
touch_pad_config(TOUCH_PAD_NUM5, wakeup_right_val); //Right Touch
touch_pad_config(TOUCH_PAD_NUM6, wakeup_left_val); //Left Touch
printf("Enabling touch pad wakeup\n");
esp_sleep_enable_touchpad_wakeup();
//end of touch enable code
printf("Enabling timer wakeup, %ds\n", wakeup_time_sec);
esp_sleep_enable_timer_wakeup(wakeup_time_sec * 1000000);
//Setting deep sleep power down options
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_AUTO);
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_AUTO);
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_AUTO);
printf ("Touch Sleep On\n");
printf("Entering deep sleep\n");
esp_deep_sleep_start();
********End Code************
Any thoughts on what is using this current?
Flux Confused