Merge pull request #1172 from oltaco/nrf52-power-changes

NRF52 Power related changes
This commit is contained in:
ripplebiz
2025-12-03 17:50:15 +11:00
committed by GitHub
5 changed files with 33 additions and 9 deletions

View File

@@ -11,8 +11,6 @@ void MinewsemiME25LS01Board::begin() {
pinMode(PIN_VBAT_READ, INPUT);
sd_power_mode_set(NRF_POWER_MODE_LOWPWR);
#ifdef BUTTON_PIN
pinMode(BUTTON_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);

View File

@@ -21,7 +21,15 @@ static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
void RAKWismeshTagBoard::begin() {
// for future use, sub-classes SHOULD call this from their begin()
startup_reason = BD_STARTUP_NORMAL;
NRF_POWER->DCDCEN = 1;
// Enable DC/DC converter for improved power efficiency
uint8_t sd_enabled = 0;
sd_softdevice_is_enabled(&sd_enabled);
if (sd_enabled) {
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
} else {
NRF_POWER->DCDCEN = 1;
}
pinMode(PIN_VBAT_READ, INPUT);
pinMode(PIN_USER_BTN, INPUT_PULLUP);

View File

@@ -9,10 +9,14 @@ void T1000eBoard::begin() {
startup_reason = BD_STARTUP_NORMAL;
btn_prev_state = HIGH;
sd_power_mode_set(NRF_POWER_MODE_LOWPWR);
// Enable DC/DC converter for improved power efficiency
NRF_POWER->DCDCEN = 1;
uint8_t sd_enabled = 0;
sd_softdevice_is_enabled(&sd_enabled);
if (sd_enabled) {
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
} else {
NRF_POWER->DCDCEN = 1;
}
#ifdef BUTTON_PIN
pinMode(BATTERY_PIN, INPUT);

View File

@@ -23,8 +23,14 @@ static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
void WioWM1110Board::begin() {
startup_reason = BD_STARTUP_NORMAL;
sd_power_mode_set(NRF_POWER_MODE_LOWPWR);
NRF_POWER->DCDCEN = 1;
// Enable DC/DC converter for improved power efficiency
uint8_t sd_enabled = 0;
sd_softdevice_is_enabled(&sd_enabled);
if (sd_enabled) {
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
} else {
NRF_POWER->DCDCEN = 1;
}
pinMode(BATTERY_PIN, INPUT);
pinMode(LED_GREEN, OUTPUT);

View File

@@ -23,7 +23,15 @@ static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
void XiaoNrf52Board::begin() {
// for future use, sub-classes SHOULD call this from their begin()
startup_reason = BD_STARTUP_NORMAL;
NRF_POWER->DCDCEN = 1;
// Enable DC/DC converter for improved power efficiency
uint8_t sd_enabled = 0;
sd_softdevice_is_enabled(&sd_enabled);
if (sd_enabled) {
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
} else {
NRF_POWER->DCDCEN = 1;
}
pinMode(PIN_VBAT, INPUT);
pinMode(VBAT_ENABLE, OUTPUT);