专栏名称: 面包板社区
面包板社区——中国第一电子人社交平台 面包板社区是Aspencore旗下媒体,整合了电子工程专辑、电子技术设计、国际电子商情丰富资源。社区包括论坛、博客、问答,拥有超过250万注册用户,加入面包板社区,从菜鸟变大神,打造您的电子人脉社交圈!
目录
相关文章推荐
最爱大北京  ·  《哪吒》刷屏,其实46年前的这个“初代哪吒” ... ·  17 小时前  
北京本地宝  ·  北京5家好吃的天花板级麻辣烫! ·  3 天前  
北京本地宝  ·  非京籍领取失业金是否影响购房资格? ·  昨天  
51好读  ›  专栏  ›  面包板社区

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

面包板社区  · 公众号  ·  · 2024-04-12 20:00

正文


大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 i.MXRT1xxx系列GPIO提早供电会影响上电时序导致内部DCDC启动失败

最近有一个 RW612 产品线的同事在设计一个双 MCU 系统 Demo 时发现,当 RW612 板卡和 RT1060 板卡通过 UART 对接时,如果 RW612 板卡提前上电,RT1060 板卡后上电,会导致 RT1060 程序无法正常启动。这其实是一个 i.MX RT 系列上典型的上电时序问题,今天痞子衡就和大家聊聊这个话题:

  • Note: 本文内容以 i.MXRT1060 为例,但基本也适用其他 i.MXRT1xxx 系列。

一、快速复现问题

痞子衡同事在用两块 MCU 板卡(RW612+RT1060)对接时遇到了问题,想复现这个问题,其实没有那么复杂,我们可以用一个USB转串口模块(3.3V)代替 RW612 来和 RT1060 的 ROM ISP UART 口连接:

痞子衡使用得这个USB转串口模块 TXD 和 RXD 驱动能力不同,空载电压测得均是 3.55V,但是和未上电的 RT1060-EVKB 板卡对接时,电压会有所下降,因此痞子衡测试了不同连接组合下的 RT1060 板卡上电启动结果:

USB转串口模块一直通电 RT1060-EVKB J46未连接 RT1060-EVKB J46连接后
模块TXD
芯片GPIO_AD_B0_13
模块RXD
芯片GPIO_AD_B0_12
NVCC_GPIO
NVCC_SD1
NVCC_EMC
NVCC_SD0 DCDC_PSWITCH DCDC_IN VDD_SOC_IN
DCDC_LP
VDD_SOC_IN
DCDC_LP
程序启动结果
未接 未接 0 0 0 0 0 1.275V 启动成功
未接 0.83V 0.33V 0 0.33V 0.33V 0 1.275V 启动成功
2.22V 未接 1.42V 0 1.42V 1.42V 0 0 启动失败
2.24V 1.79V 1.46V 0 1.46V 1.46V 0 0 启动失败

从测试结果可以看到,RT1060 程序启动失败的主要原因是板卡上电后,VDD_SOC_IN 上没有电压(即主芯片内部 DCDC 没有输出)。

二、内部DCDC上电时序要求

在分析启动失败问题前,首先需要简单了解下 i.MXRT1xxx 芯片内部的 DCDC 模块。在一些成本敏感的应用中,首推使用芯片内部 DCDC 供电给内核,因此 DCDC 模块能否正常启动决定了内核能否正常运行。

在恩智浦官网文档 《i.MX RT Hardware Development Guide for the MIMXRT1050/MIMXRT1060 Processor》 里对上电时序做了如下严格规定,其中最常发生问题的地方就是有效 DCDC_PSWITCH 和 DCDC_IN 之间至少 1ms 的延时(以 DCDC_IN 稳定在 3V 为时间起点,以 DCDC_PSWITCH 上升到 1.5V 为时间终点),如果不满足这个 1ms 延时要求,内部 DCDC 模块则可能会启动失败,无法正常输出电压给内核(DCDC_LP 脚)。

• The VDD_SNVS_IN supply must be turned on before any other power supply or connected (shorted) with the VDD_HIGH_IN supply.
• If a coin-cell battery is used to power VDD_SNVS_IN, ensure that it is connected before any other supply is switched on.
• An RC delay circuit is recommended for providing the delay between DCDC_IN stable and DCDC_PSWITCH. The total RC delay should be 5-15 ms.
• DCDC_IN must reach a minimum 3.0 V within 0.3 x RC.
• The delay from DCDC_IN stable at 3.0 V min to DCDC_PSWITCH reaching 0.5 x DCDC_IN (1.5 V) must be at least 1 ms.
• The power-up slew rate specification for other power domains is 360 V/s – 36k V/s.
• POR_B must be held low during the entire power up sequence

三、GPIO提早供电的影响

现在我们查看一下 RT1060-EVKB 原理图设计,外部电源输入 DCDC_3V3 负责给 NVCC_GPIO/SD1/EMC 以及 DCDC_IN 供电,同时 DCDC_IN 也经过了一个 RC 延时电路供电给 DCDC_PSWITCH,这是符合硬件设计要求的。

由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 两组 PAD 供电均来自于 NVCC_GPIO,当其中任何一个 GPIO 有电压时,均可能会漏电到 NVCC_GPIO。因此我们提前将 USB 转串口模块通过 ROM ISP UART 连到板卡,即会漏电到了 NVCC_GPIO->DCDC_3V3->DCDC_IN->DCDC_PSWITCH,即相当于给 DCDC_PSWITCH 的 RC 电路预充了一定电,等板卡正式上电,RC 电路升压到 1.5V 的时间就会缩短。这也就是上个小节表格里为何 DCDC_PSWITCH 预充到 0.33V 时不影响上电时序,而预充到 1.42V 时就不行了,因为延时小于 1ms 了。







请到「今天看啥」查看全文