
【已验证】基于南京沁恒CH571F单片机的USB检测器
简介
不会有人看的
简介:不会有人看的开源协议
:GPL 3.0
描述
CH571F高精度电流检测计开源项目
项目概述
本开源项目基于沁恒CH571F蓝牙MCU与TI INA226电流检测芯片,搭配10mΩ高精度采样电阻,实现0-36V/±3.2A范围的电流电压检测系统。具备BLE 5.1无线传输和USB-CDC有线传输双模通信,采样率可达1kHz,精度±0.5% FS。
GitHub仓库:[项目链接]
(固件代码见评论区置顶链接)
硬件设计
核心器件
CH571F:RISC-V内核蓝牙MCU,内置12位ADC
INA226:双向电流/功率监测IC,I²C接口
采样电阻:10mΩ 1% 金属箔电阻(2512封装)
保护电路:SMBJ5.0A TVS + PTC自恢复保险
电路特性
输入电压范围:4.5-36V DC
电流检测范围:±3.2A(最大瞬时5A)
分辨率:
电流:0.1mA
电压:1mV
功率:1mW
工作温度:-40℃ ~ +85℃
电路框图
mermaid
复制
graph LR
A[电源输入] --> B[TVS保护]
B --> C[采样电阻]
C --> D[INA226]
D -->|I²C| E[CH571F]
E --> F[USB/UART]
E --> G[BLE广播]
软件架构
主要功能
INA226自动校准
双模数据传输:
BLE特征值更新(1Hz)
USB高速采样(1kHz)
动态基线校准
过流保护(硬件比较器+软件双保险)
关键配置
c
复制
// INA226校准寄存器计算
#define CAL (0.00512 / (0.01 * 0.0001)) // 10mΩ/100μA LSB
void INA226_Init() {
I2C_Write(0x40, 0x05, CAL); // 校准寄存器
I2C_Write(0x40, 0x00, 0x4527); // 配置寄存器:1ms采样+平均值
}
快速使用指南
硬件搭建
焊接采样电阻(注意电流方向)
连接电源正极到Vin+
负载接入Vin-与GND之间
数据读取
BLE模式:
bash
复制
gatttool -b [MAC地址] --char-read -a 0x000b
返回:电压(16bit) 电流(16bit) 功率(16bit)
USB模式:
python
复制
import serial
ser = serial.Serial('/dev/ttyACM0', 115200)
while True:
print(ser.readline().decode())
输出格式:V:12.345,I:1.234,P:15.234
校准方法
空载状态下执行CALIBRATE_ZERO命令
接入标准负载(推荐1A恒流源)
根据实际值调整校准参数:
c
复制
// 在ina226.c中修改校准系数
const float Current_LSB = 0.0001; // 调整此值补偿误差
性能测试
测试条件 测量值 误差
空载 0.002A ±0.2mA
1A恒流 1.003A +0.3%
3A脉冲 2.997A -0.1%
12V输入 12.01V +0.08%
常见问题
I²C无响应:检查0x40地址是否被占用
数据跳变:确保采样电阻功率≥3W
负电流显示:接线方向反向导致,交换Vin+/Vin-即可
开源协议
MIT License - 允许商业使用,需保留版权声明
欢迎提交PR改进项目!特别感谢TI提供的INA226评估板和沁恒的技术支持。
设计图

BOM


评论