当前位置: 首页 > article >正文

#第七届立创电赛# 开源USB功率计:基于N32G452与LVGL的PD/QC协议检测与诱骗方案详解

手把手教你做一个开源USB功率计从硬件焊接、固件烧录到功能使用全攻略最近在捣鼓一个挺有意思的小玩意儿——一个能检测USB PD和QC快充协议还能“诱骗”充电器输出指定电压的USB功率计。这项目参加了第七届立创电赛硬件软件全部开源用的是国民技术的N32G452单片机界面用LVGL做的还挺好看。我自己做了一遍也踩了不少坑今天就把从拿到PCB板到最终能用的完整过程一步步分享给你。无论你是想自己做一个还是想学习里面的技术这篇文章都能帮到你。1. 项目概览这个小东西能干什么在开始动手之前咱们先搞清楚这个“Metoo USB Meter”到底是什么能做什么。简单说它就是一个功能强大的USB Type-C测试工具插在你的充电器和手机或其他设备之间。它的核心功能有这几个双向检测既能测充电器输出的电压、电流、功率也能测设备消耗的电能非常灵活。协议检测与诱骗这是它的“绝活”。能自动识别充电器支持的快充协议比如USB PD功率传输和QCQuick Charge。更厉害的是它能“诱骗”充电器输出你想要的电压比如让一个支持20V的PD充电器固定输出9V方便你测试设备在不同电压下的工作情况。数据显示与记录通过一块1.14寸的彩色屏幕实时显示电压、电流、功率、温度等信息还能切换显示平均值和最大值。它还能通过USB串口把带时间戳的数据发送到电脑方便你记录和分析。开源硬件PCB设计文件和软件单片机程序全部公开你可以自己研究、修改甚至二次开发。它的性能指标也不错电压测量范围2V到20V最大能测8A的电流完全覆盖了目前主流快充的规格。2. 硬件组装焊接与物料准备详解拿到PCB空板后第一件事就是焊接。原文作者提供了非常详细的焊接注意事项我结合自己的经验再强调一下。2.1 核心元器件清单与选型首先你得准备齐所有元件。下面是几个最关键的芯片也是选型时需要注意的元器件型号/规格说明与注意事项主控MCUN32G452CCL7国民技术的ARM Cortex-M4芯片性价比高资料全有中文手册。这是整个设备的大脑。电流传感器INA219AIDCNR作者用的型号。注意这颗芯片目前价格较高且不好买。你可以用功能类似的INA226或其他电流检测芯片替代但需要自己修改电路和程序。PD协议芯片FUSB302BMPX专门负责USB PD协议通信的芯片检测和诱骗功能都靠它。屏幕1.14寸 IPS屏驱动芯片是ST7789接口为8Pin插接。淘宝上很多“中景园”同款屏都可以用。Type-C母座夹板式用于连接充电器输入。购买链接参考Type-C公头夹板式用于连接被测设备输出。购买链接参考提示除了上表列出的其他都是常见的电阻、电容、电感。完整的物料清单BOM你可以在开源的工程文件里找到。2.2 焊接步骤与关键跳线设置焊接时请一定注意以下几点能帮你省去很多调试的麻烦封装与焊接大部分电阻电容是0402封装比较小。如果你觉得自己手焊有困难强烈建议使用嘉立创的SMT贴片服务只手工焊接剩下的几个大件就行。必须焊接的元件R42这个位置需要焊接一个0欧电阻或者直接用焊锡短接。Type-C接口加固Type-C插头和插座旁边有几个大的焊盘那是用来加固的一定要焊上否则频繁插拔容易把接口弄掉。可以不焊的元件简化版两个MOS管及旁边的下拉电阻这部分电路可以不焊不影响核心功能。FLASH芯片及其电容目前程序没用上外部存储可以不焊。SW5拨动开关把这个开关的第2脚剪掉不焊或者你直接修改PCB文件去掉相关电路。这是作者在V0.2版本中修正的一个设计。BOOT模式电阻关键R1和R37是决定单片机启动模式的电阻。根据你是要“下载程序”还是“正常运行”焊法不同只想下载好固件直接使用焊接R110k上拉电阻不焊接R37。下载完程序后必须把R1也拆掉否则设备无法正常启动。需要自己开发调试程序这两个电阻的焊接方式根据你的调试需求来通常都不焊通过调试器控制BOOT引脚。电感替换原理图上两个电感是4.7uH0603封装。作者测试时用了更大封装的C87640也能勉强放下。你可以先用手头有的电感只要参数接近就行。焊接完检查一下有没有虚焊、短路就可以进入下一步了。3. 软件准备固件下载与开发环境硬件准备好了接下来就是让设备“活”起来——烧录程序。3.1 最简单的方法直接下载固件使用如果你不想折腾编程只想得到一个能用的功率计按下面步骤做硬件设置确保PCB上的R1焊接了10k电阻R37不焊接。连接电脑用一根USB线将板子上的通讯接口也是一个Type-C口连接到电脑。下载工具从项目开源页面或原文附件下载Nations MCU Download Tool国民技术MCU下载工具。烧录固件打开下载工具选择对应的串口号。加载提供的.bin格式固件文件。点击下载等待烧录完成。恢复设置最重要的一步烧录完成后必须将R1电阻移除拆掉。否则单片机每次都会进入下载模式无法运行你刚烧进去的程序。完成这五步上电后屏幕应该就能亮了基本功能就可以用了。3.2 进阶之路获取源码与二次开发如果你想学习或修改代码就需要搭建开发环境。获取源代码项目的全部代码托管在Gitee上https://gitee.com/metoo0713/metoo_usb_meter你可以用Git克隆下来或者直接下载ZIP包。开发环境代码是基于ARM Keil MDK或IAR等嵌入式IDE开发的。你需要安装相应的软件并安装N32G452的器件支持包Pack这些在国民技术的官网都能找到。图形库界面使用的是LVGL这是一个轻量级、开源、强大的嵌入式图形库代码里已经移植好了。PD协议栈PD检测与诱骗的核心代码移植自一个优秀的开源项目PD_Micro(https://github.com/ryan-ma/PD_Micro)。如果你想深入研究PD协议这个项目是很好的资料。调试板子上预留了标准的SWD调试接口位号U9你可以用J-Link、ST-Link、DAP-Link等调试器连接进行单步调试、查看变量等这对于开发和学习非常有帮助。4. 功能使用指南按键、开关与安全须知设备通电启动后你会看到一个漂亮的彩色界面。怎么操作呢咱们来熟悉一下。4.1 界面与按键说明屏幕右上角有三个图标分别对应板子上的三个实体按键左、中、右。图标含义绿色对勾代表“确认”或“进入”功能。红色叉号代表“取消”或“返回”功能。短按/长按图标图标上会标注是支持短按一个点还是长按三个点。例如显示“...”表示这个按键在当前界面支持长按操作。基本操作逻辑通过中键短按可以在主界面切换显示电流、电压、功率的实时值、平均值和最大值。进入设置或协议菜单后通常用左/右键选择项目用中键确认。长按某个键往往用于返回上级菜单或触发特殊功能。4.2 两个重要开关的作用板子上有两个拨码开关它们的作用很关键独立供电开关打开功率计本身从通讯接口连接电脑的那个口取电。这样做的好处是测量充电器给设备供电的回路时完全排除了功率计自身耗电的影响测量结果最准确。推荐在精确测量时打开此开关。关闭功率计从被测的充电器取电。PD诱骗开关打开仅当你要使用PD协议的检测或诱骗功能时才打开此时FUSB302B芯片开始工作与充电器进行PD通信。关闭在进行QC协议检测/诱骗或者只进行普通的电压电流测量时必须关闭此开关否则可能会干扰正常测量。4.3 安全注意事项非常重要玩电源相关的东西安全永远是第一位的。警告在使用协议检测和诱骗功能时USB接口可能会输出5V以上的高电压如9V, 12V, 20V请务必确保此时连接在输出口上的设备能够承受相应电压否则极易烧毁设备调试时可以先接一个纯负载如电子负载进行测试。接口正反面当使用Type-C母头输入口进行PD检测或诱骗时如果发现功率计屏幕不亮尝试将Type-C电缆翻转180度再插入。这是因为有些线缆或充电器对CC引脚连接有要求。其他情况下一般不需要区分正反。散热在测量大电流如5A、8A时电流采样电阻和MOS管可能会发热这是正常现象但应注意通风避免长时间极端工况运行。5. 可能遇到的问题与解决思路最后分享几个我在制作过程中遇到的小坑希望能帮你顺利通关。屏幕不亮检查供电是否正常。最可能的原因R1电阻没有拆除如果R1焊着10k电阻MCU会一直卡在下载模式不会执行程序。请确认R1已拆除R37未焊接。检查屏幕排线是否插紧。PD/QC协议检测不到确认PD诱骗开关是否处于正确位置测PD时打开测QC时关闭。检查FUSB302B芯片是否焊接良好。尝试更换一条支持完整USB Type-C引脚定义的即支持数据传输的高质量Type-C线缆。电流测量不准如果使用了替代INA219的芯片如INA226请确认你已修改了软件中的相关驱动代码和校准参数。确保采样电阻应该是毫欧级的小阻值电阻焊接可靠没有虚焊。想替换INA219芯片正如作者所说INA219现在又贵又难买。替换是可行的比如用INA226。你需要修改原理图将芯片引脚连接对应好。修改PCB布局如果封装不同。在软件中替换原有的INA219驱动函数为INA226的驱动。主要修改I2C通信地址和读取电流、电压数据的寄存器解析部分。这个开源USB功率计项目麻雀虽小五脏俱全涵盖了MCU应用、外设驱动、图形界面、USB PD协议和电源测量等多个嵌入式开发的关键知识点。希望这篇详细的教程能帮你成功做出自己的功率计并在过程中学到实实在在的东西。如果遇到问题不妨多看看开源社区里的讨论或者自己动手调试一下这个过程本身就是最好的学习。

