搜索

[电源] 使用INA219电量监测芯片的一点经验

[复制链接]
3376|22
 楼主 | 2019-8-6 20:05 | 显示全部楼层 ||阅读模式


先分享下INA219的手册 INA219 具有 I2C接口的零漂移双向电流_功率监测计.pdf (1.41 MB, 下载次数: 104)

使用特权

评论回复
 楼主 | 2019-8-6 20:20 | 显示全部楼层


接下来我们重点说一下各个寄存器等配置问题,
INA219共有六个寄存器,其中只有Configuration跟Calibration需要用户自己配置
具体的寄存器为上面已经做了详解,

Configuration配置寄存器
配置寄存器主要配置芯片测量的量程、精度及工作模式,复位值0x399F
1.png
PG位用于配置差分模式下,芯片测量差分分压电压的量程,说白了就是把IN+与IN-两引脚间的电压再等分多少分之一
2.png
BADC与SADC位同样适用上面的参数,用于设置ADC的采样精度及采样周期,
其中绿框内表示设置不同的精度只采样一次,采样周期不同,
红框表示使用12bit精度,采集多少次取平均值,采样周期不同
3.png

MODE位用于设置芯片的工作模式,
一般用最后一项,默认差分电压与总线电压都连续采样

Calibration校准寄存器
校准寄存器的设置,要针对芯片外部使用的采样电阻的阻值,
通知设置校准寄存器,方便芯片直接计算测量值,
用户就可以直接从其余四个寄存器中直接读出测量的数据了







使用特权

评论回复
 楼主 | 2019-8-6 20:20 | 显示全部楼层
本帖最后由 通宵敲代码 于 2019-8-6 21:03 编辑


关于校准寄存器的计算,手册中给出了公式,如下所示
无标题.png
此处需要结合配置寄存器中我们设置的BRNG位,即总线电压范围是16V还是32V,
下面我们以32V为例,说一下计算过程,参考如下程序
标题.png

使用的电路如下
题.png

第一步
我们先根据测量需要,设定我们的电压测量范围0-32V,以及使用的采样电阻阻值0.05欧姆
并假定IN+与IN-引脚间的最大差分电压为±320mV

第二步
根据N+与IN-引脚间的最大差分电压±320mV,计算出电路中可测量的的最大电流为6.4A计算出

第三步
根据外部电路中可能流过的最大电流,配合Shunt Voltage Register查分分压寄存器的设置,
计算出使用15bit精度时的测量分度196uA,与使用12bit精度时的测量分度1562uA,
这两个数值即我们可以测量的线路中电流是可以达到的最小分度值范围

第四步
从第三步计算的范围中,选取一个比较方便计算,且符合测量要求的数值,即Current_LSB值
一般取比15bit精度时的分度196uA稍大一点的整数,必须我们此处使用的0.0002A(200uA);
此数值也可使用手册中给出的公式2计算得到

第五步
根据手册中给的计算公式1,我们使用即Current_LSB值及我们的外部采样电阻值,
可以计算出Calibration校准寄存器需要设置的数值,即程序中的  ina219_calValue = 4096;

第六步
由我们计算得到的Current_LSB,使用手册中给出的公式5,
我们可以计算的到Power功率寄存器的最小分度值为4mW
此数值与工具寄存器的值相乘及时我们电路中的功率了

第七步
此处主要用于说明几个主要测量值的范围

第八步
根据我们程序中设计的最大电流值及最大电压,计算出可以测量的最大功率值
并给出了此配置下的最小电流分度, ina219_current_LSB_uA = 200;     // Current LSB = 200uA per bit
及最小功率分度, ina219_power_LSB_mW = 4;        // Power LSB = 4mW per bit = 20 * Current LSB

第九步
根据我们上面的计算,设置我们的Configuration配置寄存器及Calibration校准寄存器

使用特权

评论回复
 楼主 | 2019-8-8 17:06 | 显示全部楼层

INA219例程.rar (287.05 KB, 下载次数: 154)

使用特权

评论回复
| 2019-8-17 17:16 | 显示全部楼层
代码  太帅气了   我们一直用的这款   

使用特权

评论回复
| 2019-8-17 17:16 | 显示全部楼层
工业级的板子上好像都用的这个系列型号

使用特权

评论回复
 楼主 | 2019-8-19 16:17 | 显示全部楼层
