logo资料库

飞思卡尔电池管理芯片MM9Z1_638的应用设计.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
飞思卡尔电池管理芯片MM9Z1_638的应用设计 飞思卡尔电池管理芯片 的应用设计 本文主要介绍飞思卡尔新型电池管理芯片MM9Z1_638在锂电池管理以及被动均衡方面的应用。以4块锂电池的 监控为模型,详细说明了基于MM9Z1_638的系统设计、各个模块的应用,以及元件参数的选择。 引言 随着中国市场对电池需求的迅速增大,越来越多的公司加入到电池管理的开发、设计中来。飞思卡尔半导体适时推出多路电池 管理芯片MM9Z1_638。本文着重介绍MM9Z1_638电池管理系统的搭建、各个模块的功能,以及所用元件的选型,希望帮助 读者掌握基于MM9Z1_638的电池管理系统原理,并快速实现电池管理系统的设计。 1 MM9Z1_638特性 MM9Z1_638是一个全面集成的电池监控器件。该器件可通过一个外部分流电阻进行精确电流测量,可通过使用内部校准电阻 分频器或外部分频器提供4路电压测量,其包括一个内部温度传感器,可贴紧电池并测量电池温度,外加4个外部温度传感器 输入。 MM9Z1_638包括LIN 2.2协议和物理接口以及一个MSCAN协议控制器,可通过外接一个CAN接口芯片与汽车总线连接。 MM9Z1_638特性如下: ◆ 宽电池电流测量,可实现片上温度测量。 ◆ 采用内部电阻分频器提供4块电池电压测量,采用外部电阻分频器提供最多5个直流电压测量。 ◆ 电压通道和电流通道间的测量同步。 ◆ 5个外部温度传感器输入,同时为外部温度传感器供电。 ◆ 低功耗模式,采用低电流工作。 ◆ 多唤醒源:LIN、计时器、高压输入、外部CAN接口、电流阈值和集成。 ◆ 提供高精度内部振荡器,并提供与外部晶体的连接。 ◆ 支持LIN 2.2/ 2.1/ 2.0协议和物理接口。 ◆ 提供MSCAN协议控制器,能够为8引脚和14引脚CAN接口供电。 ◆ S12Z MCU,带有128 KB闪存、8 KB RAM、4 KB EEPROM。 2 MM9Z1_638组成的电池监控系统 单片MM9Z1_638最多可实现对4块锂电池的监控,组成的电池监控系统如图1所示。 其中,Vsup的正常工作电压为3.5~28 V。Vbat1=2.2 μF,Vbat2=100 nF。 图1 MM9Z1_638电池监控系统 2.1 电池电压的测量 通过VSENSE0~3来测量4块电池的电压,如图2所示。 其中,电池#1的电压应为VSENSE0-(VSENSEL-VSENSEH),其他电池的电压是两个VSENSE的差。各通道电压测量范围 如表1所列。 图2 电池电压测量 表1 各通道电压范围 2.2 电池电流的测量 如图3所示,在电池的负端串接一个Rshunt电阻(分流电阻),通过测量Rshunt两端的电压,计算出电池的电流。Rshunt可 以采用50~200 μΩ。ISENSEH/L的正常测量范围为-0.3~0.3 V。 2.3 电池温度的测量 通过NTC来测量每一块电池的温度,把NTC贴在电池的表面,每一路温度测量电路如图4所示,温度的正常测量范围(PTB0 ~3)为0~1 V。
在测量温度时,设置寄存器使PTB5接地。在温度变化时,NTC的电阻会改变,通过测量PTBx的电压来检测电池的温度。其 中,x为0~3,元件的参数如表2所列。 图3 电池电流测量 图4 电池温度测量 2.4 电池被动均衡 当某一块电池的电压比其他电池的电压高时,需要通过放电来降低这块电池的电压,实现被动均衡。每块电池通过一个开关与 放电电阻相连,实现对电池放电。开关可以采用飞思卡尔的多路开关芯片MC33879,MM9Z1_912通过SPI实现对MC33879的 控制,电路如图5所示。 表2 元件参数表 图5 MC33879控制电路 图中,Cvpwr=Cvdd=100 nF, R可选用10~20 Ω,VDDX为MM9Z1_912的5 V输出,VSUP为电池组正端,PA0~PA3为 MM9Z1_912的复用SPI接口。MC33879的每一路开关既可以接在电池正端,又可以接在电池负端来使用。 2.5 MM9Z1_638的CAN总线接口 MM9Z1_638支持CAN和LIN接口,LIN接口可以直接接LIN总线,CAN的接口是MSCAN,所以需要外接一个CAN接口芯片才 可以接到CAN总线上。可以选用飞思卡尔的MC33901或MC34901作为CAN接口芯片,接口电路如图6所示。 图6 接口电路 图中,VDDX为从MM9Z1_638输出的5 V电源,PA4/PA5为MM9Z1_638的MSCAN输入/输出引脚,PA6为MM9Z1_638的I/O 接口。MM9Z1_638可以通过PA6设置MM33901/MM34901工作在正常或待机模式,CAVL端接的是120 Ω的端接电阻,主要是 用来匹配的(匹配电阻)。 3 电池监控的例程 3.1 MM9Z1_638的SPI初始化 MM9Z1_638通过16位SPI来控制开关芯片MC33879,相关的SPI配置寄存器格式如下。 SPICR1: SPI的初始化函数如下: void SPI_MC33879_init (){ SPICR1_LSBFE = 0 ;//高位在前 SPICR1_SSOE = 1 ;//与SPICR2的MODFEN位配合, //使能SPI的CS信号 SPICR1_CPHA = 1 ;//与CPOL配合,实现SPI在SCLK //的下降沿采数据,上升沿发数据 SPICR1_CPOL = 0 ;//与CPHA配合,实现SPI在SCLK //的下降沿采数据,上升沿发数据 SPICR1_MSTR = 1 ;//SPI采用主模式 SPICR1_SPTIE = 0 ;//SPI发送中断禁止 SPICR1_SPIE = 0 ;//SPI接收中断禁止 SPICR2_XFRW = 1 ;//16位SPI格式 SPICR2_MODFEN = 1 ;//与SPICR1的SSOE位配合,
//使能SPI的CS信号 SPICR2_BIDIROE = 0 ;//与SPICR2的SPC0位配合使 //用,禁止接收/发送的缓冲 SPICR2_SPISWAI = 1 ;//在芯片等待模式下,停止SCLK //发送 SPICR2_SPC0 = 0 ;//设置发送/接收单向模式 SPIBR = 0x02;//在MM9Z1_638总线频率为32 MHz //的条件下,设置SPI的SCLK为4 MHz SPICR1_SPE = 1 ;//使能SPI模块 } 16位SPI发送函数: void SPI_send_16 (unsigned int data){ while (!SPISR_SPTEF); //判断SPI状态寄存器SPISR //的SPTEF位,等待发送寄存器为空 SPIDR = data; //数据送给SPI数据寄存器SPIDR } 3.2 电池被动均衡函数 通过控制开关芯片MC33879接合或断开放电电阻,实现每块电池的被动均衡。MM9Z1_638通过SPI来控制MC33879的每一路 开关。可以看出,要控制开关1~4,只需要对Bit0~3进行置位(“1”,开关闭合)、复位(“0”,开关打开)的操作。 #1电池的放电函数: void BAL_CELL1_ON (unsigned int* SPI_message){ *SPI_message = (*SPI_message & 0xFFF0) | 0x0001; SPI_send_16(*SPI_message); } #2电池的放电函数: void BAL_CELL2_ON (unsigned int* SPI_message) { *SPI_message = (*SPI_message & 0xFFF0) | 0x0002; SPI_send_16(*SPI_message); } #3电池的放电函数: void BAL_CELL3_ON (unsigned int* SPI_message) { *SPI_message = (*SPI_message & 0xFFF0) | 0x0004; SPI_send_16(*SPI_message); } #4电池的放电函数: void BAL_CELL4_ON (unsigned int* SPI_message){ *SPI_message = (*SPI_message & 0xFFF0) | 0x0008; SPI_send_16(*SPI_message);
} 4 块电池全部断开放电电路的函数: void BAL_4CELL_OFF (unsigned int* SPI_message){ *SPI_message = *SPI_message & 0xFFF0; SPI_send_16(*SPI_message); } MC33879的SPI格式如下。 结语 通过介绍基于飞思卡尔电池管理芯片MM9Z1_638的硬件系统、软件模块,阐明了电池管理系统的设计流程,详细分析了开发 中的技术难题和细节。对于想要开发基于MM9Z1_638的工程技术人员有直接的参考意义,同样,对于开发基于其他电池管理 芯片的设计也有一定的参考价值。
分享到:
收藏