Update XPowersLib

This commit is contained in:
lewishe 2023-03-23 10:05:00 +08:00
commit bfef36275a
7 changed files with 127 additions and 43 deletions

47
lib/XPowersLib/Kconfig Normal file
View file

@ -0,0 +1,47 @@
menu "XPowersLib Configuration"
choice PMU_Type
prompt "XPowers chip type"
default XPOWERS_CHIP_AXP2102 if IDF_TARGET_ESP32
default XPOWERS_CHIP_AXP192
help
Defines the default peripheral for xpowers example
config XPOWERS_CHIP_AXP2102
bool "Xpowers AXP2101"
config XPOWERS_CHIP_AXP192
bool "Xpowers AXP192"
endchoice
config I2C_MASTER_PORT_NUM
int "PMU I2C Port Number"
default 1
help
Port number for I2C Master device.
config I2C_MASTER_FREQUENCY
int "Master Frequency"
default 100000
help
I2C Speed of Master device.
config PMU_I2C_SCL
int "PMU SCL GPIO Num"
default 22
help
GPIO number for I2C PMU clock line.
config PMU_I2C_SDA
int "PMU SDA GPIO Num"
default 21
help
GPIO number for I2C PMU data line.
config PMU_INTERRUPT_PIN
int "PMU Interrupt Pin"
default 35
help
PMU interrupt pin.
endmenu

View file

@ -845,16 +845,16 @@ class AXP2101(I2CInterface):
def disableOverTemperaturePowerOff(self) -> None:
super().clrRegisterBit(_AXP2101_PWROFF_EN, 2)
def enablePwrOnOverVolOffLevelPowerOff(self) -> None:
def enableLongPressShutdown(self) -> None:
super().setRegisterBit(_AXP2101_PWROFF_EN, 1)
def disablePwrOnOverVolOffLevelPowerOff(self) -> None:
def disableLongPressShutdown(self) -> None:
super().clrRegisterBit(_AXP2101_PWROFF_EN, 1)
def enablePwrOffSelectFunction(self) -> None:
def setLongPressRestart(self) -> None:
super().setRegisterBit(_AXP2101_PWROFF_EN, 0)
def disablePwrOffSelectFunction(self) -> None:
def setLongPressPowerOFF(self) -> None:
super().clrRegisterBit(_AXP2101_PWROFF_EN, 0)
#!REG 23H

View file

@ -269,10 +269,10 @@ enablePwrSourcePullDown KEYWORD2
disablePwrSourcePullDown KEYWORD2
enableOverTemperatureLevel2PowerOff KEYWORD2
disableOverTemperaturePowerOff KEYWORD2
enablePwrOnOverVolOffLevelPowerOff KEYWORD2
disablePwrOnOverVolOffLevelPowerOff KEYWORD2
enablePwrOffSelectFunction KEYWORD2
disablePwrOffSelectFunction KEYWORD2
enableLongPressShutdown KEYWORD2
disableLongPressShutdown KEYWORD2
setLongPressRestart KEYWORD2
setLongPressPowerOFF KEYWORD2
enableDCHighVoltageTurnOff KEYWORD2
disableDCHighVoltageTurnOff KEYWORD2
enableDC5LowVoltageTurnOff KEYWORD2

View file

