mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
brownout: Disable the hardware BOD when BOD interrupt is enabled
This commit is contained in:
parent
2a28061eaa
commit
a3d962d89a
@ -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.
|
||||
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.
|
||||
|
@ -10,6 +10,8 @@
|
||||
|
||||
void brownout_hal_config(const brownout_hal_config_t *cfg)
|
||||
{
|
||||
// If brownout software control is enabled, hw ana reset should be disabled, because it always has the highest priority.
|
||||
brownout_ll_ana_reset_enable(false);
|
||||
brownout_ll_set_intr_wait_cycles(2);
|
||||
brownout_ll_enable_flash_power_down(cfg->flash_power_down);
|
||||
brownout_ll_enable_rf_power_down(cfg->rf_power_down);
|
||||
|
@ -93,6 +93,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
RTCCNTL.int_ena.rtc_brown_out = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
// Not supported on ESP32
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
@ -96,6 +96,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
RTCCNTL.int_ena.rtc_brown_out = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
RTCCNTL.brown_out.ana_rst_en = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
@ -96,6 +96,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
RTCCNTL.int_ena.rtc_brown_out = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
RTCCNTL.brown_out.ana_rst_en = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
@ -96,6 +96,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
LP_ANA_PERI.int_ena.bod_mode0 = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
LP_ANA_PERI.bod_mode1_cntl.bod_mode1_reset_ena = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
@ -96,6 +96,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
LP_ANA_PERI.int_ena.bod_mode0_int_ena = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
LP_ANA_PERI.bod_mode1_cntl.bod_mode1_reset_ena = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
@ -97,6 +97,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
RTCCNTL.int_ena.rtc_brown_out = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
// Not supported on ESP32S2
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
@ -96,6 +96,16 @@ static inline void brownout_ll_intr_enable(bool enable)
|
||||
RTCCNTL.int_ena.rtc_brown_out = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enable brownout hardware reset
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
static inline void brownout_ll_ana_reset_enable(bool enable)
|
||||
{
|
||||
RTCCNTL.brown_out.ana_rst_en = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear interrupt bits.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user