AXP173【电源管理芯片】超详细注释
简介
让你的产品获得手机般电源管理(长按开关机短按息屏,多路LDO&DCDC电源分配(电压可调)可调充电电压电流等等),所有库函数保姆级注释写法和用法!!!
简介:让你的产品获得手机般电源管理(长按开关机短按息屏,多路LDO&DCDC电源分配(电压可调)可调充电电压电流等等),所有库函数保姆级注释写法和用法!!!开源协议
:GPL 3.0
描述
-------------12.9更新-------------
概述:加入了菜单功能,按键和电池信息可以通过菜单切换!!!!
1.此次更新引入onebutton库,支持按键单击双击长按功能。现在电源芯片PEK实现了2s(可调)开机,短按息屏(可自定义功能),长按1.5s(可调)类似手机的语音助手呼出(可自定义功能),继续长按6s(可调)关机,目前通过检测IRQ实现,后期会把PEK也加入onebutton管理,做到类似手机的双击(可调)拍照功能等等。目前有意构思电源电量计算算法,通过库仑计与电池电压推测,融合电池温度等等达到精确预测电池电量预计充电时间与关机时间等等,但是相对资料较少(没有),大多都是手机商机密,所以如果有喜欢的小伙伴or大佬可以和我一起分享研究,十分感谢您!!!
2.代码更新基本在GitHub完成,硬件方面主要更新在这里!!!
3.请注意:如果您是Arduino开发板用户,遇到严重报错时是因为Arduino 不支持 "printf", 请全部替换为 "print" 或 "println"!!!
4.ArduinoUNO/nano/micro/mini等等由于内存大小原因无法使用U8G2LOG,因此该次更新除非扩展外部Flash否则不可用,只能使用simpleDemo!!!(simpleDemo未使用U8G2,支持小内存设备)
-------------11.26更新-------------
已经把该芯片用在自己的下一个开源项目上了,硬件调试没有任何问题,所有功能正常,现在在爆肝代码,大约年后会开源出来!!!
-------------10.22更新-------------
公告:源码尽量去Github下载,附件里的程序更新时间为10.9日,GitHub可以实时更新源码。不会clone也可以直接下载.zip
代码优化:添加了日志打印库,方便硬件调试
-------------10.9更新-------------
1.由于该芯片可以定制,输出种类参差不齐,务必购买链接中的通用版本,否则IIC会无法读写!!!
2. 使用在自己项目之前请先用我的或者你自己画的PCB学习一下芯片用法与功能!!!
3. 附件压缩包解压后的文件夹,直接放入arduino库即可(这是我的,一般都在文档文件夹里C:\Users\69180\Documents\Arduino\libraries),需下载U8G2图形库支持屏幕的显示!!!之后直接可以在arduino示例中找到!!!
4. 考虑到一部分人用arduino ide写代码,所以关键字都设置了高亮!!!
5. 代码优化:
- 把枚举体从类中提取出来,免去主函数中需要引用类写法
(例子)
改前:AXP173::OP_LDO2
改后:OP_LDO2
- 把对象声明在库里完成,不需要在主函数里声明
- 添加keywords.txt文件
6. 以后代码会更新在GitHub和群里,这里只更新教程和内容!!!
三根数据线&1.6元&超小PCB布局&超低功耗。可以让你的设备获得手机一般的电源管理。
本库寄存器读写方式主要借鉴了m5stack官网的AXP192库。IIC_PORT库来自 Forairaaaaa 大佬。该芯片的通用版本感谢 liuzewen 大佬指路,否则由于该芯片的定制特性导致默认输出不一样IIC无法通讯。
自己注释了所有函数!!!以及编写了其它自己需要的函数。比如通过识别IRQ中断引脚与中断寄存器设置长按关机与短按息屏等等,还可以自己设置息屏后关闭哪些输出等等。
你可以用它做:蓝牙键盘的充电管理,开发板的充电管理,微型手表的充电管理,小电视的充电管理……等等等等等等等等
某宝链接:AXP173(LDO4默认输出版本)
使用方法:见文中接线图与b站视频演示(请先参阅程序,接线,pcb以及数据手册,人多了会抽时间写更详细的文档)
其它:文档后续会持续完善,最近比较忙。不懂得可以先来QQ群问:735791683
GitHub链接🔗:https://github.com/HwzLoveDz/AXP173-PMIC.git
b站视频链接🔗:【[自制开源]AXP173 PMIC电源管理芯片最全资料-哔哩哔哩】 https://b23.tv/QMnHXd9
arduino,esp8266,esp32等等直接无需移植,直接拿来即用
芯片基本功能(基本榨干常用功能)
先看板子
以下是接线框图(这里不太详细,等过段时间单出一个框图,记住不仅要共地而且MCU必须是由电源芯片供电,否则无法运行,USBttl电路应设计在电源芯片前,否则USB芯片给MCU供电造成电流倒灌,串口监测数据失败或不准!!!)
再看胎教级注释(注释比程序多系列)
设置电源输出,ADC使能,库仑计使能,外接锂电池充电电流等等
获取信息
按键事件(这里由于是测试代码,我直接用if实现,大型代码请自行使用线程中断)
打印电池相关信息
充电中
未充电
短按键息屏+长按键关机功能(需要设置IRQ中断引脚)视频演示比较清楚
评论