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

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

内容提要

本文讨论了i.MXRT1xxx系列芯片的一个问题:GPIO提早供电可能导致内部DCDC启动失败。通过测试发现,RT1060程序启动失败的原因是VDD_SOC_IN上没有电压。文章介绍了i.MXRT1xxx芯片内部DCDC模块的启动时序要求,并解释了GPIO提早供电的影响。对于多板卡连接的解决方案,可以使用隔离电阻、选用不干扰DCDC_PSWITCH信号的GPIO组,或改为外部PMIC供电。

🔎

延伸解读

问题根源:GPIO漏电预充DCDC_PSWITCH

文章指出,当RT1060未上电时,若其GPIO(如UART引脚)提前有电压,电流会通过GPIO的ESD二极管漏电到NVCC_GPIO,再经板级电源网络传导至DCDC_IN和DCDC_PSWITCH。这相当于给DCDC_PSWITCH的RC延时电路预充了电荷,导致正式上电时DCDC_PSWITCH达到1.5V的时间缩短,无法满足与DCDC_IN之间至少1ms的延时要求,内部DCDC因此启动失败,VDD_SOC_IN无输出。

影响范围:哪些GPIO会触发问题

根据RT1060-EVKB的电源设计,NVCC_GPIO、NVCC_SD1、NVCC_EMC供电的GPIO提前上电均可能影响启动,因为它们与DCDC_PSWITCH存在漏电通路。而NVCC_SD0供电的GPIO则不会,因为其走线与DCDC_PSWITCH没有连接。这意味着在多板卡系统中,连接器上任何属于这些供电域的引脚提前带电,都可能成为隐患,而不仅仅是UART引脚。

排查与解决:先测DCDC_LP,再选对策

遇到i.MXRT1xxx启动失败时,文章建议第一时间测量内部DCDC输出(DCDC_LP)电压,若为0则基本可判定为上电时序问题。针对多板卡连接,可采取三种方法:在UART信号线上串联隔离电阻(如1KΩ)以降低漏电电压;改用不干扰DCDC_PSWITCH的GPIO组(如GPIO_SD_B0_xx)进行连接;或将板卡改为外部PMIC供电,彻底弃用内部DCDC。

❓

Q&A

GPIO提早供电会导致什么问题?

GPIO提早供电可能导致i.MXRT1xxx系列芯片内部DCDC启动失败。

RT1060程序启动失败的原因是什么?

RT1060程序启动失败的原因是VDD_SOC_IN上没有电压,导致内部DCDC无法正常输出。

i.MXRT1xxx芯片的DCDC模块启动时序要求是什么?

DCDC_PSWITCH和DCDC_IN之间必须至少有1ms的延时,以确保内部DCDC模块正常启动。

如何解决GPIO提早供电导致的启动问题?

可以使用隔离电阻、选用不干扰DCDC_PSWITCH信号的GPIO组,或改为外部PMIC供电。

为什么GPIO提早供电会影响DCDC_PSWITCH的启动时序?

GPIO提早供电会导致DCDC_PSWITCH的RC电路预充,从而缩短启动时序,可能导致启动失败。

在多板卡连接中,如何避免GPIO提早供电的问题?

可以在UART信号连接时串上隔离电阻,或选择不干扰DCDC_PSWITCH的GPIO组进行连接。

🏷️

标签

➡️

继续阅读