相关文章:

#第七届立创电赛# 开源USB功率计:基于N32G452与LVGL的PD/QC协议检测与诱骗方案详解

手把手教你做一个开源USB功率计:从硬件焊接、固件烧录到功能使用全攻略 最近在捣鼓一个挺有意思的小玩意儿——一个能检测USB PD和QC快充协议,还能“诱骗”充电器输出指定电压的USB功率计。这项目参加了第七届立创电赛,硬件软件全部开源&…...

Stable-Diffusion-V1-5 高清修复实战:从低分辨率草图到4K超清大图

Stable-Diffusion-V1-5 高清修复实战:从低分辨率草图到4K超清大图 你是不是也遇到过这样的烦恼?用Stable Diffusion生成了一张特别有感觉的图,构图、氛围都对味,但就是分辨率太低,放大一看全是模糊的像素块&#xff0…...

Phi-3-vision-128k-instruct入门实战:5分钟启动Chainlit界面并提问测试

Phi-3-vision-128k-instruct入门实战:5分钟启动Chainlit界面并提问测试 1. 快速了解Phi-3-vision-128k-instruct Phi-3-Vision-128K-Instruct是一个轻量级的多模态模型,支持文本和视觉数据的处理。这个模型特别适合需要处理图文交互的场景,…...

