GPIO先上电竟然会导致MCU启动失败?
内容提要
本文介绍了i.MXRT1xxx系列GPIO提早供电导致内部DCDC启动失败的问题及解决方案。建议测量内部DCDC输出电压,通过串联隔离电阻、选择不干扰DCDC_PSWITCH信号的GPIO组或改为外部PMIC供电来规避问题。
延伸解读
问题根源:GPIO漏电预充DCDC_PSWITCH
文章指出,当GPIO提前上电时,电流会通过GPIO的ESD二极管漏电到NVCC_GPIO,再经DCDC_3V3传到DCDC_IN和DCDC_PSWITCH。这相当于给DCDC_PSWITCH的RC延时电路预充了电压,导致正式上电时RC充电到1.5V的时间缩短,可能小于要求的1ms,从而破坏上电时序,使内部DCDC启动失败。
影响范围:哪些GPIO会触发问题
根据RT1060-EVKB的设计,NVCC_GPIO、NVCC_SD1、NVCC_EMC供电下的任何GPIO提前上电都可能影响启动,因为它们与DCDC_PSWITCH存在漏电路径。而NVCC_SD0供电的GPIO则不会,因为其走线与DCDC_PSWITCH没有连接。因此,在多板卡系统中,需特别注意连接器上GPIO的供电域归属。
排查方法:先测DCDC_LP电压
遇到类似启动失败时,文章建议第一时间测量i.MXRT1xxx内部DCDC的输出电压(DCDC_LP)。如果该电压为0,则基本可确定是上电时序问题,而非程序或芯片损坏。这能快速缩小排查范围,避免在软件或其它硬件上浪费时间。
规避措施:三种方案可选
文章给出三种解决方案:一是在UART等信号线上串联隔离电阻(如1KΩ),降低漏电电压;二是选用不干扰DCDC_PSWITCH的GPIO组(如GPIO_SD_B0_xx)进行连接;三是改用外部PMIC供电,弃用内部DCDC。实际选择需根据系统成本和设计约束权衡。
Q&A
GPIO提早供电会导致什么问题?
GPIO提早供电会影响上电时序,导致内部DCDC启动失败。
RT1060启动失败的主要原因是什么?
RT1060启动失败的主要原因是VDD_SOC_IN上没有电压,内部DCDC未能正常输出。
如何解决GPIO提早供电导致的启动失败问题?
可以通过串联隔离电阻、选择不干扰DCDC_PSWITCH信号的GPIO组或改为外部PMIC供电来规避问题。
DCDC模块正常启动需要满足什么条件?
DCDC模块的正常启动依赖于严格的上电时序,DCDC_PSWITCH和DCDC_IN之间需至少1ms的延时。
在双MCU系统中,如何避免启动失败?
在双MCU系统中,可以通过测量内部DCDC输出电压来判断是否存在上电时序问题,并采取相应的解决方案。
为什么GPIO提早供电会影响DCDC_PSWITCH的RC电路?
GPIO提早供电会导致DCDC_PSWITCH的RC电路预充,从而缩短上电时序,影响正常启动。