67 Serial.print(
"Capabilities:");
82 while (!Serial) delay(10);
84 Serial.println(
"\n=== PMIC Auto-Probe Example ===");
91 Serial.println(
" -> SY6970 detected at 0x6A");
94 Serial.println(
" -> BQ25896 detected at 0x6B");
97 Serial.println(
" -> AXP517 detected at 0x34");
101 Serial.println(
"ERROR: No PMIC detected! Check wiring.");
102 while (1) delay(1000);
105 Serial.print(
"\nChip: ");
109 printCapabilities(caps);
119 Serial.print(
"Pre-Charge Current: ");
121 Serial.println(
" mA");
122 Serial.print(
"Fast-Charge Current: ");
124 Serial.println(
" mA");
125 Serial.print(
"Termination Current: ");
127 Serial.println(
" mA");
128 Serial.print(
"Charge Voltage: ");
130 Serial.println(
" mV");
138 Serial.print(
"Input Current Limit: ");
140 Serial.println(
" mA");
141 Serial.print(
"Input Voltage Limit: ");
143 Serial.println(
" mV");
144 Serial.print(
"Min System Voltage: ");
146 Serial.println(
" mV");
153 Serial.println(
"\nSetup complete! Printing status every 3s...\n");
163 Serial.print(
"========== ");
165 Serial.println(
" Status ==========");
171 Serial.print(
"Online: ");
172 Serial.println(s.
online ?
"Yes" :
"No");
173 Serial.print(
"VBUS: ");
174 Serial.println(s.
vbusPresent ?
"Present" :
"Absent");
175 Serial.print(
"Battery: ");
177 Serial.print(
"Charging: ");
178 Serial.println(s.
charging ?
"Yes" :
"No");
179 Serial.print(
"Charge Done: ");
181 Serial.print(
"Fault: ");
182 Serial.println(s.
fault ?
"Yes" :
"No");
188 Serial.print(
"VBUS Voltage: ");
190 Serial.println(
" mV");
193 Serial.print(
"BAT Voltage: ");
195 Serial.println(
" mV");
198 Serial.print(
"VSYS Voltage: ");
200 Serial.println(
" mV");
203 Serial.print(
"BAT Current: ");
205 Serial.println(
" mA");
209 Serial.print(
"Boost: ");
211 Serial.print(
"Boost Voltage: ");
213 Serial.println(
" mV");
215 Serial.println(
"===================================\n");
High-level driver facade for the X-Powers AXP517 PMIC.
virtual bool read(Channel ch, float &out)=0
Read a single ADC channel value.
@ BAT_VOLTAGE
Battery voltage.
@ BAT_CURRENT
Battery current.
@ VBUS_VOLTAGE
VBUS voltage.
@ VSYS_VOLTAGE
VSYS voltage.
bool begin(SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)
Initialize using custom I2C callback.
PMIC Base Abstract Class.
virtual PmicCapability::Capability getCapabilities() const =0
Get PMIC capabilities.
virtual PmicLedBase & getLed()=0
Get LED interface.
virtual const char * getChipName() const =0
Get PMIC device name.
virtual PmicChargerBase * getCharger()
Get charger interface.
virtual PmicAdcBase & getAdc()=0
Get ADC interface.
virtual PmicPowerBase & getPower()=0
Get power management interface.
PMIC charger capability interface.
virtual uint16_t getPreChargeCurrent()=0
Get pre-charge current setting.
virtual bool setChargeVoltage(uint16_t mV)=0
Set charge voltage (CV mode voltage)
virtual Status getStatus()=0
Get current charger status.
virtual bool setFastChargeCurrent(uint16_t mA)=0
Set fast charge (constant-current) current.
virtual uint16_t getChargeVoltage()=0
Get charge voltage setting.
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 setPreChargeCurrent(uint16_t mA)=0
Set pre-charge current.
virtual bool setMode(Mode mode)=0
Set LED operating mode.
@ DISABLE
LED is disabled (if supported).
virtual bool setInputCurrentLimit(uint32_t ma)=0
Set the input current limit.
virtual bool setInputVoltageLimit(uint32_t mv)=0
Set the input voltage limit.
virtual bool isBoostEnabled() const
Check if boost functionality is enabled.
virtual uint32_t getInputCurrentLimit() const =0
Get the input current limit.
virtual uint32_t getMinimumSystemVoltage() const =0
Get the minimum system voltage.
virtual uint16_t getBoostVoltage() const
Get the boost voltage.
virtual bool setMinimumSystemVoltage(uint32_t mv)=0
Set the minimum system voltage.
virtual uint32_t getInputVoltageLimit() const =0
Get the input voltage limit.
bool begin(SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)
Initialize using custom I2C callback.
@ PmicSupportCharger
Battery charger support.
@ PmicSupportGpio
General purpose I/O support.
@ PmicSupportIrq
Interrupt handling support.
@ PmicSupportPower
Power management (input limits, boost, etc.)
@ PmicSupportAdc
Analog-to-Digital converter for monitoring.
@ PmicSupportLed
LED driver support.
@ PmicSupportPowerBtn
Power-on/Power-off control support.
@ PmicSupportBc12
BC1.2 (USB Battery Charging) support.
Charger status structure.
bool vbusPresent
VBUS detected / good (USB power present)
bool chargeDone
Charge termination/done (battery full)
bool fault
Any fault latched/active.
bool charging
Charging state (coarse: true if in precharge/fastcharge)
bool batteryPresent
Battery present and detected.
bool online
PMIC reachable / initialized.