#第七届立创电赛# 开源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协议和电源测量等多个嵌入式开发的关键知识点。希望这篇详细的教程能帮你成功做出自己的功率计并在过程中学到实实在在的东西。如果遇到问题不妨多看看开源社区里的讨论或者自己动手调试一下这个过程本身就是最好的学习。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414914.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!