君正T31移植电源IC—CW2015芯片简介

CW2015芯片简介


CW2015 是一款超紧凑、低成本、主机侧/电池组侧、无传感电阻器的电量计量系统 IC,适用于手持和便携式设备中的锂离子 (Li+) 电池。CW2015 包括一个14 位Sigma-Delta ADC、一个精密电压基准和内置准确温度传感器。该 IC 允许最终用户消除占用大量电路板面积的昂贵感测电阻器。如果电池 SOC 水平达到预先设定的阈值,IC 也会发出警报信号。
CW2015 使用I2C串行接口,可在标准 (100 kHz) 或快速 (400 kHz) 模式下运行。

引脚排列

CW2015的I2C寄存器映射

-------------------------------------------

VCELL寄存器

存储了芯片ADC采集到的电压值,每一位代表的是305uV。VCELL寄存器是只读寄存器,可连续更新电池端子电压。电池电压在CELL引脚上以GND引脚作为接地基准进 行测量。使用14位sigma-delta A / D转换器,CW2015的电压分辨率为305uV。该A / D转换器在IC POR之 后的<10ms时间内更新单元电压,然后在每秒更新4次。

--------------------------------

--------------------------------

SOC寄存器

是一个只读寄存器,它指示电池的充电状态。SOC值是一个相对概念,显示为电池总容量的百分比。由于老化,电池参数分配控制不良或总容量的快速变化,该寄存器会根据电池的参数变化本质上进行自我调整。 在该寄存器中,高8位部分包含SOC信息(以%为单位),如果此精度已经足以满足应用要求,则最终用户可以直接使用。低8位部分提供SOC信息的更准确部分,直到1/256%。

CW2015芯片还需要设置电池的建模信息(电池信息0x10到0x4f寄存器中,不同的电池电池建模信息不同)

/*电池建模信息,客户拿到自己电池匹配的建模信息后请替换*/
static unsigned char cw_bat_config_info[SIZE_BATINFO] = {
0X15,0X7E,0X7C,0X5C,0X64,0X6A,0X65,0X5C,0X55,0X53,0X56,0X61,0X6F,0X66,0X50,0X48,
0X43,0X42,0X40,0X43,0X4B,0X5F,0X75,0X7D,0X52,0X44,0X07,0XAE,0X11,0X22,0X40,0X56,
0X6C,0X7C,0X85,0X86,0X3D,0X19,0X8D,0X1B,0X06,0X34,0X46,0X79,0X8D,0X90,0X90,0X46,
0X67,0X80,0X97,0XAF,0X80,0X9F,0XAE,0XCB,0X2F,0X00,0X64,0XA5,0XB5,0X11,0XD0,0X11
};

------------------------------------------

RRT_ALRT寄存器

ALRT,标志寄存器位。当SOC寄存器值低于或等于警报阈值设置并产生中断时,该位由IC设置。该位只能 由主机通过I2C总线清除。ALRT的上电默认值为逻辑0。 只和放电电流指示电池的剩余运行时读寄存器RRT根据当前SOC间。RRT不是线性变化值,并且每1s更新一 次。 寄存器RRT提供13位来记录剩余时间,1 LSB代表1分钟。

------------------------------------------

配置寄存器

ATHD是低SOC警报阈值设置寄存器。警报阈值为5位值,用于设置在ALRT引脚上产生中断的充电状态。警报 阈值的LSB权重为1%,可以设置为0%至31%。ATHD的上电默认值为3%。 UFG是一个标志位,用于指示电池信息更新状态。

ATHD用于设置报警电压阈值。
UFG指示电池信息更新状态。

------------------------------------------

模式寄存器

用于主机控制IC。 睡眠模式下,由两位控制。默认值11,写11强制CW2015进入睡眠模式;写00唤醒。 QSTRT,快速启动,两位控制。默认值00,写入11开始。 快速启动允许IC以与IC初始上电相同的方式重新开始燃油表计算。例如,如果应用程序的加电顺序过于嘈 杂,从而将过多的错误引入到IC的SOC“第一猜测”中,则主机可以发出快速启动信号以减少错误。快速启动 也由QSTRT引脚上的上升沿启动。 POR,复位电源,四位控制。默认值为0000,写1111以完全重启IC,就好像断电了一样。