Qwen3-TTS声音克隆优化指南:提升声音克隆效果的实用技巧

Qwen3-TTS声音克隆优化指南:提升声音克隆效果的实用技巧 1. 声音克隆技术概述 声音克隆是当前语音合成领域最引人注目的技术之一,它允许我们通过少量样本音频,就能复制特定说话人的声音特征。Qwen3-TTS-12Hz-1.7B-Base模型在这方面表现出色…...

Qwen3-14B GPU算力适配指南:A10/A100/V100上int4 AWQ模型性能对比

Qwen3-14B GPU算力适配指南:A10/A100/V100上int4 AWQ模型性能对比 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4 AWQ量化版本,采用AngelSlim技术进行压缩优化。这个量化版本特别适合在资源受限的环境下部署,同时保持较高的文本…...

SpringBoot实战:Kaptcha验证码集成与前后端交互全流程解析

1. 为什么需要验证码? 验证码是现代Web应用中必不可少的安全组件。简单来说,它的核心作用就是区分人类用户和自动化程序。想象一下,如果没有验证码,恶意程序可以轻松地批量注册账号、刷票、暴力破解密码,甚至发起DDoS攻…...

墨语灵犀结合LSTM进行时间序列预测:原理与代码实现

墨语灵犀结合LSTM进行时间序列预测:原理与代码实现 最近在做一个金融数据分析的项目,客户提了个挺有意思的需求:能不能把新闻、社交媒体上的文字情绪,也加到股价预测模型里?毕竟,一条突发利空消息&#xf…...

嵌入式Linux系统部署PP-DocLayoutV3的优化技巧

