
更小更廉价的USB3.0电流表
简介
基于 PY32F002A 和 INA219 的 USB3.0 电流表,成本不到 10 元,提供 Type-A 和 Type-C 版本
简介:基于 PY32F002A 和 INA219 的 USB3.0 电流表,成本不到 10 元,提供 Type-A 和 Type-C 版本开源协议
:MIT License
描述
基于 PY32 和 INA219 的 USB3.0 电流表
1. 项目简介
PY32F002A 是一款极具性价比的 32 位 MCU, 部分封装仅售 0.3 元起, 适合用于各种低成本的嵌入式应用. 本项目基于 PY32F002A 和 INA219 电流传感器, 实现了一个 USB3.0 电流表, 可以测量 USB3.0 设备的电流, 电压和功率.
2. 功能特性
- 量程:3.3V ~ 20V, 0 ~ 5A
- 在屏幕上显示电流,电压和功率
- 可通过串口输出数据
- 提供 Type-A 和 Type-C 两种版本
- 已接通所有 USB3.0 高速信号线,支持高速传输和快充协议(实测能达到 340 MB/s 传输速度并驱动 4k 60Hz 显示器)
3. 硬件设计
主要使用的芯片如下:
- PY32F002A: 32 位 MCU, 20KB Flash, 4KB RAM, 24MHz 主频
- INA219: 12 位 ADC, 电流传感器, I2C 接口
- LGS5148: 宽电压输入,可调输出的 Buck 降压芯片
- XC6206: 200mA 低压差稳压器
- SSD1306: 128x32 OLED 显示屏
- Type-A 接口使用沉板封装
- Type-C 接口使用 0.8mm 板厚的夹板封装
4. 注意事项
- 考虑到高速信号的阻抗匹配,两种版本均使用四层板。
- Type-A 版本使用 1.6mm 板厚,JLC04161H-3313 阻抗
- Type-C 版本使用 0.8mm 板厚,JLC04081H-3313 阻抗 (0.8mm 板厚可用沉金免费券)
- R1 为 INA219 的采样电阻,建议使用 2mΩ 电阻减少压降,也可使用 10mΩ 电阻或者更大的。使用其他阻值需要修改程序中的电流计算公式。
- 可以买一个 5W 的 USB 电阻负载来校准读数,修改
main.c中CURRENT_CALIBRATION的值。 - 立创 EDA 导出的 BOM 是正确的。
- 串口和 SWD 调试接口已经引出,可以使用兼容 DAPLink 的调试器进行下载和调试。
- Type-C 版本从母口供电时,示数会包括电流表自身的电流,可自行修改程序减掉这部分电流。
5. 实物图片



固件构建方法
代码仓库,附件提供代码 zip 包。
请注意需要根据实际使用的采样电阻值修改 这里的参数. 最好用一个已知阻值的纯电阻负载校准一下。
确保 Path 中已经安装了 arm-none-eabi-gcc 工具链和 cmake,在 Windows 上可以使用 Scoop 安装。
scoop install gcc-arm-none-eabi
scoop install cmake
另外需要使用 pip 安装 pyocd
pip install pyocd
克隆仓库并构建:
https://github.com/Duanyll/py32-ina219-usb-meter
cd py32-ina219-usb-meter
git submodule update --init
cmake -B build -S .
cmake --build build
烧录固件方法:使用支持 DAPLink 的调试器(如 DAPLink 模式的 WCH-LinkE)连接排母上的 GND,SWD,SWC,3V3 下载固件
cmake --build build --target flash
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










