最近是和电流检测较上劲了。买了好几种电流检测模块。其中有一块是INA219模块。
INA219 是一款具有 I2C 接口的零漂移、双向电流/电源监控集成电路,INA219 具备业界最高的精确度,器件采用 SOT23 封装。INA219 在 -40C 至 +85C 的温度范围内可实现 1% 的最大误差精度,最大偏移为 100 uV。该器件可感测的总线电压范围为 0 V 至 +26 V。
一、INA219 的其它重要特性包括:
1、可编程校准寄存器能直接以安培为单位读取电流,并以瓦特为单位读取电源。
2、可对多达 128 个采样求平均值,以在噪声环境下实现过滤。
3、I2C 接口具有超时设置,不仅可避免总线锁死,而且还可提供高速模式,满足高达 3.4 MHz 的通信要求。
4、INA219 的所有特性均支持软件可编程。
5、采用单电源供电,其工作电压介于 +3.0 至 +5.5V 之间
二、封装及参数:
三、引脚定义:
IN+和IN_:分别是接检测分流电阻的两端。
GND:接电源负极
Vs:电源正极(电压范围:3-5.5V)
SCL:通讯时钟线
SDA:通讯数据线
A0和A1:地址选择引脚(接到不一样的地方对应的地址不一样,地址对应表如下图)
四、典型应用电路:
五、内部寄存器
通讯协议使用的是IIC通讯协议。INA219一共有6个寄存器,分别功能为:
00:配置寄存器,主要是用来配置INA219的工作方式和参数
01:分流电阻电压
02:总线电压
03:功率
04:电流
05:基准值寄存器,用于设置基准值
1、00寄存器:配置寄存器
bit15:复位位,用于复位整个INA219,将改为设为1则复位。
bit14:保留位
bit13:设置检测最大检测电压 0=16V,1=32V;
bit11,12:设置总线分流电阻最大的电压,后面用于计算最大检测电流。参数如下表(灰色为默认值)
bit7-10:这些位设置总线电压ADC分辨率(9,10,11,或12位)(02寄存器)
bit3-6:这些位调整分路ADC分辨率(9,10,11,或12位)
bit0-2:设置工作模式:(灰色为默认工作模式:连续检测模式)
2、02寄存器:总线电压寄存器,用于存储检测到当前总线的电压
Bit0:溢出标志位:当电流超出设置的功率或电流的范围
Bit1:转换完成标志位
bit2:保留位
bit3-15:保持总线电压位。
3、03寄存器:功率寄存器,用于存储当前检测的消耗功率
4、04寄存器:电流寄存器,用于存储当前检测的电流
5、05寄存器:基准值存放寄存器,用于计算功率和电流
六、基准值的计算:
首先确定硬件参数:R(检测电阻的阻值)=0.1R,设置最大检测电压为:32V,设置电阻电压范围为320mV
I_MAX(最大能检测的电流)=0.32V/0.1R=3.2A
I_LSB_MIN=I_MAX/(2^15)=3.2/32767=97*10^-6
I_LSB_MAX=I_MAX/(2^12)=3.2/4096=0.00078125
I_LSB的选值范围为 I_LSB_MIN和I_LSB_MAX之间,选择靠近I_LSB_MIN
这里选择100*10^-6
I_LSB=100*10^-6=100uA=0.0001A(每位对应的电流大小)
计算基准值:Cal=0.04096/(I_LSB/R)=0.04096/(0.0001A*0.1)=4096=0x1000
当配置时05寄存器的值为:0x1000
计算功率LSB
P_LSB=20*I_LSB=20*0.0001A=0.002W