产品概述

单片机测量功率 「自制」USB测试仪(100w以上)基于单片机

小编 2025-09-05 产品概述 23 0

「自制」USB测试仪(100w以上)基于单片机

注意事项

第一次使用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点锡膏机

BL0939芯片:测量交流电的电压、电流和功率方案

工程师在开发一些交流电供电的项目时,可能会遇到一个电路设计问题,就是如何测量交流电的电压、电流和功率这三个参数。

比如交流电机,怎么测量通过交流电机的电流和它消耗的功率呢?

BL0939芯片,在芯片哥看来,或许就是其中的一个电路解决方案。

BL0939芯片引脚功能

芯片的IP1与IN1引脚,是测量交流电的电流信号;与IP2和IN2引脚的功能是类似的。

芯片的VP引脚,是测量交流电的电压信号;

通过这几个引脚,工程师就可以测量交流电路中的电压、电流和功率。测量的电压、电流和功率,是通过芯片的UART/SPI通信方式发送到单片机,被单片机读取。

既然能测量功率,就自然可以测量它消耗的电能。只是测量的电能,是通过芯片的CF引脚,以脉冲个数的形式发送到单片机,被单片机的中断引脚读取。

除了这些,BL0939芯片还能测量电路中的有功功率和相位角。这两个参数,单片机只需要读取芯片内部相应的寄存器数值就可以得到。

芯片的VT引脚,是连接温度传感器,直接可以测量当前的环境温度;ZX引脚,是芯片检测交流电过零的输出引脚。

过零检测波形

交流电在正半轴时,ZX引脚输出低电平;交流电在负半轴时,ZX引脚输出高电平;也就是ZX引脚高低电平切换的时候,就是交流电过零的时刻。

只是中间有个延时,大约为570us。也就是交流电在过零的时刻,芯片经过570us时间处理后,ZX引脚的高低电平才会变化。

现在来看一下BL9039芯片的应用电路

应用电路

电阻R8是交流电机的电流采样电阻,阻值为1mΩ,它两端的电压直接通过电阻R7和R9,输入到BL0939芯片的电流测量引脚IP1和IN1;

电阻R1 ~ R6,是电压测量的取样电阻,分压之后,输入到芯片的VP引脚。

单片机就可以通过SPI方式,读取需要测量的参数。

请持续关注芯片哥,后面会定期更新有关于电子元器件和芯片,包括一些电子产品项目开发案例的相关内容。

相关问答

32 单片机 功率 ?

32单片机的功耗是根据不同的工作环境有所不同,它与你的时钟频率、adc、dac外设是否工作,pwm、定时器外设是否工作,io端口配置等等息息相关。比如你的...32单...

怎么制作一个小型的12V转5V电源,供 单片机 使用?

如果你单片机系统功率不大的话直接用LM7805就可以了如果功率比较大的话则不要用LM7805,这个是串连稳压电源模块,功耗很大,本身发热很大,容易烧掉,那么我建...

89c51 单片机 ,能不能驱动大 功率 一点点的电机啊,因为做实验时,老是做驱动led灯的小 功率 实验~~?

单片机只是控制单元,可以通过它控制驱动单元去控制各种功率的电器,单片机只是控制单元,可以通过它控制驱动单元去控制各种功率的电器,

89c51 单片机 最大 功率 ?

1.89c51单片机的最大功率是5V。2.这是因为89c51单片机是一种8位微控制器,其工作电压范围为4V至5.5V。在这个电压范围内,它可以提供最大功率。3.值得延伸的...

怎么用万能表检测太阳能电池板的瓦数-ZOL问答

小功率的太阳能电池板可以测量,大功率的只用万用表是不行的。1、把光伏电池置于100mW/c㎡的光源照射下,且光伏电池输出两端开路时所测得的输出电压值。使用万...

单片机 驱动交流接触器的方法

[回答]它包括直流电磁继电器、交流电磁继电器、磁保持继电器、极化继电器、舌簧继电器,节能功率继电器。(1)直流电磁继电器:输入电路中的控制电流为直流...

关于电机 功率 和转速的确定。-盖德问答-化工人互助问答社区

建议下载《基于单片机的电机转速及功率因数测量电路设计》或《电机控制&变频等设计参考》此类文章看看。《电子电路网》有下载,网址如下:http:///...

如何确定所用电阻元件的额定 功率 ?

单片机系统的电源电压选定后,每个部件、元件的电流是可以计算或查相关数据表获得的,实际上在数字电路中除了定时用的电阻、电容要精确计算外,其他的电阻、电容...

单片机 晶振电路原理

电容大小没有固定值.一般二三十p.晶振是给单片机提供工作信号脉冲的.这个脉冲就是单片机的工作速度.比如12M晶振.单片机工作速度就是每秒12M.和电...

10A相位检测仪可以检测16a插座吗

一般是定性测量,比较好的是的一家和瑞士的一家。某宝上有个叫佳的测甲醛的仪器...结合单片机技术和网络通讯技术对检测场所采集空气样品,空气中的甲醛被酚试剂...

猜你喜欢