fix DC/DC enable for boards which currently have it.

this fixes how the reg1 dc/dc converter is enabled on WisMesh Tag / T1000e / WM1110 and Xiao NRF52
This commit is contained in:
taco 2025-12-03 15:58:36 +11:00
parent dde9b7cc76
commit e1d3da942b
4 changed files with 33 additions and 6 deletions

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,7 +23,14 @@ static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
void WioWM1110Board::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(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);