【认识 i.MX RT】RT1060的最小系统

        前一篇博文介绍了我对 NXP 的 跨界 MCU 的一些初步的认识,接下来我们就以 RT1060 为例来探讨一下最小系统的硬件设计吧。

        对于 RT1060 的最小系统,包括:电源、时钟、复位、存储、系统启动、调试和下载等等。

1、电源

        RT1050/60 有多个电源域,每个电源域的描述以及退耦电容的布置要求如下表所示:

        看着有这么多电源引脚,但其实最小系统只需要提供一个 3.3V 电源。因为 RT1060 内部集成了一个 DCDC,可以提供内核的电源。

        另外在电源启动时序上需要注意,如下图所示:

        

        这部分的电路可以参考下图:
        

        从这张图上可以看出我们在设计电路时需要注意如下:

              1) VDD_SNVS_IN 最先给电, 单独给电 或者与 VDD_HIGH_IN 短路连接;

              2)待 VDD_SNVS_IN 上电稳定之后,使能 PMIC_REQ_ON 引脚 (置高电平 外部 DCDC 电源可以通过这个引脚使能输出,给其它电源域供电。

              3)在内部 DCDC 输出稳定的电压 DCDC_OUT 给内核 VDD_SOC_IN 之前,需要 1ms 的延时,等 DCDC_IN 电源稳定之后 再 拉高 DCDC_PSWITCH 引脚电平,使能内部 DCDC 输出。

              4)POR_B 可以产生一个复位信号,使系统复位,进入正常的工作模式。

        另外,还需要注意 如下几点

              1)即使没有用到 ADC,也需要给 VDDA_ADC_3P3 引脚上提供 3.3V 电源。

              2)如果没有使用内部 DCDC,而是通过外部电源给 VDD_SOC_IN 上电的话,还是需要给DCDC_IN 供电,将 DCDC_PSWITCH 接地,并且保持 DCDC_LP 浮空。

              3)在 PCB Layout 时,应使 DCDC 电流环路尽量小,避免 EMI 问题。

              4)ONOFF 按键用来切换 PMIC_REQ_ON 输出电平,正常模式 下 长按 5 秒, PMIC_REQ_ON输出低电平,外部 DCDC 关闭,系统进入 SNVS 模式。反之 SNVS 模式下通过按 ONOFF 按键进行唤醒, PMIC_REQ_ON 输出高电平打开外部 DCDC 电源。

2、时钟

        RT1060 最小系统电路上的时钟包括高频时钟和低频实时时钟 。

        高频时钟的外接晶振频率为 24MHz 要求晶振的串联谐振阻抗(ESR)不得高于 80Ω,驱动级别(DL)小于 250μW。推荐使用串联谐振阻抗(ESR )50Ω,驱动级别(DL)200μW 的晶振。 为了保证高频时钟的正常启动,在 XTALI 端还需要接一个 2.2MΩ 的接地电阻。 这个电阻必须靠近XTALI 引脚 P11 。

        低频实时时钟外接晶振频率为 32.768KHz,要求晶振的串联谐振阻抗(ESR)不得高于 100KΩ。在芯片内部也集成有一个 40KHz 的振荡器,而且这个片上振荡器的启动速度比外部晶振快,但是精度公差是 50%。所以如果不要求很高精度的时候,我们可以不接外部晶振,并将 RTC_XTALI 接地, RTC_XTALO 浮空。

        这部分的电路原理图可参考下图:


3、复位

        我们可以通过POR_B 引脚复位 RT1060。在 POR_B 引脚上接一个复位 IC,在上电时拉低POR_B 信号,直到 VDD_HIGH_CAP 和 VDD_SNVS_CAP 电源稳定。 POR_B 信号上有一个100KΩ 的内部上拉电阻连到 VDD_SNVS_IN,所以如果需要增加外部上拉电阻,则需要将上拉电阻连到 VDD_SNVS_IN,以避免在 SNVS 模式下的电流泄露。

