SensorLib 0.5.1
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
AXP517Charger Class Reference

AXP517 battery charger driver. More...

#include <AXP517Charger.hpp>

Inheritance diagram for AXP517Charger:
[legend]

Public Member Functions

 AXP517Charger (AXP517Core &core)
 Construct an AXP517 charger driver.
 
 ~AXP517Charger ()=default
 
bool enableCharging (bool enable) override
 Enable or disable charging.
 
bool isCharging () override
 Check whether charger is currently charging (best-effort).
 
bool enableBatteryTemperatureProtection (bool enable)
 Enable or disable TS-pin battery temperature protection.
 
bool isBatteryTemperatureProtectionEnabled ()
 Return true when the TS pin can affect charging.
 
bool setPreChargeCurrent (uint16_t mA) override
 Set pre-charge current.
 
uint16_t getPreChargeCurrent () override
 Get pre-charge current.
 
bool setFastChargeCurrent (uint16_t mA) override
 Set fast charge (constant-current) current.
 
uint16_t getFastChargeCurrent () override
 Get fast charge (constant-current) current.
 
bool setTerminationCurrent (uint16_t mA) override
 Set termination current.
 
uint16_t getTerminationCurrent () override
 Get termination current.
 
bool setChargeVoltage (uint16_t mV) override
 Set charge voltage (CV).
 
uint16_t getChargeVoltage () override
 Get charge voltage (CV).
 
Status getStatus () override
 Get current charger status (best-effort).
 
- Public Member Functions inherited from PmicChargerBase
virtual ~PmicChargerBase ()=default
 Virtual destructor.
 

Additional Inherited Members

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

Detailed Description

AXP517 battery charger driver.

Provides charge enable, charge-current configuration, charge-voltage configuration, termination-current configuration, and coarse charger status.

Definition at line 42 of file AXP517Charger.hpp.

Constructor & Destructor Documentation

◆ AXP517Charger()

AXP517Charger::AXP517Charger ( AXP517Core &  core)
explicit

Construct an AXP517 charger driver.

Parameters
coreShared AXP517 register transport.

Definition at line 37 of file AXP517Charger.cpp.

◆ ~AXP517Charger()

AXP517Charger::~AXP517Charger ( )
default

Member Function Documentation

◆ enableBatteryTemperatureProtection()

bool AXP517Charger::enableBatteryTemperatureProtection ( bool  enable)

Enable or disable TS-pin battery temperature protection.

Note
Disabling selects the external fixed-input function and turns off the TS current source, so an absent NTC cannot inhibit charging.
Parameters
enabletrue to use TS as the battery thermistor input.
Return values
trueon success, false on register access failure.

Definition at line 52 of file AXP517Charger.cpp.

References axp517_regs::ts::PIN_CFG, and SensorCommWrapper::updateBits().

◆ enableCharging()

bool AXP517Charger::enableCharging ( bool  enable)
overridevirtual

Enable or disable charging.

Parameters
enabletrue to enable charging, false to disable it.
Return values
trueon success, false on register access failure.

Implements PmicChargerBase.

Definition at line 42 of file AXP517Charger.cpp.

References axp517_regs::ctrl::MODULE_EN1, and SensorCommWrapper::updateBits().

◆ getChargeVoltage()

uint16_t AXP517Charger::getChargeVoltage ( )
overridevirtual

Get charge voltage (CV).

Returns
Charge voltage in millivolts, or 0 on register access failure.

Implements PmicChargerBase.

Definition at line 122 of file AXP517Charger.cpp.

References axp517_regs::chg::CV_CHG_VOLTAGE, and SensorCommWrapper::readReg().

◆ getFastChargeCurrent()

uint16_t AXP517Charger::getFastChargeCurrent ( )
overridevirtual

Get fast charge (constant-current) current.

Returns
Fast charge current in milliamps, or 0 on register access failure.

Implements PmicChargerBase.

Definition at line 81 of file AXP517Charger.cpp.

References axp517_regs::chg::ICC_SETTING.

◆ getPreChargeCurrent()

uint16_t AXP517Charger::getPreChargeCurrent ( )
overridevirtual

