usb30接口测试工具 (usb3.0测试工具) 注意事项

第一次使用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,体积小,性能较高


OLED屏

屏幕的原理图直接按照驱动芯片ssd1315的datasheet推荐设计来画。


eeprom

用于存储记录到的电压电流、曲线,用不到这个功能可以不加


PCB设计说明PCB使用四层板,四层板拥有更强的抗干扰能力,而且可以降低布线难度。VBUS开窗挂锡以增大载流。采样电阻布线使用开尔文接法。OLED屏放在另一块板上,与主板通过FFC排线连接。

3D外壳已经打印,奈何疫情原因,快递无法派送,导致后续实物展示里没有外壳。


软件说明

IDE使用STM32CubeIDE,固件库使用HAL库,初始化代码使用STM32CubeMX生成。

全部代码在附件里,这里仅展示局部。

电脑

多级菜单



实物展示说明

电脑


如果您认为对您有用,欢迎点赞转发或评论哦~

或者您有其他的建议,也欢迎在评论区指出!


更多精彩:

焊接工具 | DIY点锡膏机


电脑