30#include "../../../SensorBuildOpt.h"
31#if !SENSORLIB_EXCLUDE_PMIC_BQ25896
58 int ctrl = _core.
readReg(REG_PWR_ONOFF);
59 if (ctrl >= 0 && !(ctrl & MASK_CONV_START)) {
70 int val = _core.
readReg(REG_ADC_BUSV);
71 if (val < 0)
return false;
72 out = ((val & MASK_VBUSV) * VBUS_VOL_STEP) + VBUS_BASE_VAL;
76 int val = _core.
readReg(REG_ADC_BATV);
77 if (val < 0)
return false;
78 val = val & MASK_BATV;
83 out = (val * VBAT_VOL_STEP) + VBAT_BASE_VAL;
87 int val = _core.
readReg(REG_ADC_SYSV);
88 if (val < 0)
return false;
89 out = ((val & MASK_SYSV) * VSYS_VOL_STEP) + VSYS_BASE_VAL;
97 int val = _core.
readReg(REG_ADC_ICHGR);
98 if (val < 0 || (val & MASK_ICHGR) == 0) {
102 out = (val & MASK_ICHGR) * CHG_STEP_VAL;
106 int val = _core.
readReg(REG_ADC_NTC);
107 if (val < 0)
return false;
108 out = ((val & MASK_TSPCT) * NTC_VOL_STEP) + NTC_BASE_VAL;
112 int val = _core.
readReg(REG_ADC_BATV);
113 if (val < 0)
return false;
114 out = (val & MASK_THERM_STAT) ? 1.0f : 0.0f;
127 return _core.
updateBits(REG_PWR_ONOFF, MASK_CONV_START, MASK_CONV_START) >= 0;
132 uint8_t val = MASK_CONV_START;
134 val |= MASK_CONV_RATE;
136 return _core.
updateBits(REG_PWR_ONOFF, MASK_CONV_START | MASK_CONV_RATE, val) >= 0;
bool setContinuousMode(bool enable)
Enable or disable continuous ADC mode.
bool disableChannels(uint32_t mask) override
Disable ADC channels (no-op for BQ25896)
BQ25896Adc(BQ25896Core &core)
Construct ADC interface.
bool enableChannels(uint32_t mask) override
Enable one or more ADC channels.
bool read(Channel ch, float &out) override
Read ADC value for specified channel.
bool startConversion()
Start a single ADC conversion.
bool isVbusPresent()
Check if VBUS (USB power) is present.
bool isCharging()
Check if actively charging.
Channel
ADC channel bitmask.
@ BAT_PERCENTAGE
Battery percentage.
@ DIE_TEMPERATURE
Die temperature.
@ BAT_VOLTAGE
Battery voltage.
@ BAT_TEMPERATURE
Battery temperature.
@ BAT_CURRENT
Battery current.
@ VBUS_CURRENT
VBUS current.
@ VBUS_VOLTAGE
VBUS voltage.
@ VSYS_VOLTAGE
VSYS voltage.
int readReg(uint8_t reg) const
int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)