Skip to content

ESP32C3F4H abnormal deep_sleep current leakage (reason : VDD_SPI must NOT be connected to the 3v3 rail) #7248

@0x0fe

Description

@0x0fe

Board

ESP32-C3 custom board

Device Description

custom board with ESP32C3F4H and ultra lo Iq LDO (500nA).

Hardware Configuration

external chips / peripherals have been remove or disconnected for the test,
some pullups are left :
0 ,1 ,2, 8 : 10K
10 : 100K

Version

v2.0.4

IDE Name

arduino IDE

Operating System

windows 10

Flash frequency

80M

PSRAM enabled

no

Upload speed

921600 (not relevant for CDC)

Description

The curent drawn in deep sleep is 2500uA, while it should be 5uA, obviously there is a leak somehwere, i suspect the GPIOs are not going into high impedance when i set them to ANALOG, or something else is wrong. I use the RTC timer deep sleep mode and disable other sources of wakeup.
If i use gpio_reset_pin then it cannot enters deep sleep at all. Since everything else is removed from the board i am now sure it comes from the ESP32C3, besides, the quiescent current has been tested valid when the ESP32C3 is removed (under 0.5uA).

Sketch

void gpios_hiz(void){
  
  pinMode(0, ANALOG);
  pinMode(1, ANALOG);
  pinMode(2, ANALOG);
  pinMode(3, ANALOG);
  pinMode(4, ANALOG);
  pinMode(5, ANALOG);
  pinMode(6, ANALOG);
  pinMode(7, ANALOG);
  pinMode(8, ANALOG);
  pinMode(9, ANALOG); is removed
  pinMode(10, ANALOG);
  
  pinMode(11, ANALOG); 
//  pinMode(12, ANALOG);
//  pinMode(13, ANALOG);
//  pinMode(14, ANALOG);
//  pinMode(15, ANALOG);
//  pinMode(16, ANALOG);
//  pinMode(17, ANALOG);
 
  pinMode(18, ANALOG);
  pinMode(19, ANALOG);
  pinMode(20, ANALOG);
  pinMode(21, ANALOG);

// this does not work and prevents entering deep sleep
//  for(int i = 0; i < SOC_GPIO_PIN_COUNT; ++i) {
//    if(GPIO_IS_VALID_GPIO(i) && !GPIO_IS_INTERNAL_FLASH_PIN(i)) {
//      gpio_reset_pin((gpio_num_t)i);
//    }
//  }
}
void deep_sleep_enter(void){
   
  esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
  esp_sleep_config_gpio_isolate();
  esp_deep_sleep(15*1000000);
}
void setup(){

  Serial.begin(115200);
  //while(!Serial)delay(1);
  printf("System ready");
  delay(8000);
  gpios_hiz();  
  deep_sleep_enter();  
}
void loop(){

}

Debug Message

none

Other Steps to Reproduce

none

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions