使用单片机设计一款功率测试仪

使用单片机设计一款功率测试仪,第1张

毕设介绍

USB功率测试器,可测试目前几乎所有协议的快充,短时最高功率160W,长时间最大功率120W。

题目要求

使用单片机设计一款功率测试仪,外观不限,要求可显示电压、电流、功率,且输入最大功率100W以上。不得抄袭,不得使用成品模块。

题目分析

题目要求设计一款功率测试仪,我选择设计一款使用USB接口的可测试手机快充的功率计,具有一定便携性。

设计方案

使用单片机设计一款功率测试仪,pYYBAGLeZv-AHabGAABnG1anTNU660.png,第2张


 

原理图设计说明

降压电路

降压部分为MCU、INA220、OLED屏等提供3.3V电源,由于整个系统消耗的电流最大不会超过60mA,低负载下普通的DC-DC变换器效率较低,所以最好选择带burst、skip、pfm等轻载节能功能的芯片,这里用的是立创商城买的RY9320AT6,上/下管内阻100/50mΩ,频率500k,正常工作是PSM模式,轻载进入PFM模式。

实测5V供电时只需要从VUBS获取9mA电流,而在大部分快充的9-12V区间只需要4mA左右电流,大大降低了测量误差。

使用单片机设计一款功率测试仪,poYBAGLeZx2AZPVJAAB9tdy34yQ766.png,第3张

电压电流采样

INA220电源添加一颗去耦电容。A0、A1接地设置地址。

使用单片机设计一款功率测试仪,poYBAGLeZzOAHAgPAABYq7n-6so918.png,第4张

接口部分

A口使用5PIN定制接口,用于测试小米、OPPO的快充以及QC等使用普通A口的快充,Type-C接口主要用于测试PD快充。

这种A口实际上是把USB3.0的GND脚复用成了私有协议的识别脚,并且VBUS和GND加宽。

理论上直接用USB3.0接口也能识别,但USB3.0接口过不了太大电流有风险。

Type-C直接立创商城找个大电流的就行,注意不要用只有6PIN的那种“大电流”,因为少一对VBUS和GND。

使用单片机设计一款功率测试仪,pYYBAGLeZ1OAA135AAEgMweP0bY317.png,第5张

快充诱骗

本设计带有简单的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,这是为了给自家无线充电器供电。

使用单片机设计一款功率测试仪,pYYBAGLeZ3eAbrOQAAAsvokXQEQ156.png,第6张

串口下载

串口下载使用CH340K,使用RTS与DTR实现一键下载。

其实CH340K不要也行,调试的时候从板子上飞三根线下来接到CH340模块上,调试完再把飞线移除。

使用单片机设计一款功率测试仪,poYBAGLeZ5WAOUizAADw4sp3paM161.png,第7张

主控

主控使用stm32g030f6p6,体积小,性能较高。

使用单片机设计一款功率测试仪,poYBAGLeZ62AAxHtAAC2GLbVjHI578.png,第8张

OLED屏

使用单片机设计一款功率测试仪,poYBAGLeZ8SALz5qAAC0LqCI_cA572.png,第9张

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

使用单片机设计一款功率测试仪,pYYBAGLeZ9iAKsj1AAD-izdBLl8239.png,第10张


eeprom

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

使用单片机设计一款功率测试仪,poYBAGLeZ-yAdEhpAABWQzGBRe4303.png,第11张


 

PCB设计说明

PCB使用四层板,四层板拥有更强的抗干扰能力,而且可以降低布线难度。

VBUS开窗挂锡以增大载流。

采样电阻布线使用开尔文接法。

OLED屏放在另一块板上,与主板通过FFC排线连接。

使用单片机设计一款功率测试仪,poYBAGLeaAaAZiJSAAFuosd05B8643.png,第12张

使用单片机设计一款功率测试仪,pYYBAGLeaAuAa-eHAAElQgj2cmI234.png,第13张

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

使用单片机设计一款功率测试仪,poYBAGLeaCOASnpBAAEVbqZ78Qs324.png,第14张

软件说明

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

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

使用单片机设计一款功率测试仪,pYYBAGLeaD2ALeELAAEPRYpG5ew877.png,第15张

注意事项

第一次使用STM32G0芯片要谨防变砖!!

因为G0的启动方式默认不是由boot0引脚决定的,而是由内部nboot0 bit寄存器决定的,其默认值是1,如果到手直接往里烧一段程序就没法从System memory启动了。

要先使用STM32CubeProgrammer将OpTIon bytes-User ConfiguraTIon中nBOOT_SEL的勾去掉。这有点类似AVR单片机的配置熔丝。

使用单片机设计一款功率测试仪,poYBAGLeaFGAJiVkAAEzxBYF65E625.png,第16张

除功率检测和快充诱骗,还提供了屏幕亮度调整和简单的电压、电流曲线记录的功能。 

演示视频

从左往右第一个按键是选择键;第二三个是上、下键;最后一个是附加功能键,在主界面可以临时开/关显示,防止长时间测量造成OLED屏幕烧屏,在数据记录界面可以切换电压、电流、功率。




审核编辑:刘清

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2711635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存