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

测量仪表

1490人已加入

描述

毕设介绍

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屏幕烧屏,在数据记录界面可以切换电压、电流、功率。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分