GPIO先上电竟然会导致MCU启动失败?

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

本文介绍了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电路预充,从而缩短上电时序,影响正常启动。

🏷️

标签

➡️

继续阅读