50#define CHECK_FOR_ERRORS(condition) if (condition) {Serial.println("SY6970 error"); while(1)delay(1000);}
55 Serial.println(
"╔══════════════════════════════════════════╗");
56 Serial.println(
"║ SY6970 Charger Test ║");
57 Serial.println(
"╚══════════════════════════════════════════╝");
74 Serial.println(
"SY6970 begin() failed. Check wiring");
80 Serial.println(
"SY6970 initialized successfully");
98 Serial.print(
"Pre Charge Current: ");
100 Serial.print(
"Fast Charge Current: ");
102 Serial.print(
"Termination Current: ");
104 Serial.print(
"Charge Voltage: ");
114 Serial.print(
"Input Current Limit: ");
116 Serial.print(
"Input Voltage Limit: ");
118 Serial.print(
"Minimum System Voltage: ");
128 Serial.println(
"Setup complete!");
146 Serial.print(
"Fault Code: ");
150 if (isWatchdogTimeout(status.
faultCode)) {
151 Serial.println(
"\t Watchdog Fault");
154 Serial.println(
"\t Boost Mode Fault");
157 Serial.println(
"\t Charge Mode Fault");
158 if (isChargeInputFault(status.
faultCode)) {
159 Serial.println(
"\t - Input Fault (BUS OVP or VBAT<BUS<3.8V)");
161 if (isChargeThermalFault(status.
faultCode)) {
162 Serial.println(
"\t - Thermal Shutdown");
164 if (isChargeTimerFault(status.
faultCode)) {
165 Serial.println(
"\t - Safety Timer Expiration");
169 Serial.println(
"\t Battery Fault (BATOVP)");
171 uint8_t ntcFault = getNtcFault(status.
faultCode);
173 Serial.println(
"\t NTC Fault");
183 Serial.println(
"\n========== SY6970 Status ==========");
189 Serial.print(
"VBUS Voltage: ");
190 Serial.print(ret ? val : -1);
191 Serial.println(
" mV");
194 Serial.print(
"Battery Voltage: ");
195 Serial.print(ret ? val : -1);
196 Serial.println(
" mV");
199 Serial.print(
"VSYS Voltage: ");
200 Serial.print(ret ? val : -1);
201 Serial.println(
" mV");
204 Serial.print(
"Battery Current: ");
205 Serial.print(ret ? val : -1);
206 Serial.println(
" mA");
209 Serial.print(
"NTC Temperature: ");
210 Serial.print(ret ? val : -1);
211 Serial.println(
" %");
213 Serial.print(
"Charging: ");
217 Serial.print(
"Online: ");
218 Serial.println(status.
online ?
"Yes" :
"No");
219 Serial.print(
"VBUS Present: ");
221 Serial.print(
"Charge Done: ");
222 Serial.println(status.
chargeDone ?
"Yes" :
"No");
223 Serial.print(
"Fault: ");
224 Serial.println(status.
fault ?
"Yes" :
"No");
226 Serial.print(
"Boost Enabled: ");
229 Serial.print(
"Boost Voltage: ");
232 Serial.println(
"===================================\n");
@ BAT_VOLTAGE
Battery voltage.
@ BAT_TEMPERATURE
Battery temperature.
@ BAT_CURRENT
Battery current.
@ VBUS_VOLTAGE
VBUS voltage.
@ VSYS_VOLTAGE
VSYS voltage.
@ DISABLE
LED is disabled (if supported).
bool begin(SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)
Initialize using custom I2C callback.
SY6970Charger & charger()
Get charger interface.
static constexpr uint8_t ADC_CONV_START
ADC control flags.
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 setPreChargeCurrent(uint16_t mA) override
Set pre-charge current.
uint16_t getTerminationCurrent() override
Get termination current.
uint16_t getFastChargeCurrent() override
Get fast charge (constant-current) current.
bool setChargeVoltage(uint16_t mV) override
Set charge voltage (CV).
bool setFastChargeCurrent(uint16_t mA) override
Set fast charge (constant-current) current.
uint16_t getChargeVoltage() override
Get charge voltage (CV).
bool isCharging() override
Check whether charger is currently charging (best-effort).
Status getStatus() override
Get charger status.
uint16_t getPreChargeCurrent() override
Get pre-charge current.
bool setTerminationCurrent(uint16_t mA) override
Set termination current.
bool setMode(Mode mode) override
Set LED operating mode.
bool setInputCurrentLimit(uint32_t mA) override
Set input current limit.
bool isBoostEnabled() const override
Check if boost mode is enabled.
uint32_t getInputVoltageLimit() const override
Get input voltage limit.
uint32_t getInputCurrentLimit() const override
Get input current limit.
bool setInputVoltageLimit(uint32_t mv) override
Set input voltage limit (VINDPM)
bool setMinimumSystemVoltage(uint32_t mv) override
Set minimum system voltage.
uint16_t getBoostVoltage() const override
Get boost output voltage.
uint32_t getMinimumSystemVoltage() const override
Get minimum system voltage.
Charger status structure.
bool vbusPresent
VBUS detected / good (USB power present)
bool chargeDone
Charge termination/done (battery full)
uint32_t faultCode
Optional raw fault code for diagnostics.
bool fault
Any fault latched/active.
bool online
PMIC reachable / initialized.
volatile bool isFaultTrigger
#define CHECK_FOR_ERRORS(condition)