首页 > 58必威网

LTC6802检测串联电池组电压电路设计

来源:新能源汽车网
时间:2018-01-22 20:07:41
热度:

LTC6802检测串联电池组电压电路设计  摘要:介绍了串联电池组电压管理芯片LTC6802—2的特点和使用方法。分别以51单片机和TMS320LF2407为控制器,从通信的角度详

  摘要:介绍了串联电池组电压管理芯片LTC6802—2的特点和使用方法。分别以51单片机和TMS320LF2407为控制器,从通信的角度详细探讨在硬件设计和软件设计上应注意的问题,实现LTC6802—2对串联电池组电压的检测。并通过实验数据分析,验证了此方法的有效性。

  1、LTC6802—2介绍

  LTC6802—2内部含有12位的AD转换器,精密电压基准,高电压输入多路转换器和SPI串行接口。每个芯片可以检测12节串联在一起的电池。同时,芯片还支持串联使用,最多可以将16个芯片串联在一起使用,即最多可以检测12x16=192节电池串联组成的电池组。每个AD的转换范同为0~5V,因此每个芯片的检测串联电池组电压可达60V。另外,LTC6802.2在LTC6802—1的基础上进行了改进,增加了4位的外部编址接口A0~A3,可对其进行编址,方便了对某一指定检测单元的单独操作。另外,LTC6802.2还具有高温保护功能,电池过充过放电状态监视,电量均衡功能。

  LTC6802.2有种工作模式:待机模式、测量模式和监事模式。上电默认为待机模式,此模式下,只有串口和5V的稳压基准源处于工作状态,其他所有电路均不_T=作。必须通过串ISI通信,对LTC6802.2进行配置才可以启动其他电路,此时可向CFGR0的CDC[2:0]位写入非0的值使其退出待机模式,LTC6802—2退出待机模式后VREF引脚可以检测到3.075V的脉冲基准电压信号,否则检测电压为0V,这可以作为判断串口通信成功的检测依据。

  2、硬件设计

  本文主要以51单片机和TMS320LF2407为主控器,分别介绍他们的硬件接口电路,并分析调试过程中遇到的问题。

  2.151单片机与LTC6802—2的通信接口

  图1给出了以51单片机为控制器的控制电路,在保证电路正常工作条件下,外围电路以最简单的形式给出。如果电池选用大容量动力电池,则要考虑加钳位保护电路,防止c引脚出现大的电流而损坏芯片。因为51单片机和LTC6802.2的通信接口均为5V工作电压,在只有一片LTC6802.2接入时,可以不加隔离器件,直接进行串口通信。

  51单片机的SPI串行通信接口使用P1.O~P1.3来模拟,模拟SPI接口时需要注意,该接口没有做其他的扩展用途,如果接有其他的扩展电路,在进行SPI通信时要进行屏蔽,否则有可能对串行通信造成干扰,导致无法正常通信。

LTC6802检测串联电池组电压电路设计

  2.2TM$320LF2407与LTC6802—2的通信接口

  公司的TMS320LF2407内部自带SPI串行通信模块,利用此模块可以简单地实现DSP与LTC6802—2的通信。通信中需要注意的是,通用SPI模块一般是每进行一次读写操作CS引脚就分别给出相应的片选信号,但根据LTC6802.2的时序需求,每次片选有效时,都要进行多次的读写操作。因此,此处不能使用SPI模块的片选,实验中选取DSP的PB4来给定片选信号。

  设计中需要注意的另一点是数字隔离器件的选取。因为LTC6802—2的5V基准电源的驱动能力比较弱,最大只能提供负载4mA的电流,所以选择数字隔离器件时必须选择低功耗器件,否则,功耗过大将导致LTC6802—2芯片发热,基准电源电压下降,当降至4.1V时,芯片将无法正常工作。本文选取ADUM14115_,它是ADI公司开发的一款超低功耗4通道数字隔离芯片,复合此处SPI通信的需求,并且功耗低,最高通信速度可达到10M,也满足通信的需求。图2是TMs320LF2407与LTC6802.2的工作电路。

  3、软件设计

  软件设计中主要需注意的是SPI通信的时序要与LTC6802.2的时序相匹配,时钟频率必须小于1M,通信模式按照LTC6802.2的规定cPHA:l和CPOL=1(其时序图如图3),但是由于TMS320LF2407的SPI通信模式与标准定义的差别,TMs320LF24O7的通信模式应该设为PHASE=0和PO.

LTC6802检测串联电池组电压电路设计

  LARITY=I。另外,需要注意的是由于TMs320LF2407自带SPI通信模块式的特点所限,在进行读取数据操作时需要虚发操作,已启动时钟,才能正常读取数据。

  因为LTC6802—2支持多次的连续读写操作,因此,通信过程中选取通用I/O作SPI通信的CS片选信号,而不是直接用SPI模块的片选信号引脚。使用LTC6802.2进行电压转换前需要先对其进行初始化,即写配置寄存器组CFGR0~CFGR5。读数据时要先发送要读取的LTC6802.2的地址f由A0~A3引脚接线确定),然后发送读数据指令,再进行读操作。其操作写控制寄存器步骤如下:(1)拉低CSBI;(2)发送写配置寄存器命令;(3)发送配置寄存器数据(cmm,CFGR2,…CFGR5);(4)抬高CSBI。

  读取电压数据操作步骤如下:(1)拉低CSBI;(2)发送要读取的LTC6802地址;(3)发送读电压命令;(4)发送电压寄存器中电压数据(CVRO0,CVRO1,…CVR17,PEC);(5)抬高CSBI。在读取电压过程中,如果电池电压有较大的变化或波动会使LTC6802复位,进入上电默认待机状态,此时读取电压寄存器的值是不变的,为最后一次测量值,因此每次读电压时尽量进行一次初始化配置,具体读电压流程如图4。

  软件设计上,51单片机模拟SPI通信与通用的模拟程序类似,下面主要介绍以TMS320LF2407的SPI接口进行通信的软件设计。

LTC6802检测串联电池组电压电路设计

  (1)初始化,程序如下:

  voidLtc68O2Init(void)

  {uchari,bur,Ltc6802;

  CFGR[0]=0x01;//配置寄存器的初始化

  CFGR[1]=0x00;

  CFGR[2]=0x00;

  cFGR[3]=OxO0;

  CFGR[4]=VUV:

  CFGR[5]=VOV;

  do

  {CL_CSBI;//片选信号,托低CSBI

  SpiWrite(WRCFG);//写配置寄存器

  for(i=0:i《6:i++1

  {SpiWrite(CFGR[i]);)

  SET—CSBI;

  delay(60);

  Ltc6802OK=1:

  CL_CSBI:

  SpiWrite(0x80);11图2中接线可知地址为0

  SpiWrite(RDCFG);

  fbr(i=0;i《6;i++)

  fif(i--0)buf=SPIreadO/0x80;

  elsebur=SPIread0;

  ifbufi=CFGR[i]1

  {Ltc6802=0;break;)

  }

  SET_CSBI;

  }while(Ltc6802);//配置不对重新配置

  }

  (2)写数据子函数

  voidSpiWrite(uintbuf)

  fuintflag=0;

  SPITXBUF=bufl8;//TMS320LF2407发送缓存寄存器为16

  位,从高位开始发

  while(1)//8位数据,将数据写入寄存器高8位

  {flag=SPISTS&0x40;

  if(flag==0x40)break;

  j

  SPIRXBUF=SPIRXBUF:

  }

  (3)读数据子函数

  uintSPlread0

  {uintflag,buf;

  SPITXBUF=O;

  while(1)

  {flag=SPISTS&0x40;

  if(flag==0x40)break

  }

  buf=-SPIRXBUF;

  returnbuf;

  }

  文中给出的初始化数据是只测量12接单体数据的情况下配置数据,根据系统需要,如果要对电池的过充电和过放电状态进行监控或连接电池少于12节,可以对CFGR0--CFGR5进行进一步的设置。

  4、测量结果分析

  对于电压检测,稳定度非常重要。稳定度越高,说明系统检测也准确,误差也越小。因为LTC6802—2内部是12位的AD,最小检测步长是1.5mV,对检测电压保留三位小数,对12节锂离子电池的测量数据进行记录,测量结果如表1。

LTC6802检测串联电池组电压电路设计

  对检测的电压值求方差,可以看到方差几乎为0,也就是说,检测电压比较稳定,而且检测精度较高。

  5、结论

  利用LTC6802—2检测串联电池组电压,单体电池串联数量多,电路结构简单,测量速度快,测量精度高,能满足一般的检测需求。另外,LTC6802.2是一款电池管理芯片,还具有温度保护功能,检测电池过充和过放电状态,还能对串联电池组进行均衡控制,只需要增加简单的外围电路和寄存器配置即可实现这些功能。因为实现了电池电压的检测,可以通过控制器判断电池的过充和过放电状态,从而进行更好的均衡电池电量,所以文中并没有对这些功能进行详细研究。但是,利用这种方法测量电池的电压,对更好地监视电池的充放电状态和能量均衡具有非常重要的意义。

Baidu
map