一个BMS主控项目,需要用到MC33FS6523CAE 的低功耗模式,即休眠模式,使用IO_5上升沿唤醒,VKAM功能关闭,电路如下图一所示。
在调试过程中,发现MC33FS6523CAE不能进入休眠模式。工程师用劳特巴赫跟踪器TRACE32跟踪,发现IO_5的唤醒状态位IO_5_WU被置“1”,如下图二所示,表明IO_5上出现了上升沿。分别作了以下测试,证明问题出现在MC33FS6523CAE内部。
1,用示波器测量电路中IO_5引脚上的信号,没有观察到杂波脉冲,信号一直为低电平;
2,用示波器的单次触发功能,触发电平设置为1V,向MC33FS5623CAE发送进入休眠指令后,MC33FS5623CAE不能休眠,用TRACE32观察到IO_5_WU置位,示波器上没有观察到脉冲信号,信号一直为低电平;
3, 拆掉R29电阻,断开外部电路,向MC33FS5623CAE发送进入休眠指令后,MC33FS5623CAE不能休眠, IO_5_WU会置位。
根据上面的测试,说明问题在MC33FS5623CAE内部,怀疑芯片内部电路中产生了一个上升沿的脉冲。
4,使能VKAM,设置成MC33FS5623CAE在休眠时,IO_5引脚上输出3.5V电压,设置IO_5下降沿唤醒。测试结果,向MC33FS5623CAE发送进入休眠指令后,MC33FS5623CAE能够休眠。把IO_5接地,能够唤醒MC33FS5623CAE。
5,禁止VKAM,设置成MC33FS5623CAE在休眠时,IO_5引脚上的电压位0V,设置IO_5下降沿唤醒。测试结果,向MC33FS5623CAE发送进入休眠指令后,MC33FS5623CAE能够休眠。不能唤醒MC33FS5623CAE。
由第4、5项测试结果,我们认为,向MC33FS5623CAE发送进入休眠指令后,MC33FS5623CAE内部在IO_5电路上产生了一个上升沿。但是我们不知道为什么会产生,是操作方法错误?还是其他方面影响? 是不是可以通过软件解决? 代码截图如下图三所示。