----------------------------------------

设备地址 I2C设备地址由7位从机地址和1个读/写控制位组成。

CW2015的地址固定为0b1100010。与 R / W位组合:

CW2015的读命令为0xC5;

CW2015的 写入命令为0xC4。

----------------------------------------

I2C接口

CW2015通过I2C接口进行通信。I2C是两线式漏极开路接口,可在一条总线上支持多个设备和主机。某些I2C设备可以充当主设备或从设备,但CW2015只能充当从设备,仅将总线拉低,而从不将总线驱动为高。在标准模式或快速(400kHz)或快速模式加(1MHz)模式下,I2C总线上的数据可以高达100kbit / s的速率传输。

----------------------------------------

启动和停止条件

总线空闲时,SCL和SDA都必须为高电平。总线主机通过在SCL为高电平时将SDA从高电平转换为低电平来发 出具有START条件的传输开始信号。当主机完成与从机的通信时,它会在SCL为高电平时通过将SDA从低电 平转换为高电平来发出STOP条件。然后,总线空闲以进行另一次传输。使用总线时,如果产生重复的 START(Sr)而不是STOP条件,则总线将保持繁忙状态。重复的START(Sr)条件在功能上与START(S)相 同。

-----------------------------------------

使用方法

  1. 唤醒CW2015
  2. 检查UFG位是否置1,并检查电池信息是否正确
  3. 设置阈值电压
  4. 读取SOC电量信息

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

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

相关文章

【Vue3进阶】- Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。它提供了类似于 Vuex 的功能&#xff0c;但比 Vuex 更加简单和直观。 需要在多个组件之间共享状态或数据时使用 Pinia 的 store&#xff0c;这样可以避免 props 和 eventBus 等传统方法…

【stm32笔记】DSP库调用

参考&#xff1a;DSP库调用 , __CC_ARM,__TARGET_FPU_VFP, __FPU_PRESENT1U, ARM_MATH_CM4 ,USE_HAL_DRIVER,STM32F407xx,ARM_MATH_CM4,__FPU_USED1U,__FPU_PRESENT1U,__CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING把需要的库复制出来单独用&#xff0c;方便移植

KEIL declaration may not appear after executable statement in block

KEIL declaration may not appear after executable statement in block 这个问题也是比较经典&#xff0c;就是不允许你的变量定义位置不允许在下边的代码区域&#xff0c;只允许在最上方 ‍ 修改编码模式为C99解决 ‍ ​​

docker本机启动多台容器导致出现后续容器启动失败

docker本机启动多台容器导致出现后续容器启动失败 原因&#xff1a;查看硬盘空间是否满&#xff0c;如果不是硬盘空间问题引起 解决方式&#xff1a; vim /etc/sysctl.conf 添加参数 fs.aio-max-nr 1048576 sysctl -p Docker是一种相对使用较简单的容器&#xff0c;我们可以…

(Java)心得:LeetCode——15.三数之和

一、原题 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。…

c#---集合

集合&#xff08;Collection&#xff09;类是专门用于数据存储和检索的类。这些类提供了对栈&#xff08;stack&#xff09;、队列&#xff08;queue&#xff09;、列表&#xff08;list&#xff09;和哈希表&#xff08;hash table&#xff09;的支持。大多数集合类实现了相同…

AI大模型探索之路-训练篇15:大语言模型预训练之全量参数微调

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

奇诡 matlab 小 bug matlab git需要记录的改动太多

似乎是我有一次添加了太多的路径之后的事情。但是不敢说一定是这个导致的&#xff1a; 症状&#xff1a;只要对文本进行任何编辑操作&#xff0c;工作区就会出现"Processing … Cancel"的提示&#xff0c;如果不管的话这个提示不会消失&#xff0c;同时matlab变得越来…

9.spring-图书管理系统

