STM32 IIC电量计LTC2944

news2024/10/6 18:34:20

1 描述

LTC2944 可在便携式产品应用中测量电池充电状态、电池电压、电池电流及其自身温度。宽输入电压范围允许使用高达 60V 的多节电池。精密库仑反向积分电流通过电池正极端子与负载或充电器之间的检测电阻器。 电压、电流和温度由内部 14 位无延迟 ΔΣ™ ADC 测量。测量结果存储在内部寄存器中,可通过板载 I 2C/SMBus 接口访问。 LTC2944 针对所有四个测量量都具有可编程的高阈值和低阈值。如果超过编程阈值,该器件将使用 SMBus 警报协议或通过在内部状态寄存器中设置标志来传达警报。该LTC2944只需要一个低阻值检测电阻器即可设置测量的电流范围。

在这里插入图片描述

2 操作

2.1 概述

LTC2944是一款电池电量计,设计用于端电压为3.6V至60V的多节电池。它测量电池充电和放电、电池电压、电流和自身温度。 精密模拟库仑计数器通过电池正极端子与负载或充电器之间的检测电阻器对电流进行积分。电池电压、电池电流和硅温度由内部ADC测量。

库仑计数器

电荷是电流的时间积分。该LTC2944通过监测检测电阻两端产生的电压来测量电荷。将 SENSE+ 和 SENSE– 之间的差分电压应用于自动归零差分模拟积分器以推断电荷。 当积分器输出斜坡上升到 REFHI 或 REFLO 电平时,切换 S1、S2、S3 和 S4 以反转斜坡方向(图 2)。通过观察开关的状况和斜坡方向,确定极性。 这种方法还显著降低了模拟积分器对失调的影响,如差分失调电压部分所述。 可编程预分频器可有效将积分时间提高 M 倍,可编程范围为 1 至 4096。在预分频器的每个下溢或溢流处,累积电荷寄存器 (ACR) 值递增或递减一个计数。累积电荷的值通过 I2C 接口读取。

Voltage, Current and Temperature ADC

该LTC2944包括一个 14 位无延迟 ΔΣ 模数转换器,具有内部时钟和电压基准电路。 该ADC可用于监控SENSE端的电池电压或流过检测电阻的电池电流,或转换片内温度传感器的输出。 电压、电流和温度的转换通过 I2C 接口对控制寄存器进行编程来触发。该LTC2944包括扫描模式,每 10 秒执行一次电压、电流和温度转换测量。在每次转换结束时,相应的寄存器都会更新,转换器进入休眠状态,以较大限度地减小静态电流。 温度传感器产生与温度成正比的电压,斜率为2mV/K,在27°C时产生600mV的电压。

Power-Up Sequence

当 SENSE+ 上升到大约 3.3V 的阈值以上时,LTC2944 将产生一个内部上电复位 (POR) 信号,并将所有寄存器设置为默认状态。 在默认状态下,库仑计数器处于活动状态,而电压、电流和温度ADC关闭。累积充电寄存器设置为中间电平(7FFFh),所有低阈值寄存器设置为0000h,所有高阈值寄存器设置为FFFFh。启用警报模式,并将库仑计数器预缩放因子 M 设置为 4096。
在这里插入图片描述

3 应用信息

