第一次使用STM32G0芯片要谨防变砖!!
因为G0的启动方式默认不是由boot0引脚决定的,而是由内部nboot0 bit寄存器决定的。
其默认值是1,如果到手直接往里烧一段程序就没法从System memory启动了。
要先使用STM32CubeProgrammer将Option bytes-User Configuration中nBOOT_SEL的勾去掉。
这有点类似AVR单片机的配置熔丝。
除功率检测和快充诱骗,还提供了屏幕亮度调整和简单的电压、电流曲线记录的功能。
USB功率测试器,可测试目前几乎所有协议的快充,短时最高功率160W,长时间最大功率120W。
使用单片机设计一款功率测试仪,可显示电压、电流、功率,且输入最大功率100W以上。
题目要求设计一款功率测试仪,我选择设计一款使用USB接口的可测试手机快充的功率计,具有一定便携性。
设计方案
原理图设计说明
降压部分为MCU、INA220、OLED屏等提供3.3V电源,由于整个系统消耗的电流最大不会超过60mA,低负载下普通的DC-DC变换器效率较低,所以最好选择带burst、skip、pfm等轻载节能功能的芯片。
这里用的是立创商城买的RY9320AT6,上/下管内阻100/50mΩ,频率500k,正常工作是PSM模式,轻载进入PFM模式。
实测5V供电时只需要从VUBS获取9mA电流,而在大部分快充的9-12V区间只需要4mA左右电流,大大降低了测量误差。
INA220电源添加一颗去耦电容。A0、A1接地设置地址。
接口部分A口使用5PIN定制接口,用于测试小米、OPPO的快充以及QC等使用普通A口的快充,Type-C接口主要用于测试PD快充。
这种A口实际上是把USB3.0的GND脚复用成了私有协议的识别脚,并且VBUS和GND加宽。
理论上直接用USB3.0接口也能识别,但USB3.0接口过不了太大电流有风险。
Type-C直接立创商城找个大电流的就行,注意不要用只有6PIN的那种“大电流”,因为少一对VBUS和GND。
本设计带有简单的QC快充诱骗功能,可以当简易调压电源用。
QC2.0、QC3.0协议需要0、0.6V、3.3V三个电压,可以直接使用IO口模拟实现。
QC2.0支持5V、9V、12V、20V四个档位,其中20V档位只有极少数支持QC2.0 ClassB的充电头才支持,这也是后面演示视频中无法诱骗QC2.0 20V的原因。
QC3.0支持以200mV为步长进行连续调压,可输出4.4-20V。
大部分30W以上的小米的快充头QC3.0都能支持到20V,这是为了给自家无线充电器供电。
电脑串口下载使用CH340K,使用RTS与DTR实现一键下载。
其实CH340K不要也行,调试的时候从板子上飞三根线下来接到CH340模块上,调试完再把飞线移除。
主控使用stm32g030f6p6,体积小电脑,性能较高。
屏幕的原理图直接按照驱动芯片ssd1315的datasheet推荐设计来画。
电脑用于存储记录到的电压电流、曲线,用不到这个功能可以不加。
3D外壳已经打印,奈何疫情原因,快递无法派送,导致后续实物展示里没有外壳。
IDE使用STM32CubeIDE,固件库使用HAL库,初始化代码使用STM32CubeMX生成。
全部代码在附件里,这里仅展示局部。
多级菜单
如果您认为对您有用,欢迎点赞转发或评论哦~
或者您有其他的建议,也欢迎在评论区指出!
更多精彩:
焊接工具 | DIY点锡膏机
电脑