汽车电子需要在产品中加入静态电流管理,为了保证汽车电平在存放状态不出现亏电状态,因此保证产品的静态电流符合车厂规定至关重要。
在汽车电子中需要使用CAN唤醒和休眠,如下图,在正常使用时,唤醒状态:CAN被唤醒时 LDO输出3.3V给到MCU,MCU拉低EN信号,DC-DC工作。休眠状态:CAN休眠LDO关闭,MCU断电, DC-DC不工作。
但在实际测试过程中,发现设备会出现不休眠的状态,因此需要分析为什么会出现不休眠的情况?
通过上图原理可知,正常状态DC-DC EN脚在高电平是不工作,在低电平工作,在MCU上电以后MCU通过拉低IO口,DC-DC工作,MCU断电状态,EN脚通过电阻分压为高电平,DC-DC不工作。
上述理论看似没问题,但是在实际测量过程中,发现在MCU断电状态,EN脚的电压被拉低了,不能维持2.2V高电平,如下图,休眠后电压处于0.4V-1.2V之间(电压低于0.4V属于低电平 ,高于1.2V属于高电平),EN脚不能维持高电平,启动DC-DC芯片,导致静态电流大,休眠失败。
所以一个问题,MCU都掉电了,为啥还会把外围电路电压拉低?
带着这个疑问,问了一下供应商,看看MCU在掉电状态内部什么电路会把外围电路电压拉低。供应商给我的答复是有可能是IO口的防静电管,导致被分压,如下图
通过万用表二极管档,测量IO口,确实存在0.7V左右的二极管压差,可确定MCU内部存在防静电二极管,电流流向如上图所示。
知道原因后对原理图进行整改,如下图,增加NMOS开关来实现和IO的隔离,同时把分压电压调大,在MCU掉电以后,EN脚一直为高电平,不会出现被拉低的情况,测试后无问题。
总结:MCU IO口在掉电状态需要留意内部防静电二极管的存在,在做高低使能时充分考虑IO口掉电状态情况。