LTC2944寄存器映射如表1所示。该LTC2944通过检测电阻器对电流进行积分,测量电池电压、电流和温度,并将结果存储在可通过 I2C 访问的内部 16 位寄存器中。可以对每个测量量的上限和下限进行编程。LTC2944持续监控这些限值,并在超过限值时在状态寄存器中设置一个标志。如果启用了警报模式,则 ALCC 引脚将拉至低电平。
在这里插入图片描述
充电、电压、电流和温度警报的状态在表 2 所示的状态寄存器中报告。
在这里插入图片描述
每次电压、电流或温度转换后,转换结果都会与相应的阈值寄存器进行比较。如果超过阈值寄存器中的值,则设置相应的位 A[6]、A[4] 或 A[1]。 每次模拟积分器增加或减少预分频器时,都会将累积电荷寄存器(ACR)与电荷阈值进行比较。如果 ACR 值超过阈值寄存器值,则设置相应的位 A[3] 或 A[2]。如果累积电荷寄存器 (ACR) 溢出或下溢,则设置位 A[5]。每次溢流或下溢时,ACR 都会滚动并恢复集成。 如果在工作期间,SENSE+ 引脚上的电压降至 3.5V 以下而未达到 POR 电平,则设置状态寄存器 A[0] 的欠压锁定 (UVLO) 位。库仑计数器的模拟部分关闭,同时保留数字寄存器值。电源电压恢复后,库仑计数器恢复积分在累积充电寄存器中存储值,但在 SENSE+ < 3.5V 时,它错过了任何电荷流动。 所有状态寄存器位在主机读取后被清除,但如果仍满足相应的警报条件,则可能会在下一次温度、电压或电流转换或电荷积分后重新置位。

Control Register (B)

LTC2944的操作通过对控制寄存器进行编程来控制。表 3 显示了 8 位控制寄存器 B[7:0] 的组织结构。
在这里插入图片描述
在这里插入图片描述

Power Down B[0]

将 B[0] 设置为 1 可关断LTC2944的模拟部分,从而将电流消耗降至 15μA (典型值)以下。管理 I2C 通信的电路保持工作状态,并保留寄存器中的值。请注意,当 B[0] 为 1 时,不会测量任何流过的电荷,并且任何低于累积电荷寄存器 1LSB 的电荷信息都会丢失。

Alert/Charge Complete Configuration B[2:1]

ALCC引脚是由控制寄存器配置的双功能引脚。通过将位 B[2:1] 设置为 [10](默认值),ALCC 引脚配置为遵循 SMBus 协议的警报引脚。在这种配置中,如果四个测量量(电荷、电压、电流、温度)之一超过其上限或低阈值,或者如果累积电荷寄存器的值溢出或下溢,则ALCC被拉低。主设备启动的警报响应过程在ALCC引脚上重置警报。如果ALCC引脚的配置在因报警情况而被拉低时发生更改,则该器件将继续将ALCC拉低,直到主机发出成功的报警响应程序(ARA)。有关详细信息,请参阅警报响应协议部分。 将控制位 B[2:1] 设置为 [01] 可将 ALCC 引脚配置为数字输入。在此模式下,ALCC引脚上的低电平输入向LTC2944指示电池已满,并且累积充电寄存器设置为最大值FFFFh。
如果既不需要警报功能,也不需要充电完成功能,则位 B[2:1] 应设置为 [00]。然后,ALCC引脚被禁用,并应通过一个10k电阻连接到I2C总线的电源。 避免将 B[2:1] 设置为 [11],因为它会同时启用警报和充电完成模式。

Choosing RSENSE

为了达到库仑计数器的指定精度,SENSE+ 和 SENSE– 之间的差分电压必须保持在 ±50mV 以内。当输入信号高达300mV时,LTC2944将保持工作,但不能保证库仑计数器的精度。 外部检测电阻RSENSE的所需值由VSENSE的最大输入范围和应用的最大电流决定:
在这里插入图片描述
外部检测电阻值的选择会影响库仑计数器的增益。对于相同的电流,较大的检测电阻在 SENSE+ 和 SENSE– 之间提供更大的差分电压,从而实现更精确的库仑计数。由累积电荷的最低有效位(qLSB)(寄存器C,D)表示的电荷量等于:
在这里插入图片描述
当预分频器设置为默认值 M = 4096 时。 请注意,1mAh = 3.6C(库仑)。 在电池容量 (QBAT) 与最大电流 (IMAX) 相比非常大的应用中,选择 RSENSE = 50mV/IMAX 是不够的:
在这里插入图片描述
对于具有大电池的低电流应用,根据RSENSE = 50mV/IMAX选择RSENSE会导致qLSB小于QBAT/216,并且16位累积充电寄存器可能会在电池耗尽之前下溢或在充电过程中溢出。在本例中,选择的最大 RSENSE 为:
在这里插入图片描述
在最大电流为 IMAX = 100mA 的示例应用中,计算 RSENSE = 50mV/IMAX 将导致检测电阻为 500mΩ。这给出了34μAh的qLSB,累积充电寄存器可以表示QBAT = 34μAh•65535 = 2228mAh的最大电池容量。如果电池容量较大,则必须降低RSENSE。例如,如果使用容量为7200mAh的电池,则RSENSE应降至150mΩ。

