SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
PmicChargerBase Class Referenceabstract

PMIC charger capability interface. More...

#include <PmicChargerBase.hpp>

Inheritance diagram for PmicChargerBase:
[legend]

Classes

struct  Status
 Charger status structure. More...
 

Public Types

enum class  ChargingStatus : uint8_t {
  NO_CHARGING = 0 , PRE_CHARGE = 1 , FAST_CHARGE = 2 , TERMINATION = 3 ,
  UNKNOWN = 0xFF
}
 Charging status enumeration. More...
 

Public Member Functions

virtual ~PmicChargerBase ()=default
 Virtual destructor.
 
virtual bool enableCharging (bool enable)=0
 Enable or disable charging.
 
virtual bool isCharging ()=0
 Check whether charger is currently charging.
 
virtual bool setPreChargeCurrent (uint16_t mA)=0
 Set pre-charge current.
 
virtual uint16_t getPreChargeCurrent ()=0
 Get pre-charge current setting.
 
virtual bool setFastChargeCurrent (uint16_t mA)=0
 Set fast charge (constant-current) current.
 
virtual uint16_t getFastChargeCurrent ()=0
 Get fast charge current setting.
 
virtual bool setTerminationCurrent (uint16_t mA)=0
 Set termination current.
 
virtual uint16_t getTerminationCurrent ()=0
 Get termination current setting.
 
virtual bool setChargeVoltage (uint16_t mV)=0
 Set charge voltage (CV mode voltage)
 
virtual uint16_t getChargeVoltage ()=0
 Get charge voltage setting.
 
virtual Status getStatus ()=0
 Get current charger status.
 

Detailed Description

PMIC charger capability interface.

Definition at line 58 of file PmicChargerBase.hpp.

Member Enumeration Documentation

◆ ChargingStatus

enum class PmicChargerBase::ChargingStatus : uint8_t
strong

Charging status enumeration.

Represents the current charging state of the battery charger.

Enumerator
NO_CHARGING 

Not charging, battery idle or disconnected.

PRE_CHARGE 

Pre-charge phase (low current for weak battery)

FAST_CHARGE 

Fast charge phase (constant current)

TERMINATION 

Charging terminated (battery full)

UNKNOWN 

Unable to determine status.

Definition at line 66 of file PmicChargerBase.hpp.

Constructor & Destructor Documentation

◆ ~PmicChargerBase()

virtual PmicChargerBase::~PmicChargerBase ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ enableCharging()

virtual bool PmicChargerBase::enableCharging ( bool  enable)
pure virtual

Enable or disable charging.

Parameters
enabletrue to enable charging, false to disable
Returns
true on success, false if not supported or I2C error
Note
When disabled, charging is stopped immediately
See also
isCharging()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

◆ getChargeVoltage()

virtual uint16_t PmicChargerBase::getChargeVoltage ( )
pure virtual

Get charge voltage setting.

Returns
Charge voltage in millivolts
See also
setChargeVoltage()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ getFastChargeCurrent()

virtual uint16_t PmicChargerBase::getFastChargeCurrent ( )
pure virtual

Get fast charge current setting.

Returns
Fast charge current in milliamps
See also
setFastChargeCurrent()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ getPreChargeCurrent()

virtual uint16_t PmicChargerBase::getPreChargeCurrent ( )
pure virtual

Get pre-charge current setting.

Returns
Pre-charge current in milliamps
See also
setPreChargeCurrent()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ getStatus()

virtual Status PmicChargerBase::getStatus ( )
pure virtual

Get current charger status.

Returns
Status structure with current charger state
Note
Different PMICs may not support all fields; unsupported fields will be default values

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by loop().

◆ getTerminationCurrent()

virtual uint16_t PmicChargerBase::getTerminationCurrent ( )
pure virtual

Get termination current setting.

Returns
Termination current in milliamps
See also
setTerminationCurrent()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ isCharging()

virtual bool PmicChargerBase::isCharging ( )
pure virtual

Check whether charger is currently charging.

Returns
true if charging is in progress, false otherwise
Note
Returns false in all states except PRE_CHARGE and FAST_CHARGE
See also
getStatus()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

◆ setChargeVoltage()

virtual bool PmicChargerBase::setChargeVoltage ( uint16_t  mV)
pure virtual

Set charge voltage (CV mode voltage)

Sets the constant voltage level during the CV (constant-voltage) phase of charging. Once the battery reaches this voltage, current decreases until termination current is reached.

Parameters
mVCharge voltage in millivolts (chip-specific range)
Returns
true on success, false if not supported or I2C error

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ setFastChargeCurrent()

virtual bool PmicChargerBase::setFastChargeCurrent ( uint16_t  mA)
pure virtual

Set fast charge (constant-current) current.

Fast charge is the main charging phase where the battery is charged at high constant current until it reaches the charge voltage threshold.

Parameters
mAFast charge current in milliamps (chip-specific range)
Returns
true on success, false if not supported or I2C error
Note
Typical range: 0-3008mA or higher depending on PMIC
See also
getFastChargeCurrent()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ setPreChargeCurrent()

virtual bool PmicChargerBase::setPreChargeCurrent ( uint16_t  mA)
pure virtual

Set pre-charge current.

Pre-charge is the initial charging phase for deeply discharged batteries. The battery is charged at a lower current until it reaches the pre-charge voltage threshold, then transitions to fast charge.

Parameters
mAPre-charge current in milliamps (chip-specific range)
Returns
true on success, false if not supported or I2C error
See also
getPreChargeCurrent()

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().

◆ setTerminationCurrent()

virtual bool PmicChargerBase::setTerminationCurrent ( uint16_t  mA)
pure virtual

Set termination current.

When the charge current drops below this threshold during the constant-voltage phase, charging is terminated (battery considered full).

Parameters
mATermination current in milliamps (chip-specific range)
Returns
true on success, false if not supported or I2C error

Implemented in SY6970Charger, BQ25896Charger, AXP1xxCharger< Regs >, AXP1xxCharger< axp192_regs >, AXP1xxCharger< axp202_regs >, AXP2101Charger, and AXP517Charger.

Referenced by setup().


The documentation for this class was generated from the following file: