733|2

2万

帖子

341

TA的资源

版主

楼主
 

ST新能源汽车BMS解决方案__L9963调试笔记 [复制链接]

本帖最后由 qwqwqw2088 于 2024-4-2 08:32 编辑

意法半导体L9963E是一款锂离子电池监测和保护芯片,适用于高可靠性汽车应用和储能系统。最多可监控14个堆叠电池单体,以满足48V及更高电压系统的要求。芯片对每个电池的电压测量精度高,同时集成库仑计监控总电流。该设备最多可以监控7个NTC。信息通过SPI通信或隔离接口传输。

 

多个L9963E以菊花链形式连接,通过变压器隔离接口与主处理器通信,具有高速、低电磁干扰、远距离、可靠的数据传输特点。

 

在正常和低功耗模式下(静音均衡)都提供了带有可编程通道选择的被动均衡。均衡可以根据内部定时器中断自动终止。9个GPIO集成用于外部监测和控制。L9963E具有全面的故障检测和通知功能,以满足安全标准要求。

 

L9963E 应用市场

 

  • 汽车BMS系统(48V和高压电池组)

  • 备份储能系统和UPS

  • 电动自行车,e-scooters

  • 便携式和半便携式设备

 

L9963E 特性

 

  • 符合AEC-Q100标准

  • 测量4至14节串联电池,样件之间的解同步延迟为0us还可支持母线连接,且无需改变电池结果

  • 库仑计在点火开和关的状态下均支持电池组过流检测,完全同步的电流和电压采样

  • 16位电压ADC,焊接后,在 [-40°C至+105°C] 的Tj范围中、[0.5V至4.3V] 范围内的最大误差为±2Mv

  • 再生缓冲器的2.66Mbps隔离式串行通信,支持双接入环链路中第1个和第31个器件转换开始之间的延迟短于4µs。

○ 不到4ms即可在使用8个L9963E和L9963T收发器的系统中转换和读取96节电池;
○ 不到8ms即可在使用15个L9963E和L9963T收发器的系统中转换和读取210节电池;
○ 不到16ms即可在使用31个L9963E和L9963T收发器的系统中转换和读取434节电池;
○ 支持基于XFMR和CAP的隔离。
  • 在正常和静音均衡模式下,每节电池的无源内部平衡电流为200mA可执行周期性唤醒测量同时在多个通道上进行手动/定时平衡;内部/外部平衡

  • 完全冗余的电池测量路径,带有ADC交换功能,可增强安全性和跛行模式功能

  • 智能诊断程序可提供自动故障验证。通过SPI全局状态字 (GSW) 和专用故障线进行冗余故障通知

  • 两个5V稳压器,支持25mA (VCOM) 和50mA (VTREF) 电流能力的外部负载连接

  • 9个GPIO,最多带7个用于NTC检测的模拟输入

  • 可靠的热插拔性能,每节电池不需要并联齐纳二极管

  • 完全符合ISO26262标准,支持ASIL-D系统

 

L9963E 应用示意

       

 

 

         

为方便用户快速入门和开发,ST提供丰富的软硬件技术支持:

  1. 评估演示板、GUI及原理图。

  2. 参考源代码和设计文档。

  3. 基于SPC5 studio环境开发的可配置的Low level drivers。

  4. SPC5 studio开发环境。         

     

 

 

Master评估演示板

 

 

 

 

GUI评估工具和Slave评估演示板

         

L9963E 应用调试

 

本次调试主要基于Master评估演示板,实现成功配置一台L9963E设备ID,以及读取电池电压,具体形式如下图。

 

 

Master评估演示板示意图

 

L9963T是通用SPI到隔离SPI收发器,用于在不同电压区域的器件之间建立通信桥。收发器支持变压器和电容隔离,因为根据专有协议产生的隔离信号可通过两个去耦电路进行传输。设备可配置为SPI总线的从设备或主设备,并支持由8到64位长的SPI帧组成的任何协议。收发器管理信息传输,而不执行任何协议检查。

         

1. 基于GUI评估板调试

 

a) 配置ID1

 

 

 

b) 读取cell电压值

 

 

 

         

2. 基于SPC5 Studio开发环境编调试

 

SPC5 Studio是ST提供的用于SPC5系列车规级MCU做嵌入式应用开发的集成开发环境,其基于Eclipse PDE开发,支持灵活的用户自定义组件和丰富的第三方插件。

 

 

  

系统重新上电后,L9963E在初始化状态,并且ID为0,可以配置ID(1,2,3,…,31),一旦ID配置后,无法再配置其他ID。简易配置ID程序流程图如下:

 

 

配置ID流程图

 

Demo例程:

 

 

 

验证结果:

 

设置ID1成功,读取到Cell1和Cell14电压值(未转换)。

 

 

 

此帖出自汽车电子论坛
点赞 关注

回复
举报

2万

帖子

341

TA的资源

版主

沙发
 
本帖最后由 qwqwqw2088 于 2024-4-2 08:32 编辑

下图是典型的L9963x电池管理系统实例。主处理器通过SPI通信方式连接L9963T,多个L9963E以菊花链方式连接,通过变压器隔离接口与主处理器通信,具有高速、低电磁干扰、远距离、可靠的数据传输特点。

 

 

 

基于L9963x的高压蓄电池管理系统应用实例

 

上面提到在 L9963E重新上电后,在初始化状态,并且ID为0。在初始化状态下,只可以配置DEV_GEN_CFG寄存器 中的chip_ID,isotx_en_h和iso_freq_sel三个值(原文):

 

 

 

 

  • chip_ID:L9963E芯片ID(1,2,3,…,31),配置后,无法更改其他ID

  • isotx_en_h:菊花链高侧口,写1使能后,可以将数据透传出去

  • iso_freq_sel:数据传输速度,写1配置成高速,通讯速度可达2.66Mbps;写0配置成低速模式,通讯速度333 kbps

         