Choosing Coulomb Prescaler M B[5:3]

如果电池容量 (QBAT) 与最大电流 (IMAX) 相比较小,则预分频器值 M 应从其默认值 (4096) 更改。 在这些电池体积小但最大电流较高的应用中,qLSB相对于电池容量可能会变得非常大。例如,如果电池容量为100mAh,最大电流为1A,则标准公式导致选择50mΩ的检测电阻值,结果为:
在这里插入图片描述
电池容量仅相当于294 qLSB,累计充电寄存器的利用率不到0.5%。 在这种情况下,为了保持数字分辨率,LTC2944包括一个可编程的预分频器。降低预分频器因子M可降低qLSB,从而更好地将累积充电寄存器与电池容量相匹配。可以在 1 和默认值 4096 之间选择预缩放因子 M。然后,电荷LSB变为:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1422530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GBASE南大通用数据库对与例程相关联的对象的权限

数据库服务器检查是否存在任何被引用的对象&#xff0c;并验证调用该例程的用户是否拥有访问被引用的对象的必要权限。 由例程引用的对象可包括&#xff1a; • 表和列 • 序列对象 • 用户定义的数据类型 • 由该例程执行的其他例程 当例程运行时&#xff0c;定义有效的权…

第六篇:express路由拆分(模块化)

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 &#x1f4d8; 引言&#xff1a; &#x…

elasticsearch的基本使用

使用postman进行测试 如下图所示&#xff1a; 需要进行验证&#xff0c;请选择Authorization中的basic auth,填写账号以及密码。 添加ik中文分词 安装 IK 分词器插件&#xff1a; 下载 IK 分词器插件&#xff0c;可以从 GitHub 上的 elasticsearch-analysis-ik 页面下载最好…

学习使用vite+vue3的所遇问题总结

组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default …… setup 是后者的语法糖 在Vue.js中&#xff0c;你可以通过route对象…

Python学习--一个逻辑推理的猜数字的游戏

修订Pico Fermi Bagels猜数字游戏代码&#xff0c;仅用于学习Python。 运行界面如下&#xff1a; 修订的代码如下&#xff1a; # // # 提升逻辑思维猜数字小游戏 # BY&#xff1a;Al Sweigart alinventwithpython.com # 翻译&#xff1a;诚外无物 # 说明&#xff1a;一个逻辑…

微信小程序之下拉刷新事件、上拉触底事件和案例

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Android systemui 编译

目录 简介&#xff1a; 一、步骤 二、下载源码 三、环境配置 四、确定好需要编译版本 五、编译SystemUI 步骤1&#xff1a;进入源代码目录 步骤2&#xff1a;初始化编译环境 步骤3&#xff1a;选择目标设备 步骤4&#xff1a;编译SystemUI 步骤5&#xff1a;查找生成…

kubeadm安装K8S_v1.28.x容器使用docker

一&#xff0e;环境部署 1.1 基础环境配置&#xff08;只有1台服务器&#xff0c;作为masrer&#xff0c;也作为node使用&#xff09; [rootecs-cf5e ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootecs-cf5e ~]# uname -a Linux ecs-cf5e 3.10.0-11…

