diff --git a/components/esp_system/README.md b/components/esp_system/README.md index b54343b21b..f01e59d828 100644 --- a/components/esp_system/README.md +++ b/components/esp_system/README.md @@ -26,4 +26,10 @@ If persistence is enabled, RTC time is also used in conjuction with system time. 4. RTC time (`esp_rtc_get_time_us`) -Time read from RTC timer. \ No newline at end of file +Time read from RTC timer. + +### Brownout + +on some boards, we name BOD1 as ana_bod, to unify the usage, using BOD1 in following passage. + +BOD1 will be a little faster then BOD0, but BOD0 can be widely used(can reset rf, flash, or using interrupt, etc.) So, in IDF code, we use BOD1 in bootloader and BOD0 in the app. diff --git a/components/hal/esp32c2/brownout_hal.c b/components/hal/esp32c2/brownout_hal.c index 64b42f73c2..285385648a 100644 --- a/components/hal/esp32c2/brownout_hal.c +++ b/components/hal/esp32c2/brownout_hal.c @@ -24,6 +24,8 @@ void brownout_hal_config(const brownout_hal_config_t *cfg) .ena = cfg->enabled, .rst_sel = 1, }; + // If brownout software control is enabled, hw ana reset should be disabled, because it always has the highest priority. + RTCCNTL.brown_out.ana_rst_en = false; RTCCNTL.brown_out = brown_out_reg; } diff --git a/components/hal/esp32c3/brownout_hal.c b/components/hal/esp32c3/brownout_hal.c index 7fa9a3b68f..912a020ed9 100644 --- a/components/hal/esp32c3/brownout_hal.c +++ b/components/hal/esp32c3/brownout_hal.c @@ -23,6 +23,8 @@ void brownout_hal_config(const brownout_hal_config_t *cfg) .ena = cfg->enabled, .rst_sel = 1, }; + // If brownout software control is enabled, hw ana reset should be disabled, because it always has the highest priority. + RTCCNTL.brown_out.ana_rst_en = false; RTCCNTL.brown_out = brown_out_reg; } diff --git a/components/hal/esp32h2/brownout_hal.c b/components/hal/esp32h2/brownout_hal.c index a08e4da50e..e9828b4142 100644 --- a/components/hal/esp32h2/brownout_hal.c +++ b/components/hal/esp32h2/brownout_hal.c @@ -25,6 +25,8 @@ void brownout_hal_config(const brownout_hal_config_t *cfg) .ena = cfg->enabled, .rst_sel = 1, }; + // If brownout software control is enabled, hw ana reset should be disabled, because it always has the highest priority. + RTCCNTL.brown_out.ana_rst_en = false; RTCCNTL.brown_out = brown_out_reg; } diff --git a/components/hal/esp32s3/brownout_hal.c b/components/hal/esp32s3/brownout_hal.c index 0836141b3d..59e79b5f13 100644 --- a/components/hal/esp32s3/brownout_hal.c +++ b/components/hal/esp32s3/brownout_hal.c @@ -25,6 +25,8 @@ void brownout_hal_config(const brownout_hal_config_t *cfg) .ena = cfg->enabled, .rst_sel = 1, }; + // If brownout software control is enabled, hw ana reset should be disabled, because it always has the highest priority. + RTCCNTL.brown_out.ana_rst_en = false; RTCCNTL.brown_out = brown_out_reg; }