前几期我们介绍了MC33771C的以下内容:
NXP BMS AFE芯片MC33771C学习笔记(1)介绍
NXP BMS AFE芯片MC33771C学习笔记(2)电源
学习之前先补充一下“电源”章节中的知识点,下图是VCOM与VANA在各个模式下的状态:
接下来我们接着学习......
一、工作模式
MC33771C有多种工作模式:reset mode / idle mode / init mode / normal mode / sleep mode / diagnostic mode,分别详细介绍:
reset mode: 寄存器SYS_CFG2[FLT_RST_CFG]域可以配置复位条件。
---- COM timeout (default 1024mS) reset,当通讯超时时复位,在normal mode下有效。
---- OSC fault reset,当检测到振荡器出问题时复位,在sleep mode下有效。
当复位后,除了FAULT1_STATUS寄存器的几个位,芯片的所有寄存器被初始化为默认值。
idle mode: 当上电后的tIDLE时间内没有通讯,则进入此空闲模式。此模式下不接收任何消息,只有被唤醒后,芯片从 idle mode 切换到 init mode。当通讯接口为SPI接口时并进入 idle mode后,如果CSB持续时间大于CSBWU_FLT=80uS,则芯片由 idle mode 转入 init mode。
init mode: 在上电或复位后,MC33771C会进入init mode,默认的CID=0,此时除了INIT寄存器外,其他所有寄存器都是只读的。在INIT模式下,未初始化CID的芯片是不会向后转发任何菊花链消息的,只会接收到请求一侧的消息并响应。必需在1~63之间分配一个非0的CID,才能进入正常模式。此分配对于SPI和TPL通信都是必需的。如果未在tIDLE时间内执行分配,则进入idle mode,心减少功耗。
normal mode:正常模式,不再赘述。
sleep mode: 在睡眠模式下,可通过周期性检测方法,监测过压、欠压、过温、低温、过流,还可以监测VPWR。处于周期性检测状态时,瞬间唤醒进行采样的时间是非常短的,基本上是打开VCOM电源和获取20个采样通道值的所需时间。
当检测到某个故障时,MC33771C执行总线唤醒并激活故障引脚FAULT。 为了让MC33771C进入睡眠模式,将SYS_CFG_GLOBAL[GO2SLEEP]位设置为“1”。
退出睡眠模式的方法:
---- 在TPL模式下,检测到总线唤醒序列。
---- 通过将CSB引脚从低状态转换到高状态(简称CSB唤醒)。
---- 在检测到某个故障条件中至少一个时(参见FAULT1_STATUS、FAULT2_STATUS和FAULT3_STATUS及其相关的唤醒掩码寄存器WAKEUP_MASK1、WAKEUP_MASK2和WAKEUP_MASK3)。
---- 根据SYS_CFG2[FLT_RST_CFG]字段的内容,将OSC fault monitoring设置为1。
---- GPIO0唤醒。
在SPI模式下需要注意一点,CSB的不当操作会导致芯片退出睡眠模式,所以MCU的引脚在MCU休眠时的状态要考虑。
diagnostic mode:在诊断模式下,执行设备的性能完整性检查。需要注意的是,当MC33771C处于诊断模式时,循环转换会停止,OV/UV/OT/UT检测不会自动执行。若要执行OV/UV/ OT/UT或任何其他需要转换的保护功能,控制器必须发控制命令。
为了防止MC33771C持续在诊断模式中,寄存器DIAG_TIMEOUT计时器超时情况下,MC33771C恢复到正常模式,并将FAULT3_STATUS[DIAG_TO_FLT]位设置为逻辑1。
二、片内温度
内部温度测量将在每个ADC转换过程中自动完成。IC温度测量值的结果放在MEAS_IC_TEMP寄存器中。MEAS_IC_TEMP的分辨率为32 mK/LSB。
除了数字温度测量寄存器外,MC33771C还配备了一个硅过温热关闭(TSD)。如果硅热关机被激活,则MC33771C将停止所有监控操作,并在故障FAULT引脚被激活的同时进入低功耗状态。当IC温度恢复正常时,MC33771C恢复正常运行,此时需要重新初始化芯片。
在硅热关机被激活的状态下,FAULT2_STATUS[IC_TSD_FLT] 位被置“1”,FAULT引脚被激活;停止电压采样转换;VCOM 和 VANA关掉;所有均衡关闭,CB_DRVEN被清零;
三、总结
本想画一个工作模式的状态图,但是时间有限。
下一章节我们继续MC33771C的学习。