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

@license MIT License More...

#include <Arduino.h>
#include <Wire.h>
#include <PmicDrv.hpp>
Include dependency graph for axp517_pd_auto_request.ino:

Go to the source code of this file.

Macros

#define PMIC_SDA   3
 
#define PMIC_SCL   2
 
#define PMIC_IRQ   44
 
#define PD_TARGET_MV   9000
 
#define PD_TIMEOUT_MS   6000
 

Functions

void onPmicIrq ()
 
void printSourceCaps (const AXP517PdNegotiator::SourceCaps &caps)
 
void printIrqStatus (uint64_t status)
 
void printVbus ()
 
bool isVbusPresentNow ()
 
bool waitForVbusPresent (uint32_t timeoutMs)
 
bool isTcpcDetachAlert (uint64_t irqStatus, bool vbusPresent)
 
bool isTcpcSourceActivityAlert (uint64_t irqStatus)
 
bool isTcpcFaultAlert (uint64_t irqStatus)
 
bool isStickyTcpcAlert (uint64_t irqStatus)
 
void resetPdState (const char *reason)
 
void requestPdVoltage ()
 
bool handlePmicIrq ()
 
void drainPmicIrq ()
 
void setup ()
 
void loop ()
 

Variables

PmicAXP517 pmic
 
AXP517PdNegotiator::SourceCaps sourceCaps
 
volatile bool irqTriggered = false
 
bool pdReady = false
 

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-07-25

Definition in file axp517_pd_auto_request.ino.

Macro Definition Documentation

◆ PD_TARGET_MV

#define PD_TARGET_MV   9000

Definition at line 47 of file axp517_pd_auto_request.ino.

◆ PD_TIMEOUT_MS

#define PD_TIMEOUT_MS   6000

Definition at line 51 of file axp517_pd_auto_request.ino.

◆ PMIC_IRQ

#define PMIC_IRQ   44

Definition at line 43 of file axp517_pd_auto_request.ino.

◆ PMIC_SCL

#define PMIC_SCL   2

Definition at line 39 of file axp517_pd_auto_request.ino.

◆ PMIC_SDA

#define PMIC_SDA   3

Definition at line 35 of file axp517_pd_auto_request.ino.

Function Documentation

◆ drainPmicIrq()

void drainPmicIrq ( )

Definition at line 307 of file axp517_pd_auto_request.ino.

References handlePmicIrq(), and PMIC_IRQ.

Referenced by loop().

◆ handlePmicIrq()

◆ isStickyTcpcAlert()

◆ isTcpcDetachAlert()

bool isTcpcDetachAlert ( uint64_t  irqStatus,
bool  vbusPresent 
)

◆ isTcpcFaultAlert()

bool isTcpcFaultAlert ( uint64_t  irqStatus)

Definition at line 175 of file axp517_pd_auto_request.ino.

References AXP517Tcpc::AlertFault.

Referenced by handlePmicIrq().

◆ isTcpcSourceActivityAlert()

bool isTcpcSourceActivityAlert ( uint64_t  irqStatus)

Definition at line 168 of file axp517_pd_auto_request.ino.

References AXP517Tcpc::AlertPowerStatus, and AXP517Tcpc::AlertRxStatus.

Referenced by handlePmicIrq().

◆ isVbusPresentNow()

◆ loop()

void loop ( )

Definition at line 364 of file axp517_pd_auto_request.ino.

References drainPmicIrq(), irqTriggered, pdReady, PMIC_IRQ, and printVbus().

◆ onPmicIrq()

void onPmicIrq ( )

Definition at line 68 of file axp517_pd_auto_request.ino.

References irqTriggered.

Referenced by setup().

◆ printIrqStatus()

void printIrqStatus ( uint64_t  status)

Definition at line 98 of file axp517_pd_auto_request.ino.

Referenced by handlePmicIrq().

◆ printSourceCaps()

◆ printVbus()

void printVbus ( )

Definition at line 106 of file axp517_pd_auto_request.ino.

References pmic, AXP517Tcpc::readVbusMv(), and PmicAXP517::tcpc().

Referenced by loop(), and requestPdVoltage().

◆ requestPdVoltage()

◆ resetPdState()

◆ setup()

◆ waitForVbusPresent()

bool waitForVbusPresent ( uint32_t  timeoutMs)

Definition at line 131 of file axp517_pd_auto_request.ino.

References isVbusPresentNow().

Referenced by handlePmicIrq().

Variable Documentation

◆ irqTriggered

volatile bool irqTriggered = false

Definition at line 61 of file axp517_pd_auto_request.ino.

Referenced by loop(), and onPmicIrq().

◆ pdReady

bool pdReady = false

Definition at line 62 of file axp517_pd_auto_request.ino.

Referenced by handlePmicIrq(), loop(), requestPdVoltage(), and resetPdState().

◆ pmic

◆ sourceCaps

Definition at line 59 of file axp517_pd_auto_request.ino.

Referenced by requestPdVoltage(), and resetPdState().