51 Serial.println(
"\n=== AXP202 Basic Example ===\n");
54 Serial.println(
"Failed to init AXP202!");
55 while (1) delay(1000);
57 Serial.println(
"AXP202 initialized");
59 Serial.println(
"\n--- Channel Test ---");
64 Serial.print(
"DCDC2: ");
66 Serial.println(
" mV");
71 Serial.print(
"LDO3: ");
73 Serial.println(
" mV");
78 Serial.print(
"LDO4: ");
80 Serial.println(
" mV");
82 Serial.print(
"Total channels: ");
90 Serial.print(info.name);
92 Serial.print(info.minMillivolt);
94 Serial.print(info.maxMillivolt);
96 Serial.print(
" Step: ");
97 Serial.print(info.stepMillivolt);
98 Serial.println(
" mV");
101 Serial.println(
"\n--- Charger Test ---");
107 charger->setFastChargeCurrent(500);
108 charger->enableCharging(
true);
109 Serial.print(
"CV: ");
110 Serial.print(charger->getChargeVoltage());
111 Serial.println(
" mV");
112 Serial.print(
"ICC: ");
113 Serial.print(charger->getFastChargeCurrent());
114 Serial.println(
" mA");
117 Serial.println(
"\n--- ADC Test ---");
135 Serial.println(
"\n=== Setup Complete ===\n");
140 static uint32_t lastPrint = 0;
142 if (millis() - lastPrint > 2000) {
143 lastPrint = millis();
145 Serial.println(
"\n--- Status ---");
150 Serial.print(
"Charging: ");
151 Serial.println(status.charging ?
"Yes" :
"No");
152 Serial.print(
"Vbus: ");
153 Serial.println(status.vbusPresent ?
"Present" :
"Absent");
159 Serial.print(
"VBUS: ");
161 Serial.println(
" mV");
164 Serial.print(
"VBUS: ");
166 Serial.println(
" mA");
169 Serial.print(
"VBAT: ");
171 Serial.println(
" mV");
174 Serial.print(
"IBAT: ");
176 Serial.println(
" mA");
179 Serial.print(
"TEMP: ");
181 Serial.println(
" C");
184 Serial.print(
"VSYS: ");
186 Serial.println(
" mV");
bool setMode(Mode mode) override
Set LED operating mode.
bool setManualState(ManualState state) override
Set the LED state in manual mode.
static constexpr uint8_t CH_LDO3
static constexpr uint8_t CH_DCDC2
static constexpr uint8_t CH_LDO4
Unified AXP202 PMIC driver.
AXP202Adc & adc()
Access the ADC interface (chip-specific)
PmicChannelBase * getChannel() override
Access the power channel control interface.
PmicChargerBase * getCharger() override
Access the charger interface.
AXP1xxLed< axp202_regs > & led()
bool begin(SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)
Initialise the PMIC using custom communication callbacks.
@ 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.
virtual uint16_t getVoltage(uint8_t channel)=0
Get the current output voltage of a channel.
virtual bool setVoltage(uint8_t channel, uint16_t mV)=0
Set the output voltage of a channel.
virtual uint8_t count() const =0
Get the number of power output channels available on this PMIC.
virtual bool enable(uint8_t channel, bool enable)=0
Enable or disable a power output channel.
virtual Info getInfo(uint8_t channel) const =0
Get static metadata for a specific channel.
virtual bool setChargeVoltage(uint16_t mV)=0
Set charge voltage (CV mode voltage)
virtual Status getStatus()=0
Get current charger status.
@ MANUAL
Manual control through registers.
bool enableChannels(uint32_t mask) override
Enable one or more ADC channels.