L9963T芯片也分为高速模式和低速模式两种,通过ISOFREQ管脚高低状态切换。ISOFREQ拉高后,L9963T发送的第一帧还是低速帧,从第二帧开始是才是高速帧。也可以在ISOFREQ拉高后,重新拉低再拉高下DIS管脚(L9963T休眠唤醒一下),这样操作后发送的第一帧就是高速帧。

 

需要注意的是L9963E和L9963T高低速模式需要一致。为了避免在比特率/幅度切换时丢失帧,必须遵循以下原则(原文):

 

 

         

虽然初始化状态,可以配置DEV_GEN_CFG寄存器 中的chip_ID,isotx_en_h和iso_freq_sel,但是强烈建议检查代码中,是否有未配置ID的情况下,先配置了isotx_en_h和iso_freq_sel,这样也会导致配置ID失败从而造成通讯异常原文:      

 

 

此帖出自汽车电子论坛
 
 

回复

2万

帖子

341

TA的资源

版主

板凳
 
本帖最后由 qwqwqw2088 于 2024-4-2 08:32 编辑

会导致配置ID失败从而造成通讯异常原文:      

 

 

         

 系统重新上电后,L9963x初始化如下图,配置最后一片L9963E后,开始去读电池电压电流值。

 

 

L9963x初始化框图

         

但是,在工况复杂的环境中,汽车BMS线束由于受到震动,有可能会导致L9963E芯片的供电断开,导致整个系统中某个L9963E芯片重新处于初始化状态,比如用4片L9963E为例,当整个系统初始化完毕后,状态如下所示,1#~4#的DEV_GEN_CFG中的寄存器值。         

 

 

 

若此时受到震动,3#掉电又重新恢复后,状态如下:

 

 

 

由于3#的ID为0,此时MCU和3#通讯不上,需要重新初始化这片L9963E。3#在低速模式,需要把1#和2#也切换成低速模式,不然3#也无法收到命令配置。最简单的方式是MCU不发送任何消息,等待通讯超时时间CommTimeout,这样可以使得整个系统进入休眠状态,这样有ID的L9963E被唤醒后是低速模式,省去了切换速度的麻烦。

         

另外,有些场景也是提出要保证配置的ID和实际的L9963E物理顺序要保持一致。比如当3#的L9963E断电恢复后,MCU在配置ID3时候,2#设备又出现断电上电,这时有可能把2#的L9963E设置成ID3,3#的L9963E设置成ID2,导致实际ID号与物理顺序不一致情况。

 

这样建议整个系统做逐次配置ID流程,比如需要4个L9963E:

  

  1. 所有L9963E进入低速模式(重新上电/休眠唤醒等);

  2. 读取ID1,未读到,配置1#的L9963E为ID1,读取ID1(未成功,配置读取ID1过程循环 3次),如果失败重新开始;

  3. 读取ID1,已读到,读取ID2,未读到,配置2#的L9963E为ID2,读取ID2(未成功,配置读取ID2过程循环 3次),如果失败重新开始;

  4. 读取ID1,已读到,读取ID2,已读到,读取ID3,未读到,配置3#的L9963E为ID3,读取ID3(未成功,配置读取ID3过程循环 3次),如果失败重新开始;

  5. ……依次如此;

  6. 所有L9963E都有ID后,将最后一片的L9963E高侧口关闭,广播切成高速模式;

  7. 开始读取转换电压电流值。

 

这样操作可以极大避免了ID号配置与物理顺序不符合的情况。

         

最后,附上推荐逻辑框图(可以根据实际情况完善)。

 

 

此帖出自汽车电子论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
【EEWORLD模块整理】+tlc2543(A/D)

今年我用的模块资料 已经证实好用

FPGA DCM时钟管理单元的理解

看Xilinx的Datasheet会注意到Xilinx的FPGA没有PLL,其实DCM就是时间管理单元。 --------------------------------------------- ...

电烙铁的使用小技巧

本人原创——乃自己当时查阅的资料和自己的一点点经验而写成,如有错误请多指教! 首先要说明的是,使用电烙 ...

ubuntu下修改内核发生“ncurses libraries“错误(解决方法)

BSEC@bsec-server:~/kernel/Kernel$ make menuconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/docproc HOSTCC script ...

在屏幕上显示大写字母DMH的VGA控制器

本帖最后由 PuesueDream 于 2015-7-22 17:18 编辑 基于ise14.7平台,用Nexys3开发板弄了一个显示程序。程序包含六部分 首 ...

msp430f149波特率设置

本帖最后由 灞波儿奔 于 2020-1-10 23:14 编辑 TI MSP430系列单片机,usart模块的波特率值设定是通过以下三个寄存器决定的 ...

为什么给一个变量赋值0时,直接写=0,而给它赋值0xffffffff时要写成=0xffffffffu

为什么给一个变量赋值0时,直接写*ram=0即可,而给它赋值0xffffffff时要写成*ram=0xffffffffu, 以下是具体的代码 /****** ...

报名提醒:最后几小时,100套价值390元平头哥RISC-V生态开发板免费送~

最后几小时啦,想要的网友速速来~100套价值390元平头哥RISC-V生态开发板——RVB2601来袭,现在提交创意,即有机会免费 ...

在现代计算机上运行虚拟Mac Quadra 900

682909 macintosh.js 是一个模拟 1991 年 Macintosh Quadra 900 和摩托罗拉 CPU 的虚拟机,它完全用 JavaScript 编写(因此请 ...

反激电源辅助供电绕组串联电阻

看到很多反激电源辅助绕组串联电阻的,如下图电阻Rvcc,想问一下这个电阻的作用是什么?

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表