SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
axp517_power.ino
Go to the documentation of this file.
1
30#include <Arduino.h>
31#include <Wire.h>
32#include <PmicDrv.hpp>
33
34#ifndef PMIC_SDA
35#define PMIC_SDA 3
36#endif
37
38#ifndef PMIC_SCL
39#define PMIC_SCL 2
40#endif
41
42#ifndef PMIC_IRQ
43#define PMIC_IRQ 21
44#endif
45
47
48void setup()
49{
50 Serial.begin(115200);
51 delay(500);
52
53 Serial.println("\n=== AXP517 Power Example ===\n");
54
55 if (!pmic.begin(Wire, AXP517_SLAVE_ADDRESS, PMIC_SDA, PMIC_SCL)) {
56 Serial.println("Failed to init AXP517!");
57 while (1) delay(1000);
58 }
59
60 auto &power = pmic.power();
61
62 Serial.println("\n--- Configure Power ---");
63
64 // Minimum system voltage: 3.3V
65 power.setMinimumSystemVoltage(3300);
66 Serial.print("Min Sys: ");
67 Serial.print(power.getMinimumSystemVoltage());
68 Serial.println(" mV");
69
70 // Input voltage limit: 5V
71 power.setInputVoltageLimit(5000);
72 Serial.print("VIN Limit: ");
73 Serial.print(power.getInputVoltageLimit());
74 Serial.println(" mV");
75
76 // Input current limit: 2A
77 power.setInputCurrentLimit(2000);
78 Serial.print("IIN Limit: ");
79 Serial.print(power.getInputCurrentLimit());
80 Serial.println(" mA");
81
82 // Boost voltage: 5V
83 power.setBoostVoltage(5000);
84 Serial.print("Boost: ");
85 Serial.print(power.getBoostVoltage());
86 Serial.println(" mV");
87
88 Serial.println("\n=== Setup Complete ===\n");
89}
90
91void loop()
92{
93 static uint32_t lastPrint = 0;
94 static bool boostState = false;
95
96 if (millis() - lastPrint > 5000) {
97 lastPrint = millis();
98
99 auto &power = pmic.power();
100
101 // Toggle boost
102 boostState = !boostState;
103 power.enableBoost(boostState);
104
105 Serial.println("\n=== Power Settings ===");
106 Serial.print("Min Sys: ");
107 Serial.print(power.getMinimumSystemVoltage());
108 Serial.println(" mV");
109 Serial.print("VIN Limit: ");
110 Serial.print(power.getInputVoltageLimit());
111 Serial.println(" mV");
112 Serial.print("IIN Limit: ");
113 Serial.print(power.getInputCurrentLimit());
114 Serial.println(" mA");
115 Serial.print("Boost: ");
116 Serial.print(power.getBoostVoltage());
117 Serial.print(" mV (");
118 Serial.print(power.isBoostEnabled() ? "ON" : "OFF");
119 Serial.println(")");
120 }
121
122 delay(100);
123}
@license MIT License
PmicAXP517 pmic
#define PMIC_SDA
#define PMIC_SCL
void setup()
void loop()
bool enableBoost(bool enable) override
Enable boost functionality.
bool setMinimumSystemVoltage(uint32_t mv) override
Set the minimum system voltage.
High-level driver facade for the X-Powers AXP517 PMIC.
AXP517Power & power()
Access the AXP517 power-path driver.
bool begin(SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)
Initialization using a custom communication interface.