亚里士多德认为勇敢是怯懦(不及)与鲁莽(过度)之间的中间状态,是在两个坏的极端(怂包和莽夫)之间寻求平衡。真正的勇敢既能迎视危险,又能审慎地做出判断与选择。
此外,亚里士多德不认为“出于愤怒和暴烈性情的行为”是真正的勇敢,亦不认为“出于耻辱感和荣誉欲的勇敢”是纯粹的勇敢。
不仅纯爷们需要勇敢,手机也需要勇敢,体现在手机电源设计上,它也需要平衡,下面试着为诸君讲述明白。
背景
MTK的平台LDO在为外设供电时,如果电容总容值核查的不细心,则容易因电容容值超标,导致手机上电开机(Power ON)过程异常,触发OCP而摆烂,不能正常开起来。
而这尤以部分大型外设为甚,以触摸模组(Touch Module)为例,它便经常涉及这种幺蛾子事情。
MTK有专门一路电源为触摸模组供电,命名为VTP,它对总容值有要求,你可以在Design Notice中查到。
在项目开发的时候,手机工程师兢兢业业,一般可以保证手机主板上总电容满足要求,但容易忽略触摸模组上的电容,或者模组存在一供、二供,而工程师没有核查到容值差异。这些电容不会显示在手机的原理图上,但电容容量非常可观,主板和外设两部分电容叠加起来,容易出现总容值超标,从而引发该路电源在开机时触发OC及OCP。
因此在check平台LDO的应用时,必须仔细check如下两个条件,MTK在Design Notice写的很明白。
- Vout端总电容容量,总电容容值要处于Cout_MIN和Cout_MAX之间;
- LDO Constraint,限定了两个环路(LOOP1和LOOP2)的RLC参数。
![]()

原理
那为什么电容总容值过大,会导致开机失败呢?
我们都知道,LDO启动瞬间,其输出电压是从0V开始上升。负载端的电容(总电容)在初始时刻相当于短路。根据公式 Iout = C * dVout/dt,如果总电容大,或输出电压的上升速率快,则会产生一个巨大的Iout,冲向电容,为其充电,像饿狗吃食一般激烈、鲁莽。

这个电流峰值很容易超过LDO的标称OCP阈值,从而触发OCP。
这不是一个稳态过流问题(负载正常工作电流并不大),而是一个瞬态过流问题。OCP电路无法区分“给电容充电的浪涌电流”和“真实的短路故障电流”。为了保护自身,一旦电流超阈值就会触发,属于是宁可错杀一千,不可放过一个。
上述内容是个笼统的概念,各家都有软启动措施,在具体实现上有细微差异,以MTK为例,MTK的机制是“两段式”爬坡,可分为阶段一和阶段二,具体为:
- 阶段一,在设定的Soft Start时间内,使用小电流对输出电容进行驱动,但如果电容过大,Soft Start时间已经到了,输出电压仍未到达目标电压,就会触发阶段二。
- 阶段二,一旦Soft Start阶段结束,LDO会以大电流对输出电容进行驱动,OCP电路也开始计时,如果在OC Debounce时间内成功爬坡到目标电压,则不会触发OC中断和OCP。但如果没在OC Debounce时间内爬坡到目标电压,便会触发OC中断和OCP。
可见Cout过大是万恶之源,如果超标很多,我们不可能无限制的向它妥协,是没救的;但如果仅仅是超标一丢丢,还是能抢救一下的,这便涉及到如下解决方案。
解决方案
如果是项目前期,发现这个问题后,减少电容,降低容值即可,就像减肥管住嘴一样。
但如果业已到了项目后期,主板已经定型,或者供货压力,导致模组存在一二供,而且两个模组的容值差异较大,又如何避免电源的Turn-on OCP呢?
总的来说有如下几个方案:
1、调整Soft Start时间
平台电源Soft Start时间是可调的,可以让软件同事调节下soft start的时间,把它延长。
2、调整OC Debounce时间
如果soft start时间已经调到最大,但仍然没效果,这时可以尝试调整OC Debounce时间。Debounce即消抖,对过流信号进行延时确认,以排除瞬态的干扰。过流信号超过设定阈值,并且满足Debounce时间(定时器设定),才会被判为真正的过流。
3、禁用OC中断功能
若软启动时间和OC Debounce时间均已开到最大,但依然会触发OCP。这时可以尝试禁用OC_INT(中断)功能,通常便能正常上电了。然后在爬坡完成之后,再通过寄存器打开OC_INT功能。这有点像掩耳盗铃,但是一定程度上还是管用的。