4、存储

        从RT1060 的 Datasheet 中,我们得知芯片内部集成有 128 KB Boot ROM 和 1MB RAM。128KB Boot ROM 是用于存储芯片启动代码的。而 1MB ROM 中有 512 KB 可以用于配置成 ITCM(用于存放指令 和 DTCM(用于存放数据)。

        所以我们在最小系统中要增加一个片外Flash。是否增加片外 RAM 可根据需求而定。可以采用 FlexSPI(串行方式)、LPSPI(串行方式)、µSDHC(串行方式)和 SEMC(并行方式)。

  • FlexSPI 可以接串行 NOR Flash、串行 NAND Flash 和 串行 RAM 。
  • LPSPI 可以接串行NOR Flash 和 EEPROM。
  • SEMC 可以接并行 NOR Flash 和 RAWNAND(SLC) 和 并行 RAM。
  • µSDHC 可以接SD 卡和 eMMC/MMC。

        FlexSPI 支持 2 路 SPI,最多支持 4 片 IC。每个通道支持 1/2/4/8 模式的数据传输。 对于QSPI Flash,可以达到 133MHz 的读写速度(此时 FlexSPI_DQS 引脚浮空);对于 Octal Flash 可以达到 166MHz 的读写速度(此时 FlexSPI_DQS 引脚必须直接连到 Flash 芯片上) 。

        对于 SEMC 外接 RAM/ROM,读写速度可以达到 166MHz,所以在硬件设计时需要特别注意高速信号线的布置。所有高速信号线长度差控制在 ±50mil 以内,单端阻抗控制在 50Ω±10 。

5、 系统启动

        系统通过 BOOT_MODE[1:0] 和 eFUSE 或者 GPIO 引脚确定启动模式和器件。下表是与系统启动设置相关的引脚:


        

        BOOT_Mode[1:0] 的不同值决定了采用哪种启动方式:

              —— [00b] 表示:通过 eFUSE 确定启动方式;

              —— [01b] 表示:通过串行接口启动,包括 USB1 和 UART1;

              —— [10b] 表示:通过内部设置启动。

        当 BOOT_Mode[1:0] = 00b 时,这种模式与 BOOT_Mode[1:0] = 10b 时的类似,不同的是GPIO 引脚的设置无效,而是采用了 eFUSE 的设置。

        当 BOOT_Mode[1:0] = 10b 时,将会通过 BOOT_CFG1[0~7] 和 BOOT_CFG2[0~3] 确定具体的启动方法。其中 BOOT_CFG1[4~7] 可确定通过哪种接口下载镜像代码 ,如下表所示:
        

        如果要通过 FlexSPI 接 NOR Flash,则可以根据下表配置:
        

        如果要通过 FlexSPI 接 NAND Flash 则可以根据下表配置:
        

        需要注意的是:

        BOOT_CFG 信号是确保功能和运行正常的必要条件,不得浮空。不正确的设置可能会导致不正确的启动序列。另外, 如果 BOOT_MODE 和 BOOT_CFG 信号与 LCD 信号复用,外围设备可能要求对 LCD 信号采用一个外部或片上电阻以尽量减少信号浮动。如果使用启动信号会影响外围设备,则要用模拟开关、开路集电极缓冲器或等效器件隔离该路径。影响外围设备,则要用模拟开关、开路集电极缓冲器或等效器件隔离该路径。

6、调试和下载设置

        RT1060 可通过 SWD 或者 JTAG 接口调试和下载代码。 SWD 是默认的调试模式,如果要改成使用 JTAG 方式,则需要 将 eFUSE 中的 DAP_SJC_SWD_SEL 设置成 1。

        以上是我对 RT1060最小系统硬件设计方面的一些理解,希望对有这方面需求的朋友有些帮助。如果要获得更详尽的信息,可以参考 NXP 官网的 RT1060 参考手册。

        在后续的博文中,我会继续写一些关于 RT1060 的设计笔记,请多多来大大通关注我哦。

参考资料

  1. i.MX RT1060 Processor Reference Manual - https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1060-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1060?tab=Documentation_Tab
  2. MIMXRT105060HDUG.pdf - Hardware Development Guide for the MIMXRT1050/MIMXRT1060 Processor

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论