完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
INA219可以作为功率计使用。 可以采集电压,和电流值,并且内置一个乘法器,所以能得到功率 供电3.3-5V 电压采集范围0-26V 电流最大值为40ma,可以使PGA设置为1/2,以采到80ma的电流值 将Rshunt电阻串联在电源高端,通过采集Vin+和Vin-的区间来得到电流值。并且通过得到Vin-到GND之间的电压值来测量负载俩端的电压。 芯片通过IIC通信,还有俩个地址位 A0 和A1决定了器件地址 下面是寄存器的细节部分 从这里能看到INA219一共是6个寄存器,第一个和最后一个是配置寄存器,并且都是32位的 1-4分别是可以读取四个参数,分别是电压,母线电压,功率,和电流 其实接下来就是寄存器5和如何计算电流了 我们可以看到这个公式 根据式1计算校准寄存器。这个方程包括术语Current_LSB,它是当前寄存器(04h)的LSB的编程值。用户使用此值转换当前寄存器(04h)到实际电流(安培)的值。电流的最高分辨率寄存器(04h)可以通过使用允许的最小Current_LSB来获得,Current_LSB基于期望的最大值如公式2所示。虽然这个值可以产生最高的分辨率,但是通常要选择一个值将Current_LSB设置为高于此值的最接近的整数,以简化当前寄存器的转换 (04h)和功率寄存器(03h)分别到安培和瓦。RSHUNT项是外部的值用于在输入引脚之间产生差动电压的分路器。电源寄存器(03h)内部设置为是程序Current_LSB的20倍见方程3。 其实就是我们在计算电流值的时候,我们需要知道你外部的串联电阻到底是多大,我们需要寄存器5去帮助我们校准,我们需要将校准值发送给寄存器5。 公式计算如下 分别来介绍 Trunc是取整函数 Current_LSB是电流最小分辨率,是最大的期望电流值除以2的15次方 其实这个电流的分辨率的含义就是每bit代表的电流是多大 期望值就是我们在config寄存器设置的最大值 从arduino库中看到这么一段 没有在芯片手册上面找到,是谈到了LSB的这个位是2的12次方到15,所以可以得到一个最大分辨率和一个最小分辨率,我们在其中选一个合适的值就可以了,他在这里选了个0.0001 Rshunt代表的是串联外部电阻的值 即在得到上述参数之后,我们就可以计算出CAL的值 所以我们在一开始只需要将其发给寄存器5就完事了。 在此之后我们需要将config寄存器设置成某些值,符合实际电路的配置即可。具体可参考PDF19-21页 至此我们就完成了初始化的工作,接下来我们只需要读取寄存器1234就可以得到自己想要的值(在datasheet里功率那边的计算有点奇怪?没太看懂,但是在datasheet较前面的介绍中说道,功率的值就是将电压值和电流值进入一个乘法器得到,个人认为如果搞不懂的话,直接单片机里面乘一下也不费事。) |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 14:43 , Processed in 0.643001 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号