嵌入式Linux系统部署PP-DocLayoutV3的优化技巧 1. 引言 在嵌入式Linux环境中部署文档布局分析模型PP-DocLayoutV3,就像是在小户型里布置一个功能齐全的工作室——空间有限但需求不减。这个模型能够精准识别文档中的表格、公式、文本区域,甚至支持多边形…...

零样本实战:RexUniNLU在用户评论情感分析与分类中的应用

零样本实战:RexUniNLU在用户评论情感分析与分类中的应用 你有没有遇到过这样的场景?产品上线后,用户评论如潮水般涌来,有夸赞的,有吐槽的,有提建议的,还有一堆你看不懂的“黑话”。老板让你分析…...

Youtu-Parsing实际案例:半导体晶圆测试报告→参数表格+良率热力图+缺陷分布Mermaid

Youtu-Parsing实际案例:半导体晶圆测试报告→参数表格良率热力图缺陷分布Mermaid 你是不是也遇到过这种情况?拿到一份几十页的半导体晶圆测试报告,里面密密麻麻全是数据表格、各种图表、还有手写的批注。想要把这些信息整理成结构化的数据&a…...

EasyAnimateV5-7b-zh-InP与LangChain集成:智能视频生成工作流

EasyAnimateV5-7b-zh-InP与LangChain集成:智能视频生成工作流 1. 引言 你是不是曾经遇到过这样的情况:手里有一张不错的静态图片,想要让它动起来变成视频,但又觉得视频制作太麻烦?或者作为一个开发者,你想…...

通义千问2.5-0.5B部署卡顿?RTX 3060 180 tokens/s优化实战

通义千问2.5-0.5B部署卡顿?RTX 3060 180 tokens/s优化实战 你是不是也遇到过这种情况:听说某个小模型特别轻量,号称能在树莓派上跑,结果自己拿到手,在RTX 3060上部署都感觉有点“肉”,生成速度远没达到宣传…...

DS4Windows进阶配置指南:解决PS4手柄在PC端的兼容性与性能优化问题

DS4Windows进阶配置指南:解决PS4手柄在PC端的兼容性与性能优化问题 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows DS4Windows作为一款专注于PlayStation控制器的Windows适配工…...

Qwen3-14b_int4_awq提示词工程指南:针对int4量化模型优化prompt的5个技巧

Qwen3-14b_int4_awq提示词工程指南:针对int4量化模型优化prompt的5个技巧 1. 理解Qwen3-14b_int4_awq模型特性 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4量化版本,采用AngelSlim技术进行压缩优化。这个版本特别适合在资源受限的环境中部署&#xf…...

Qt实战:5分钟搞定QTabWidget动态标签页管理(附完整代码示例)

Qt实战:高效管理动态标签页的5大核心技巧 1. 动态标签页的基础实现 在Qt应用开发中,QTabWidget是构建多页面界面的首选组件。通过代码动态管理标签页,可以实现更灵活的界面交互。我们先来看最基本的实现方式: // 创建主窗口中的QT…...

Wan2.1 VAE与Matlab仿真结合:为仿真结果自动生成分析报告插图

Wan2.1 VAE与Matlab仿真结合:为仿真结果自动生成分析报告插图 1. 引言 做仿真分析的朋友们,大概都有过这样的经历:在Matlab里跑完复杂的模型,终于得到了一堆数据图和动画帧。这些结果虽然精确,但直接放进报告或者演示…...

SenseVoiceSmall升级指南:从基础语音识别到富文本转录的完整方案

SenseVoiceSmall升级指南:从基础语音识别到富文本转录的完整方案 1. 引言 如果你用过传统的语音转文字工具,可能会发现一个问题:它们只能把声音变成文字,却听不懂声音里的“情绪”。比如,同样一句“我没事”&#xf…...

Cisco Packet Tracer新手必看:5分钟搞定VLAN划分与通信配置(附常见问题排查)

Cisco Packet Tracer实战:VLAN划分与通信配置全攻略 在当今网络工程领域,虚拟局域网(VLAN)技术已经成为企业网络架构中不可或缺的一部分。作为网络工程初学者,掌握VLAN的配置与管理是迈向专业网络工程师的重要一步。Ci…...

Qwen3-14b_int4_awq轻量部署教程:单卡A10/A100上运行14B级开源大模型

Qwen3-14b_int4_awq轻量部署教程:单卡A10/A100上运行14B级开源大模型 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4量化版本,采用AngelSlim技术进行压缩优化,专为文本生成任务设计。这个轻量化版本可以在单张A10或A100显卡上高…...