Get pre-charge current.

Returns
Pre-charge current in milliamps, or 0 on register access failure.

Implements PmicChargerBase.

Definition at line 71 of file AXP517Charger.cpp.

References axp517_regs::chg::IPRECHG_ITRICHG.

◆ getStatus()

AXP517Charger::Status AXP517Charger::getStatus ( )
overridevirtual

Get current charger status (best-effort).

Returns
Charger status mapped to the common PMIC status enum.

< 000: tri_charge 001: pre_charge 010: constant charge(CC) 011: constant voltage(CV) 100: charge done 101: not charging 11X: Reserved

Implements PmicChargerBase.

Definition at line 143 of file AXP517Charger.cpp.

References PmicChargerBase::FAST_CHARGE, PmicChargerBase::NO_CHARGING, PmicChargerBase::PRE_CHARGE, SensorCommWrapper::readReg(), axp517_regs::bmu::STATUS0, axp517_regs::bmu::STATUS1, PmicChargerBase::TERMINATION, and PmicChargerBase::UNKNOWN.

Referenced by isCharging(), isVbusPresentNow(), readStatusSnapshot(), and setup().

◆ getTerminationCurrent()

uint16_t AXP517Charger::getTerminationCurrent ( )
overridevirtual

Get termination current.

Returns
Termination current in milliamps, or 0 on register access failure.

Implements PmicChargerBase.

Definition at line 91 of file AXP517Charger.cpp.

References axp517_regs::chg::ITERM_CTRL.

◆ isBatteryTemperatureProtectionEnabled()

bool AXP517Charger::isBatteryTemperatureProtectionEnabled ( )

Return true when the TS pin can affect charging.

Definition at line 60 of file AXP517Charger.cpp.

References axp517_regs::ts::PIN_CFG, and SensorCommWrapper::readReg().

◆ isCharging()

bool AXP517Charger::isCharging ( )
overridevirtual

Check whether charger is currently charging (best-effort).

Return values
trueif charging, false otherwise.

Implements PmicChargerBase.

Definition at line 47 of file AXP517Charger.cpp.

References PmicChargerBase::Status::charging, and getStatus().

◆ setChargeVoltage()

bool AXP517Charger::setChargeVoltage ( uint16_t  mV)
overridevirtual

Set charge voltage (CV).

Parameters
mVDesired voltage in millivolts, range 3600-5000mV. Allowed values: 3600, 3800, 4000, 4100, 4200, 4350, 4400, 5000.
Return values
trueon success, false on register access failure.

Implements PmicChargerBase.

Definition at line 96 of file AXP517Charger.cpp.

References axp517_regs::chg::CV_CHG_VOLTAGE, SensorCommWrapper::readReg(), and SensorCommWrapper::writeReg().

◆ setFastChargeCurrent()

bool AXP517Charger::setFastChargeCurrent ( uint16_t  mA)
overridevirtual

Set fast charge (constant-current) current.

Parameters
mADesired current in milliamps, range 0-5120mA, steps 64mA.
Return values
trueon success, false on register access failure.

Implements PmicChargerBase.

Definition at line 76 of file AXP517Charger.cpp.

References axp517_regs::chg::ICC_SETTING.

◆ setPreChargeCurrent()

bool AXP517Charger::setPreChargeCurrent ( uint16_t  mA)
overridevirtual

Set pre-charge current.

Parameters
mADesired current in milliamps, range 0-960mA, steps 64mA.
Return values
trueon success, false on register access failure.

Implements PmicChargerBase.

Definition at line 66 of file AXP517Charger.cpp.

References axp517_regs::chg::IPRECHG_ITRICHG.

◆ setTerminationCurrent()

bool AXP517Charger::setTerminationCurrent ( uint16_t  mA)
overridevirtual

Set termination current.

Parameters
mADesired current in milliamps, range 0-960mA, steps 64mA.
Return values
trueon success, false on register access failure.

Implements PmicChargerBase.

Definition at line 86 of file AXP517Charger.cpp.

References axp517_regs::chg::ITERM_CTRL.


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