SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SY6970Adc.hpp File Reference

@license MIT License More...

#include "../../PmicAdcBase.hpp"
#include "SY6970Core.hpp"
Include dependency graph for SY6970Adc.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SY6970Adc
 

Detailed Description

@license MIT License

Copyright (c) 2026 lewis he

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Author
Lewis He (lewis.nosp@m.he@o.nosp@m.utloo.nosp@m.k.co.nosp@m.m)
Date
2026-04-09

SY6970 ADC (Analog-to-Digital Converter) Module Interface

This class provides access to the SY6970's integrated 12-bit ADC for monitoring various system parameters including battery voltage, system voltage, VBUS voltage, charge current, and NTC (Negative Temperature Coefficient) thermistor readings.

Channels

The SY6970 ADC supports the following measurement channels:

  • VBAT_VOLTAGE: Battery voltage (2304-4608mV, 20mV resolution)
  • VSYS_VOLTAGE: System voltage (2304-3700mV, 20mV resolution)
  • VBUS_VOLTAGE: USB input voltage (2600-15400mV, 100mV resolution)
  • BAT_CURRENT: Charge current (0-5056mA, 50mA resolution)
  • BAT_TEMPERATURE: NTC thermistor (21-100%, 0.465% resolution)
  • DIE_TEMPERATURE: Die temperature flag

Channels

The ADC can operate in two modes:

  • One-shot mode: Single conversion on demand (default)
  • Continuous mode: Repeated conversions at 1Hz or 8Hz

ADC conversions are controlled via REG_PWR_ONOFF (0x02):

  • Bit 7 (CONV_START): Initiates ADC conversion
  • Bit 6 (CONV_RATE): Sets continuous mode if set, one-shot if clear

Example

SY6970Adc &adc = pmic.adc();
float vbat;
Serial.print("VBAT: ");
Serial.print(vbat);
Serial.println(" mV");
PmicAXP192 pmic
AXP192Adc & adc()
Access the chip-specific ADC interface.
@ BAT_VOLTAGE
Battery voltage.
bool read(Channel ch, float &out) override
Read ADC value for specified channel.
Definition SY6970Adc.cpp:52
See also
SY6970Adc.cpp for implementation details
SY6970Regs.hpp for ADC register definitions and step values

Definition in file SY6970Adc.hpp.