文章目录 1.开发项目流程1.1开发开发1.2数据库的设计 2.MySQL数据库相关代码3.构造图书结构3.1用户登录3.2图书列表3.3图书添加3.4图书删除3.4.1批量删除 3.5图书查询(翻页) 4.页面展示4.1登录页面4.2列表页面4.3增加图书页面4.4修改图书信息页面 5.功能展示5.1增加图书信息5.2…

语言基础 /CC++ 可变参函数设计与实践,va_ 系列实战详解(强制参数和变参数的参数类型陷阱)

文章目录 概述va_ 系列定义va_list 类型va_start 宏从变参函数的强制参数谈起宏 va_start 对 char 和 short 类型编译告警宏 va_start 源码分析猜测 __va_start 函数实现 va_arg 宏宏 va_arg 无法接受 char 和 short为啥va_arg可解析int却不能解析float类型&#xff1f;宏 va_a…

基于单片机的直流电机测速装置研究与设计

摘要: 基于单片机的直流电机测速装置采用了对直流电机的中枢供电回路串联取样电阻的方式实现对电机转速的精确实时测量。系统由滤波电路、信号放大电路、单片机控制电路以及稳压电源等功能模块电路构成。工作过程中高频磁环作为载体&#xff0c;利用电磁感应的基本原理对直流电…

spring boot 基础案例【4】使用Swagger2构建强大的API文档

教程1 案例教程 案例仓库 在线编程 在线编辑器运行&#xff1a;mvn spring-boot:run 教程2 基础教程 教程仓库 在线编程 本案例所在的仓库 本案例所在的文档 进入正文 1.文件目录 2.应用主类 地址:2.x/chapter2-2/src/main/java/com/didispace/chapter22/Chapter22Applicatio…

Secnet-智能路由系统 actpt_5g.data 信息泄露漏洞复现

0x01 产品简介 Secnet安网智能AC管理系统是广州安网通信技术有限公司&#xff08;简称“安网通信”&#xff09;的无线AP管理系统。 0x02 漏洞概述 Secnet-智能路由系统 actpt_5g.data 接口存在信息泄露漏洞&#xff0c;未经身份验证的远程攻击者可以利用此漏洞获取系统账户…

【JVM基础篇】JVM入门介绍

JVM入门介绍 为什么学习JVM 岗位要求 解决工作中遇到的问题 性能调优 真实案例 导出超大文件&#xff0c;系统崩溃从数据库中查询超大量数据出错消费者消费来不及导致系统崩溃Mq消息队列接受消息导致的内存泄漏业务高峰期系统失去响应 初识JVM 什么是JVM&#xff1f; JV…

C 语言中怎么产生真正的随机数?

在C语言中&#xff0c;要产生真正的随机数&#xff0c;我们通常使用标准库中的 <stdlib.h> 头文件中提供的随机数生成函数。 这些函数可以生成伪随机数&#xff0c;但它们在一定程度上是随机的&#xff0c;足以满足大多数应用程序的需求。 1. 伪随机数生成函数 C标准库…

Vue + Vite + Axios 项目多环境以及部署前后端跨域

最近在前端多环境和部署服务器之后出现的跨域的问题。 多环境 前端多环境 Vite Axios 1.首先在项目目录下定义多环境的文件。 这里列举开发环境和发布环境 .env.development 环境 # 开发时加载// 此处为开发时接口 VITE_API_URL http://localhost:8080/api.env producti…

软考 系统架构设计师系列知识点之软件架构风格(11)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之软件架构风格&#xff08;10&#xff09; 所属章节&#xff1a; 第7章. 系统架构设计基础知识 第3节. 软件架构风格 相关试题 9. “编译器”是一种非常重要的基础软件&#xff0c;其核心功能是对源代码形态的单个或一…

【c++】string深度刨析以及实现

#pragma once #include<iostream> using namespace std; #include<assert.h> namespace bite {class string{public://迭代器 //像指针 底层不一定是指针 typedef char* iterator;iterator begin(){return _str;}iterator end(){return _str _size;}//const 版本…