|
CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
|
Public Member Functions | |
| BQ25895Power ()=default | |
IService implementation | |
| bool | init () override |
| Initializes charger hardware and applies safe boot defaults. | |
| bool | start () override |
| Starts power manager service state. | |
| void | stop () override |
| Stops power manager service state. | |
| core::ServiceState | getState () const override |
| const char * | getName () const override |
IPowerManager implementation | |
| uint16_t | getBatteryVoltage () const override |
| Returns measured battery voltage in millivolts. | |
| uint8_t | getBatteryPercent () const override |
| Estimates battery percentage from measured voltage. | |
| bool | isUsbConnected () const override |
| Returns cached USB power presence. | |
| PowerSource | getPowerSource () const override |
| Returns current active power source. | |
| ChargeStatus | getChargeStatus () const override |
| Returns cached charge-state machine value. | |
| bool | isBatteryLow () const override |
| Indicates low-battery threshold state. | |
| bool | isBatteryCritical () const override |
| Indicates critical-battery threshold state. | |
| bool | isBatteryPresent () const override |
| Returns whether a battery is considered present. | |
| void | setChargingEnabled (bool enabled) override |
| Enables or effectively disables charging current. | |
| void | enterShipMode () override |
| Requests battery ship mode via BATFET disconnect. | |
| void | update () override |
| Periodic power-manager update handling watchdog and IRQ-driven refresh. | |
| void | refresh () override |
| Forces a synchronous re-read of charger status registers. | |
| Public Member Functions inherited from cdc::hal::IPowerManager | |
| virtual | ~IPowerManager ()=default |
| Public Member Functions inherited from cdc::core::IService | |
| virtual | ~IService ()=default |
BQ25895 Power Manager Implementation
Definition at line 86 of file BQ25895Power.cpp.
|
default |
Referenced by getBatteryVoltage().
|
overridevirtual |
Requests battery ship mode via BATFET disconnect.
Implements cdc::hal::IPowerManager.
Definition at line 558 of file BQ25895Power.cpp.
References cdc::hal::BQ_REG_MISC, LOG_E, LOG_I, and TAG.
Referenced by update().
|
overridevirtual |
Estimates battery percentage from measured voltage.
Implements cdc::hal::IPowerManager.
Definition at line 480 of file BQ25895Power.cpp.
References cdc::hal::BATTERY_EMPTY_MV, cdc::hal::BATTERY_FULL_MV, and getBatteryVoltage().
Referenced by isBatteryCritical(), and isBatteryLow().
|
overridevirtual |
Returns measured battery voltage in millivolts.
Implements cdc::hal::IPowerManager.
Definition at line 457 of file BQ25895Power.cpp.
References BQ25895Power(), cdc::hal::BQ_REG_ADC_CTRL, and cdc::hal::BQ_REG_BATV.
Referenced by getBatteryPercent().
|
overridevirtual |
Returns cached charge-state machine value.
Implements cdc::hal::IPowerManager.
Definition at line 513 of file BQ25895Power.cpp.
|
inlineoverridevirtual |
Get service name (for logging/debugging)
Implements cdc::core::IService.
Definition at line 98 of file BQ25895Power.cpp.
|
overridevirtual |
Returns current active power source.
Implements cdc::hal::IPowerManager.
Definition at line 505 of file BQ25895Power.cpp.
References cdc::hal::BATTERY, and cdc::hal::USB.
|
inlineoverridevirtual |
Get current service state
Implements cdc::core::IService.
Definition at line 97 of file BQ25895Power.cpp.
|
overridevirtual |
Initializes charger hardware and applies safe boot defaults.
Implements cdc::core::IService.
Definition at line 215 of file BQ25895Power.cpp.
References BQ25895_ADDR, cdc::hal::BQ_REG_ADC_CTRL, cdc::hal::BQ_REG_CHG_CTRL, cdc::hal::BQ_REG_INPUT_CTRL, cdc::hal::BQ_REG_VENDOR, cdc::hal::BQ_SYS_MIN_MV, cdc::hal::CHARGE_CURRENT_SLOW, cdc::hal::charger_isr(), CHG_IRQ_PIN, cdc::core::ERROR, FLASH_BTN_PIN, cdc::hal::getI2cBus0(), cdc::core::INITIALIZED, LOG_E, LOG_I, cdc::core::STARTED, TAG, and cdc::core::UNINITIALIZED.
|
overridevirtual |
Indicates critical-battery threshold state.
Implements cdc::hal::IPowerManager.
Definition at line 529 of file BQ25895Power.cpp.
References getBatteryPercent().
|
overridevirtual |
Indicates low-battery threshold state.
Implements cdc::hal::IPowerManager.
Definition at line 521 of file BQ25895Power.cpp.
References getBatteryPercent().
|
overridevirtual |
Returns whether a battery is considered present.
Implements cdc::hal::IPowerManager.
Definition at line 537 of file BQ25895Power.cpp.
|
overridevirtual |
Returns cached USB power presence.
Implements cdc::hal::IPowerManager.
Definition at line 496 of file BQ25895Power.cpp.
|
overridevirtual |
Forces a synchronous re-read of charger status registers.
Implements cdc::hal::IPowerManager.
Definition at line 623 of file BQ25895Power.cpp.
|
overridevirtual |
Enables or effectively disables charging current.
| enabled | Desired charging enable state. |
Implements cdc::hal::IPowerManager.
Definition at line 545 of file BQ25895Power.cpp.
References cdc::hal::CHARGE_CURRENT_FAST, cdc::hal::CHARGE_CURRENT_MIN, cdc::hal::CHARGE_CURRENT_SLOW, LOG_I, and TAG.
|
overridevirtual |
Starts power manager service state.
Implements cdc::core::IService.
Definition at line 323 of file BQ25895Power.cpp.
References cdc::core::INITIALIZED, cdc::core::STARTED, and cdc::core::STOPPED.
|
overridevirtual |
Stops power manager service state.
Implements cdc::core::IService.
Definition at line 335 of file BQ25895Power.cpp.
References cdc::core::STARTED, and cdc::core::STOPPED.
|
overridevirtual |
Periodic power-manager update handling watchdog and IRQ-driven refresh.
Implements cdc::hal::IPowerManager.
Definition at line 591 of file BQ25895Power.cpp.
References cdc::hal::charger_irq_pending, enterShipMode(), FLASH_BTN_PIN, cdc::hal::kPowerButtonLongPressMs, LOG_W, and TAG.