出去好奇用合宙家的 lot power 測了兩塊開發板的運行電流。
esp32 S3 (嘉立創開發板 8N8 版本)
模式???????? | 電流 |
downloa模式 | 49 毫安 |
空代碼 | 91? 毫安 |
light mode | 27 毫安 |
deep mode | 25 毫安 |
delay | ?40 毫安 |
esp32 C3 無串口芯片 (合宙 9.9 元版本)
模式???????? | 電流 |
downloa模式 | 11 毫安 |
空代碼 | 27 毫安 |
light mode | 576 微安 |
deep mode | 238 微安 |
delay | ?19 毫安 |
?空代碼
void setup() {}void loop() {}
deep 模式對應的代碼
void setup() {esp_deep_sleep_start();// esp_light_sleep_start();
}void loop() {// delay(20);
}
?light 模式對應的代碼
void setup() {
// esp_deep_sleep_start();
esp_light_sleep_start();
}
void loop() {// delay(20);
}
?delay 模式對應的代碼:
void setup() {
}void loop() {delay(20);
}
不科學的總結:
1,S3 整體比C3 電流高,當然兩者的芯片本身就查詢很大;
2,S3整體電流較高估計同串行通信芯片有關系;
3,C3 在deep 模式的時候有238微安,猜測主要同電源轉換芯片有關系,不過沒查datasheet.
4,? 這個對比基本上可以作為大家日常設計esp 系列的整體電流參考,因為你設計的其他PCB中降壓芯片和USB-TTL芯片基本都是不可缺少的,這基本上是標準配置。
5,嘉立創的S3 在某種情況下的deep mode 出現過500 微安,但是后來怎么折騰都沒有重現了。
6,偷懶,其實應該還可以運行一段時間后進入睡眠模式來測試
重要提示: 測試睡眠模式,如果出現找不到端口的話,請先按下boot不放,再按rst并松開。
補充說明,為了確定 deep mode 到底有沒有生效 ,通過以下代碼測試:
#include <Arduino.h>
#include "driver/rtc_io.h"
#include "hal/rtc_io_hal.h"void setup() {Serial.begin(115200);
// Serial.println("begin ...")
Serial.println("pls wait 20 sec to watch ...");
delay(20000);
Serial.println("begin ...");
rtc_gpio_isolate(GPIO_NUM_12);
esp_deep_sleep_start();// esp_light_sleep_start();
}void loop() {// delay(20);
}
lot power顯示的電流最初顯示60 ma,大概在20秒 delay后只有1毫安了。這個結果同上面最初的測試不相符。
?如果代碼是:
// #include <Arduino.h>
// #include "driver/rtc_io.h"
// #include "hal/rtc_io_hal.h"void setup() {// Serial.begin(115200);
// // Serial.println("begin ...")
// Serial.println("pls wait 20 sec to watch ...");
// delay(20000);
// Serial.println("begin ...");
// rtc_gpio_isolate(GPIO_NUM_12);
esp_deep_sleep_start();// esp_light_sleep_start();
}void loop() {// delay(20);
}
電流顯示是25毫安,但是偶發性會跳為1毫安左右,規律不知道。
如果代碼是:
#include <Arduino.h>
#include "driver/rtc_io.h"
#include "hal/rtc_io_hal.h"void setup() {// Serial.begin(115200);
// // Serial.println("begin ...")
// Serial.println("pls wait 20 sec to watch ...");
delay(2000);
// Serial.println("begin ...");
rtc_gpio_isolate(GPIO_NUM_12);
esp_deep_sleep_start();// esp_light_sleep_start();
}void loop() {// delay(20);
}
電流會首先是60 毫安,然后在2秒后降到了25毫安;一個比較有趣的現象是如果USB線不接電腦,直接接電源,那么會25毫安,然后2秒左右降到了8毫安。
如果把delay的時間延長到10秒
#include <Arduino.h>
#include "driver/rtc_io.h"
#include "hal/rtc_io_hal.h"void setup() {// Serial.begin(115200);
// // Serial.println("begin ...")
// Serial.println("pls wait 20 sec to watch ...");
delay(10000);
// Serial.println("begin ...");
rtc_gpio_isolate(GPIO_NUM_12);
esp_deep_sleep_start();// esp_light_sleep_start();
}void loop() {// delay(20);
}
把usb線不接入電腦,直接接入電源,大約10秒后,lot power顯示電流是1毫安左右,這一行為很穩定可以重現。
所以在這里懷疑是由于USB芯片和電腦有通信,產生了額外的電流,但是不明白那些額外的不穩定到底是為啥。
所有到最后的結論是S3 在deep模式下大概是1毫安的電流消耗,接入電腦的時候會由于不明的原因,例如usb通信,額外多20-40毫安的電流。