LTC2944库仑计(电量计)芯片应用笔记(Arduino,ESP32)

本文介绍了蓄电池容量单位,包括毫安时、瓦时和库伦。重点讲解LTC2944芯片,涵盖其功能特点、结构、寄存器表、Rsense选择、寄存器值与实际值计算方法及工作模式。还给出驱动程序源码、调用方法、测试代码和电路部分,最后提及电量容量百分比计算和ACR值保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、一些基础知识

1.蓄电池的容量单位

(1)毫安时mAH

蓄电池的容量一般会采用毫安时(mAH)为单位,比如2000mAH的蓄电池意思是该蓄电池理论上可以以2000mA的电流持续放电1小时,2000mA*1H=2000mAH。当然这个是理论上的,实际上蓄电池容量受到自身寿命状态、外部温度等环境因素影响,标称2000mAH的电池往往不能放出那么多容量的。严格说来,mAH并不是电能量单位,只是个容量单位。

(2)瓦时WH

我们知道,电能量有个单位叫做瓦时(WH)或千瓦时(度)(kWH)。为什么不用瓦时来表示蓄电池容量呢?其实也不是不用,而只是习惯问题,比如现在电动汽车就用度来表示蓄电池容量了。

在小型蓄电池领域,比如18650电池,用度来做单位有点太大了。假设电池电压4V,放电电流1000mA(1A),放一个小时放出的能量才4V*1A*1H=4WH。

此外,蓄电池放电过程中,电压不是恒定不变的,而是一直在变化的,那么就需要用持续积分的方式来计算蓄电池实际放出能量了,操作起来比较麻烦。而放电过程中,放电电流是可以通过放电负载调节来做到恒流放电的。所以mAH听起来是比较直观的。

综合以上种种因素,小型电池领域,我们通常用mAH来做容量单位。

(3)库伦

此外还有个单位库伦C,这个单位是电荷单位,定义是1安培电流持续1秒所流过的电荷量为1库伦,即1C=1A*1s。其和mAH之间的关系就是1mAH=0.001A*3600s=3.6C

二、LTC2944应用知识点

1.LTC2944简单介绍

这个在网上能搜索到一些,累赘再简单介绍,详细介绍可以自行网上查找。

• 可测量累积的电池充电和放电电量
• 3.6V 至 60V 工作范围可适合多节电池
• 14 位 ADC 负责测量电池电压、电流和温度
• 1% 电压、电流和充电准确度
• ±50mV 检测电压范围
• 高压侧检测
• I2C 接口 / SMBus接口
• 适合任何电池化学组成和容量的通用测量
• 可配置警报输出 / 充电完成输入
• 静态电流小于 150μA
• 小外形 8 引线 3mm x 3mm DFN 封装

顺便提一句,这个芯片比较贵,国产有矽力杰的SA59202做Pin-to-Pin的代替,但是很不好买,缺货,也不知道性能差别有多大。

2.芯片结构

LTC2944内部包含3个主要部分:电量计数器、ADC、I2C通信模块

(1)电量计数器:比较特别,它是独立于电压、电流、温度传感器的,其工作也是独立的。

因此,可以通过控制寄存器,让ADC停止工作(sleep),而电量计数器在ADC停止后是不会受到影响的,依然会继续计数。也就是说只要芯片通电没有shutdown(该模式后面会讲到),电量计数器就会一直运行。

(2)ADC:ADC可以对电压、电流、温度三个量进行采集,通过ADC前端MUX切换输入源。

(3)I2C通信模块:提供通信功能,对寄存器读写进而控制芯片。

3.内部寄存器表

00h:状态寄存器,当发生告警时该寄存器相应位置位;

01h:控制寄存器,控制芯片的工作模式、预定标值、ALCC引脚功能控制;

02h-17h:电量、电压、电流、温度的测量值和累积值,以及告警门限设置。

3.Rsense大小的选择

该芯片的SENSE+和SENSE-引脚之间的最大电压限制在±50mV内,因此你的应用场景下蓄电池的充电和放电最大电流下,在Rsense上产生的压降不要超过这个50mV,否则芯片精度受影响,超过300mV甚至会停止工作(不知道会不会坏掉,手册没说)。

比如2A的最大充电或放电电流,应该Rsense≤(50mV/2A)=25mΩ。

4.寄存器值与实际值之间的计算方法

(1)电压V

电压ADC有效位为16bit,寄存器地址为08h和09h,满量程70.8V,因此Vlsb=70.8/65535。

如果寄存器读出值为B01Ch(十进制45084),那么测量值实际为:

V=45084*70.8/65535≈48.705V

当然这个测量值是在芯片的SENSE-引脚测量到的。

(2)电流I

电流ADC有效位为12bit,寄存器地址为0Eh和0Fh。电流分正负,取决于电池是在充电还是放电状态。

0Fh寄存器的最低4位一直都保持是0,因为ADC只有12bit。所以当寄存器读出FFF0h的时候,代表电流测量的正满量程64mV;当寄存器读出值为0000h时,代表电流测量值为负满量程-64mV。

那么,假设电流的寄存器读出值为Ic,实际测量值的计算方法就是:

I=(64mV/Rsense)*((Ic-32767)/32767)

计算结果为正的话,表示在充电;为负的话表示在放电。

(3)电量mAH

电量计数器(ACR)也是16bit,每一bit代表的电量取决于M(prescaler)的值和Rsense的值。

公式如下:

通过读取

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值