2023-08-10 11:26:31 | 人围观 | 评论:
毕设介绍
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,体积小,性能较高。
OLED屏
屏幕的原理图直接按照驱动芯片ssd1315的datasheet推荐设计来画。
eeprom
用于存储记录到的电压电流、曲线,用不到这个功能可以不加。
PCB设计说明
PCB使用四层板,四层板拥有更强的抗干扰能力,而且可以降低布线难度。
VBUS开窗挂锡以增大载流。
采样电阻布线使用开尔文接法。
OLED屏放在另一块板上,与主板通过FFC排线连接。
3D外壳已经打印,奈何疫情原因,快递无法派送,导致后续实物展示里没有外壳。
软件说明
IDE使用STM32CubeIDE,固件库使用HAL库,初始化代码使用STM32CubeMX生成。
全部代码在附件里,这里仅展示局部。
注意事项
第一次使用STM32G0芯片要谨防变砖!!
因为G0的启动方式默认不是由boot0引脚决定的,而是由内部nboot0 bit寄存器决定的,其默认值是1,如果到手直接往里烧一段程序就没法从System memory启动了。
要先使用STM32CubeProgrammer将Option bytes-User Configuration中nBOOT_SEL的勾去掉。这有点类似AVR单片机的配置熔丝。
除功率检测和快充诱骗,还提供了屏幕亮度调整和简单的电压、电流曲线记录的功能。
演示视频
从左往右第一个按键是选择键;第二三个是上、下键;最后一个是附加功能键,在主界面可以临时开/关显示,防止长时间测量造成OLED屏幕烧屏,在数据记录界面可以切换电压、电流、功率。
审核编辑:刘清
全站搜索