zhangmangui 发表于 2019-8-17 17:16
代码  太帅气了   我们一直用的这款

公司的工控板也在用,
双向电流检测,
直接能读到总线电压跟功率
还是相当不错的

使用特权

评论回复
| 2019-8-20 16:19 | 显示全部楼层
感谢感谢~

使用特权

评论回复
| 2019-8-21 22:16 | 显示全部楼层
通宵敲代码 发表于 2019-8-19 16:17
公司的工控板也在用,
双向电流检测,
直接能读到总线电压跟功率

兄弟  现在混得怎么样  做的什么行业   

使用特权

评论回复
| 2019-8-21 22:17 | 显示全部楼层
通宵敲代码 发表于 2019-8-19 16:17
公司的工控板也在用,
双向电流检测,
直接能读到总线电压跟功率

还有重要的是  混到媳妇了么

使用特权

评论回复
| 2019-8-27 16:37 | 显示全部楼层
本帖最后由 zanjun 于 2019-8-27 16:55 编辑

楼主好,大家好,我现在也在使用ina219,我使用触发方式采样,我发现总线电压误差较大,电流和shunt电压基本没问题,
比如我设定1.6mA左右的电流,采样电阻0.4欧姆,shunt电压读数0.66mv,电流读数1.65mA,总线电压读数是0(原始数据0002),实测有8.5mV,
再比如设定50mA时,shunt电压20mv,电流50.1mA,也差不多,总线电压读数248mV,实测255mV。不知你们有没有遇到过。

使用特权

评论回复
 楼主 | 2019-8-28 11:27 | 显示全部楼层
zhangmangui 发表于 2019-8-21 22:16
兄弟  现在混得怎么样  做的什么行业

最近做道路桥梁检测设备,
也就那样吧,有活干有饭吃

使用特权

评论回复
 楼主 | 2019-8-28 11:31 | 显示全部楼层
zanjun 发表于 2019-8-27 16:37
楼主好,大家好,我现在也在使用ina219,我使用触发方式采样,我发现总线电压误差较大,电流和shunt电压基 ...

没遇到过你这个问题,我这边电压测量还是比较准确的,
有两个地方建议你检查一下,
一是接地问题,总线电压测得是IN-的对地电压,接地要一致才行;
再就是精度问题,INA219只有16V跟32V两个电压档位,
你测毫伏有点低了,测个高点的电压试试。

使用特权

评论回复
 楼主 | 2019-8-28 11:32 | 显示全部楼层
zhangmangui 发表于 2019-8-21 22:17
还有重要的是  混到媳妇了么

还木有

使用特权

评论回复
| 2019-8-28 15:26 | 显示全部楼层
通宵敲代码 发表于 2019-8-28 11:31
没遇到过你这个问题,我这边电压测量还是比较准确的,
有两个地方建议你检查一下,
一是接地问题,总线电 ...

谢谢回复,我这是个压控恒流源,电流是可变的,所以总线电压也是变化的,我又测试了一遍,总线电压误差还是挺大的,大约有10mV,可shunt电压和电流,还是不错的。我主要关心电流值,先这样了。再一次谢谢

使用特权

评论回复
| 2019-8-28 20:56 | 显示全部楼层

加油 兄弟  这么优秀  

使用特权

评论回复
 楼主 | 2019-8-29 09:50 | 显示全部楼层
zhangmangui 发表于 2019-8-28 20:56
加油 兄弟  这么优秀

使用特权

评论回复
| 2019-11-24 11:56 | 显示全部楼层
26V是测量电路电压吗?INA219只有16V跟32V两个电压档位的32是指什么?

使用特权

评论回复
| 2020-6-2 22:21 | 显示全部楼层
您好 我看见您对ina219芯片有比较深的理解  如果我要测量多个电池  我不太明白如何配置多个芯片连接到iic总线上的地址  iic要区别多个芯片怎么区别呀  我对于这方面不太懂 谢谢

使用特权

评论回复
 楼主 | 2020-6-3 14:05 | 显示全部楼层
wwwwxxxx 发表于 2020-6-2 22:21
您好 我看见您对ina219芯片有比较深的理解  如果我要测量多个电池  我不太明白如何配置多个芯片连接到iic总 ...


看手册这一段介绍,把A0、A1引脚对接到不用的引脚上就行了。

QQ截图20200603140246.png

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表