双MCU协同的智能小车循迹与视觉瞄准系统设计

1. 项目概述本系统为2025年全国大学生电子设计竞赛E题“简易自行瞄准装置”的参赛作品,实现小车循迹运动与云台视觉瞄准的双模协同控制。系统需在限定物理尺寸约束下完成三项核心任务:基础题一:小车沿正方形黑线轨迹完成指定圈数(…...

Phi-3-vision-128k-instruct参数详解:128K上下文、监督微调与DPO优化细节

Phi-3-vision-128k-instruct参数详解:128K上下文、监督微调与DPO优化细节 1. 模型概述 Phi-3-Vision-128K-Instruct是当前最先进的轻量级开放多模态模型,属于Phi-3系列的最新成员。该模型通过精心设计的数据集训练而成,融合了合成数据和经过…...

一键部署ChatGLM3-6B:Streamlit架构,开箱即用体验

一键部署ChatGLM3-6B:Streamlit架构,开箱即用体验 1. 项目概述 ChatGLM3-6B是智谱AI团队开源的一款强大语言模型,最新版本支持32k超长上下文记忆。本教程将带您快速部署基于Streamlit框架的ChatGLM3-6B本地版本,无需复杂配置即可…...

ESP32物联网时钟设计:双RTC冗余+MAX7219驱动数码管

1. 项目概述物联网时钟是一种融合嵌入式控制、无线通信与实时时钟技术的典型边缘节点设备。本项目以ESP32系列微控制器为核心,构建了一个具备网络时间同步能力、本地时间保持能力及高可靠性数码显示功能的独立时钟终端。其设计目标并非仅实现基础计时,而…...

Qwen3-14B轻量部署方案:Qwen3-14b_int4_awq在vLLM下启用flash-attn3加速实测

Qwen3-14B轻量部署方案:Qwen3-14b_int4_awq在vLLM下启用flash-attn3加速实测 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14B大语言模型的轻量化版本,通过AngelSlim技术进行了int4精度级别的AWQ量化压缩。这个版本特别适合在资源受限的环境下部署&…...

Phi-3-vision-128k-instruct入门指南:图文对话模型安全机制与指令遵循实测

Phi-3-vision-128k-instruct入门指南:图文对话模型安全机制与指令遵循实测 1. 模型简介与核心特点 Phi-3-Vision-128K-Instruct 是一款轻量级的多模态模型,专注于高质量的文本和视觉数据处理能力。作为 Phi-3 模型家族成员,它支持长达128K的…...

Flux2 Klein效果对比:动漫原图 vs 写实生成,细节还原度惊人

Flux2 Klein效果对比:动漫原图 vs 写实生成,细节还原度惊人 1. 模型核心能力解析 Flux2 Klein Anything to Real Characters LoRA 是一款基于 Flux.2-klein-9B 模型的轻量级微调模型,专门用于将动漫风格图片转换为写实风格。这个模型在保持…...

Gemma-3-270m镜像免配置原理:预编译GGUF、内置KV cache优化机制解析

Gemma-3-270m镜像免配置原理:预编译GGUF、内置KV cache优化机制解析 1. 开箱即用的秘密:预编译GGUF文件 你可能已经体验过,在CSDN星图镜像广场找到Gemma-3-270m的Ollama镜像,点击部署后,几乎不需要任何额外设置&…...

PDF-Parser-1.0实战:快速提取学术论文公式和表格,效率提升10倍

PDF-Parser-1.0实战:快速提取学术论文公式和表格,效率提升10倍 1. 学术研究者的痛点:当PDF成为数据孤岛 如果你是一名研究生、科研人员或者经常需要处理技术文档的工程师,下面这个场景你一定不陌生:导师发来一篇重要…...

5分钟搞定TurboDiffusion:清华视频生成加速框架,开箱即用

5分钟搞定TurboDiffusion:清华视频生成加速框架,开箱即用 1. TurboDiffusion简介与核心优势 1.1 什么是TurboDiffusion TurboDiffusion是一款革命性的视频生成加速框架,由清华大学联合多家顶尖机构共同研发。这个框架最大的特点就是快——…...

探索SMUDebugTool的创新调试能力:实战级AMD处理器性能优化指南

探索SMUDebugTool的创新调试能力:实战级AMD处理器性能优化指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...