全志R128基础组件开发——显示与屏幕驱动①

RTOS 提供了一套完整的屏幕驱动&#xff0c;支持 RGB, i8080, SPI, DBI 格式的屏幕。 &#xff08;1&#xff09;RGB 接口 RGB接口在全志平台又称HV接口&#xff08;Horizontal同步和Vertical同步&#xff09;。有些LCD屏支持高级的功能比如 gamma&#xff0c;像素格式的设置…

【哈希】哈希表|除留取余法|哈希冲突(拉链法interv)|一致性哈希|虚拟节点

哈希 hash 散列函数&#xff08;将非常大范围的输入&#xff0c;通过一定的函数&#xff0c;可以转换到小规模的输出&#xff09; 什么是哈希&#xff1f; 广义上是一种思想&#xff0c;不是一个特定的东西&#xff0c;只要算法设计中使用到了哈希思想&#xff0c;就可以叫…

怎样选择多线程多进程和多协程?

有这么多可以实现并发的方式方法,那么,我们怎么确定在合适的时机采用合适的实现方法呢?这就需要我们对各个实现并发的方式方法有一个全面的概念性的理解,以及他们的内在执行逻辑优缺点有一个清晰的认识! 如下图所示,首先我们需要对单进程、多进程、多线程及多协程之间有…

【代码随想录-链表】两两交换链表中的节点

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

docker-compose Install HertzBeat

HertzBeat前言 HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力,高性能集群,兼容 Prometheus,无需 Agent 的开源实时监控告警系统。 易用友好的开源实时监控告警系统,无需Agent,高性能集群,兼容Prometheus,强大自定义监控能力。​ 集 监控+告警+通知 为一体,支持对…

Redis -- 开篇热身,常用的全局命令

目录 Redis重要文件 启动停止脚本 配置文件 持久化文件存储目录 核心命令 set get 全局命令 keys exists del expire ttl 过期策略是如何实现的 定时器 type 小结 Redis重要文件 启动停止脚本 /usr/bin/redis-benchmark &#xff1a; 用于对Redis做性能基准…

故障诊断 | 一文解决,LSTM长短期记忆神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

nodejs+vue+mysql大学生心理健康咨询预约评价管理系统1xmao

本课题要求实现一套高校大学生心理咨询管理系统&#xff0c;系统主要包括管理员模块和用户、咨询师模块功能模块。 系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对高校大学生心理咨询管理的现状进行系统调查。采用结构化的分…

力扣之2619.数组原型对象的最后一个元素-JS

Array.prototype.last function () {const a this.length;if (a 0) {return -1;}return this[a - 1]; };const nums [null, {}, 3]; console.log(nums.last());说明&#xff1a; 在 JavaScript 中&#xff0c;Array.prototype 是每个数组对象的原型。通过在 Array.prototy…

故障诊断 | 一文解决,BiLSTM双向长短期记忆神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现BiLSTM双向长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

QT自制软键盘 最完美、最简单、支持中文输入(二)

目录 一、前言 二、本自制虚拟键盘特点 三、中文输入原理 四、组合键输入 五、键盘事件模拟 六、界面 七、代码 7.1 frmKeyBoard 头文件代码 7.2 frmKeyBoard 源文件代码 八、使用示例 九、效果 十、结语 一、前言 由于系统自带虚拟键盘不一定好用&#xff0c;也不一…

《区块链简易速速上手小册》第10章:区块链的未来与趋势(2024 最新版)

文章目录 10.1 区块链的未来展望10.1.1 基础知识10.1.2 主要案例&#xff1a;区块链在金融领域的发展10.1.3 拓展案例 1&#xff1a;区块链在供应链管理中的应用10.1.4 拓展案例 2&#xff1a;区块链在身份管理和隐私保护中的应用 10.2 新兴技术与区块链的融合10.2.1 基础知识1…