@ -1,30 +1,32 @@
{
"name": "XPowersLib",
"version": "0.1.4",
"description": "Arduino,CircuitPython,Micropython library for x-powers power management series",
"keywords": "AXP192 AXP202 AXP2101 x-powers",
"authors": [{
"name": "LewisHe",
"url": "https://github.com/lewisxhe",
"maintainer": true
}],
"repository": {
"type": "git",
"url": "https://github.com/lewisxhe/XPowersLib.git"
},
"homepage": "https://github.com/lewisxhe/XPowersLib",
"export": {
"include": [
"LICENSE",
"library.json",
"library.properties",
"README.md",
"keywords.txt",
"src/*",
"examples/*"
]
},
"frameworks": ["arduino", "espidf"],
"platforms": "esp32",
"headers": "XPowersLib.h"
}
"name": "XPowersLib",
"version": "0.1.5",
"description": "Arduino,CircuitPython,Micropython library for x-powers power management series",
"keywords": "AXP192 AXP202 AXP2101 x-powers",
"authors": [
{
"name": "LewisHe",
"url": "https://github.com/lewisxhe",
"maintainer": true
}
],
"repository": {
"type": "git",
"url": "https://github.com/lewisxhe/XPowersLib.git"
},
"homepage": "https://github.com/lewisxhe/XPowersLib",
"export": {
"include": [
"LICENSE",
"library.json",
"library.properties",
"README.md",
"keywords.txt",
"src/*",
"examples/*"
]
},
"frameworks": ["arduino", "espidf"],
"platforms": "esp32",
"headers": "XPowersLib.h"
}

View file

@ -1,5 +1,5 @@
name=XPowersLib
version=0.1.4
version=0.1.5
author=Lewis He
maintainer=Lewis He <lewishe@outlook.com>
sentence=Arduino,CircuitPython,Micropython library for x-powers power management series

View file

@ -796,22 +796,26 @@ public:
clrRegisterBit(XPOWERS_AXP2101_PWROFF_EN, 2);
}
void enablePwrOnOverVolOffLevelPowerOff()
// CHANGE: void enablePwrOnOverVolOffLevelPowerOff()
void enableLongPressShutdown()
{
setRegisterBit(XPOWERS_AXP2101_PWROFF_EN, 1);
}
void disablePwrOnOverVolOffLevelPowerOff()
// CHANGE: void disablePwrOnOverVolOffLevelPowerOff()
void disableLongPressShutdown()
{
clrRegisterBit(XPOWERS_AXP2101_PWROFF_EN, 1);
}
void enablePwrOffSelectFunction()
//CHANGE: void enablePwrOffSelectFunction()
void setLongPressRestart()
{
setRegisterBit(XPOWERS_AXP2101_PWROFF_EN, 0);
}
void disablePwrOffSelectFunction()
//CHANGE: void disablePwrOffSelectFunction()
void setLongPressPowerOFF()
{
clrRegisterBit(XPOWERS_AXP2101_PWROFF_EN, 0);
}
@ -1342,6 +1346,35 @@ public:
: clrRegisterBit(XPOWERS_AXP2101_DC_FORCE_PWM_CTRL, 7);
}
void enableCCM()
{
setRegisterBit(XPOWERS_AXP2101_DC_ONOFF_DVM_CTRL, 6);
}
void disableCCM()
{
clrRegisterBit(XPOWERS_AXP2101_DC_ONOFF_DVM_CTRL, 6);
}
bool isEanbleCCM()
{
return getRegisterBit(XPOWERS_AXP2101_DC_ONOFF_DVM_CTRL, 6);
}
enum DVMRamp {
XPOWERS_AXP2101_DVM_RAMP_15_625US,
XPOWERS_AXP2101_DVM_RAMP_31_250US,
};
//args:enum DVMRamp
void setDVMRamp(uint8_t opt)
{
if (opt > 2)return;
opt == 0 ? clrRegisterBit(XPOWERS_AXP2101_DC_ONOFF_DVM_CTRL, 5) : setRegisterBit(XPOWERS_AXP2101_DC_ONOFF_DVM_CTRL, 5);
}
/*
* Power control DCDC1 functions
*/

View file

@ -22,7 +22,9 @@ typedef XPowersAXP192 XPowersPMU;
#include "XPowersAXP2101.tpp"
typedef XPowersAXP2101 XPowersPMU;
#else
#error "Please define power management chip model"
#include "XPowersAXP192.tpp"
// #include "XPowersAXP202.tpp"
#include "XPowersAXP2101.tpp"
#endif