基于 PY32 和 INA219 的 USB3.0 电流表
py32 嘉立创eda 电子设计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. 实物图片
6. 相关链接
嘉立创开源广场(原理图、PCB、BOM 和 hex
固件)
代码仓库