# USB 电流表
> ##### 我的USB电流表项目
## 关于结构设计
只使用pcb板作为其外观,毕竟只是为学习使用
![image-20220816134202049](https://s2.loli.net/2022/08/16/FLGloteWXwHcM45.png)
## 关于电路设计
使用训练营开源的官方案例,没有做什么修改,把0603封装替换为了0402(只是因为该封装原件较多)
## 主控
N32G430C8L7 微控制器产品采用高性能 32 位 ARM Cortex™-M4F 内核,集成浮点运算单元(FPU)和数字信号处理(DSP),支持
并行计算指令。最高工作主频 128MHz,集成高达64KB片内加密存储Flash,并支持多用户分区权限管理,支持16KB 的嵌入式 SRAM。内置一个内部高速 AHB 总线,两个低速外设时钟总线 APB 及总线矩阵,支持40个可复用 I/Os,提供丰富的高性能模拟接口,包括1个12位 4.7Msps ADC,支持16个外部输入通道和3个内部通道,同时提供多种数字通信接口,包括 4个U(S)ART、2个I2C、2个SPI/I2S、1个CAN 2.0B通信接口。N32G430C8L7 微控制器产品可稳定工作于-40°C 至+105°C的温度范围,供电电压2.4V至3.6V,提供多种功耗模式供用。
本次案例使用的资源不多,使用内部的时钟已经开源满足设计需求,所以无需外接时钟电路。需要注意的是芯片的每个电源的引脚都需要额外接一个**100nF的外接的滤波电容**,芯片的**1脚**需要额外接**4.7uf的滤波电容**。
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/6MNiUzbCXJsnZJZeAg7o7NkEUAmEpa8NhFy98wem.png)
## 复位电路、BOOT电路
由于本次设计为了适配公版外壳,复位电路和BOOT电路未做按键的设计,使用了两个焊点作为短接使用。
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/bN2skZFrRhuDzcIpd7CweHNUIxYyHqrhnP7oGTZW.png)
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/gmvpEN1vRRMmFJ47IJkpC9IKMOyspc71gtBfTabE.png)
## 烧录接口
芯片支持多种烧录方式,如市面常见的ST-Link、USB-TTL、Jlink等烧录器。案例上已经吧对应的接口使用2.54间距的排针引出作为烧录使用。
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/jjXOjRhH4nAxyzy5P2oLcWQz4OpTC3ue1iMP9NEl.png)
## 电压转换
本次案例使用的MCU虽然支持最大电压是5V,但考虑到了可能USB的电压或其他电压上有着不稳定的电压因素
![](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/image-20220830091134210.png)
## 电流采样、USB输入/输出
### USB输入/输出
USB输入端使用的是一个Type-A的公头,输入的是5V的电压,此接口最大支持3A的输出,再大一点就有点发热了,建议不要超过3A的电流,如需使用更大的电流,请更换Type-A的公头。
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/YmNvPeAs86CZxiQzItKF9SCLchSBb4NTYNV7m7dt.png)
USB输出端使用的是一个4P沉板的母座,为了适配公版外壳使用,这个母座最大的
额定电流是1.5A,实测到2.5A,但不适合长期工作在这个电流下,如需使用更大的电流,请自行更换。
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/S5AvissVOGq93repSJFonKTfhIJWqHU5Didx4Wwq.png)
### 电流采样
电流采样部分的是INA199B1DCKR电流感应放大器,(也称为电流传感放大器)常用于过流保护、针对系统优化的精密电流测量或闭环反馈电路。该系列器件可在独立于电源电压的–0.3V至 26V共模电压下感应分流电阻器上的电压降。共有三种固定增益可供选择:50V/V、100V/V和 200V/V。该系列器件采用零漂移架构,偏移较低,因此在进行电流感测时能够将分流电阻器两端的最大压降保持在最低10mV的满量程。参数如下:
- 共模范围:–0.3V至26V
- 偏移电压:±150μV(最大值)
- 支持 10mV 满量程分流压降
- 静态电流:100μA(最大值)
###
采样电阻选择
在电流路径中以串联的方式插入一个低阻值的检测电阻会形成一个小的电压降,该压降可被放大从而被当作一个正比于电流的信号。然而,根据具体应用环境和检测电阻的位置,这种技术将对检测放大器造成不同的挑战。一般采样电阻的电阻值在1欧姆以下,属于毫欧级无感应电阻,但有些电阻,有采样电压等要求,必须选择大电阻值电阻,但电阻基数大,误差大。在这种情况下,需要选择高精度的无感应电阻(可达到0.01%精度,即万分之一精度),使取样数据非常可靠。贴片的超低电阻值电阻(0.0005欧姆、2毫欧、3毫欧、10毫欧等)、贴片合金电阻、大功率电阻(20W、30W、35W、50W、100W)等产品,温度系数为正负5PPM。
#### 采样方式
- 此采样使用的是**低边采样**的方式,也就是采样电阻接在GND的回路上,此设计可以在差分信号送入运放的时候,运算完整的差分、跟随、放大、输出。如果使用高边采样,也就是采样电阻放置在电源和负载之间的高位,虽然这种放置方式不仅消除了低边检测方案中产生的地线干扰,还能检测到电池到系统地的意外短路,但是**高边检测**要求检测放大器处理接近电源电压的共模电压。这种共模电压值范围很宽,从监视处理器内核电压要求的电平(约1V)到在工业、汽车和电信应用常见的数百伏电压不等。应用案例包括典型笔记本电脑的电池电压(17到20V),汽车应用中的12V、24V或48V电池,48V电信应用,
高压电机控制应用,用于雪崩二极管和PIN二极管的电流检测以及高压LED背光灯等。因此,高边电流检测的一个重要优势,那就是检测放大器具备处理较大共模电压的能力。
所以,采样电阻加运放的电流采样方法,最好是在低端进行。虽然,低端采样,由于共地干扰的原因会影响信号的纹波情况。但是相对高端来说,**方案简单易行,成本低,可靠度高。**
**说明:** 如果INA199B1DCKR的库存不足,可以更换INA199A3DCKT此款芯片,需要注意的是,INA199B1DCKR的放大倍率是50,使用其他倍率的需要重新修改程序校准。
> 使用INA199A3DCKT增益为200
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/fQ9Y0MFqTosy6CKslT2ygN2HWlshuLsOk2nNeql2.png)
## 电压采样
电压采样部分由两颗电阻构成的
分压电路组成,其原理就是电阻串联分压的知识,其典型的电路如下:
![image](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/wKhk7lyTeeiAFnQHAAAw10lZTKc300.jpg)
![图片.png](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/zrBEkjWbERCC5mF7sb8KD9FydojF5jsnpuUnoYXM.png)
## 显示部分
显示部分的是使用的是0.91寸4P的白色OELD屏幕模块,采用IIC通信,显示效果清晰。
![image](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/v2-60e18b9051c6d06dd9765c9e8b4834bf_720w.png)
设计显示效果
![QQ图片20220729114119.jpg](https://img66.oss-cn-hangzhou.aliyuncs.com/imagefortypora/fm5IqdwS52KajW4iQkJLd6EkoDiaI8Xih39Ipoqo.jpeg)
# 软件说明
## 编译参数
- 编译器:ARM Compiler version 5 (-O0)
- MDK版本:5.31
- 调试器:ST-Link V2
## 注意事项
如果采样得到的电压或电流不准,可以根据实际值修改`main.c`文件中`VOLTAGE_FACTOR`和`CURRENT_FACTOR`的值,具体计算公式为:
```
VOLTAGE_FACTOR = 实际电压 / 显示电压
CURRENT_FACTOR = 实际电流 / 显示电流
```
> 这个是快充版本,DC电源部分有些bug,不知道是我走线的问题还是电路本身问题,等后面有空改下走线看看能不能正常输出电压