RT1180 XMCD的特点和使用注意事项

瑞安爱车人 2025-10-12 团购爱车 4465

之前在 “XMCD – i.MX RT11xx系列简单易用的特定外设配置功能”的文章给大家介绍了XMCD功能的基础知识和用法,不过前面是以RT1170为例介绍的,本文将基于RT1180着重介绍XMCD的特点以及使用时的注意事项。

XMCD offset

与RT1170 固定的XMCD偏移位置不同,RT1180的XMCD偏移量因启动设备而异。下表列出了使用不同启动设备时的XMCD偏移量。

97afb554-99aa-11f0-8c8f-92fbcf53809c.png

XMCD支持配置以下外设:

HyperRAM/APMemory (FlexSPI接口)

SDRAM (SEMC接口)

XMCD配置HyperRAM/APMemory

XMCD利用FlexSPI RAM 配置块来配置连接到FlexSPI接口的HyperRAM或者APMemory PSRAM设备。

与RT1170相比,RT1180在使用XMCD时有一个limitation需要特别注意:

图1 RT1180 FlexSPI AHBCR寄存器

如上图所示,RT1180的FlexSPI模块开放了AHB Boundary Alignment功能且默认设置为No limit,该功能在RT1170中没有开放且默认设置为1KB。

RT1180 XMCD对于该功能保持了默认值设置,也就是对AHB读写操作的边界不做任何限制,因此对于那些规定了读写操作无法跨边界的外设来说,FlexSPI AHB读写一旦跨边界,则会出错。 比如图2中的Dual-die的HyperRAM,图3中的Apmemory厂商的OPI PSRAM,都有不能跨边界操作的要求。

基于此,若需要用到RT1180 XMCD去配置初始化HyperRAM或者APMemory PSRAM外设时,尽量选用没有这些限制的HyperRAM/PSRAM。若实在需要使用,则建议在应用程序中将AHBCR寄存器中的ALIGNMENT域设为非0值后再对HyperRAM/PSRAM进行读写操作。

9868a942-99aa-11f0-8c8f-92fbcf53809c.png

图2 Dual-die HyperRAM

图3 Apmemory OPI PSRAM

XMCD配置SDRAM XMCD利用SEMC SDRAM配置块来配置连接到SMEC接口的SDRAM设备。相较于RT1170,RT1180在完整版配置方式中新增了图4中的几种配置。

1. SEMC模块DCCR寄存器相关配置

当dccr_en设为0时会使用默认的DCCR寄存器值(默认值为0xB),设为1时用户可以通过dccr_sdramen以及dccr_sdramval自定义设置DCCR寄存器。

2. SEMC模块SDRAMCRx寄存器相关配置

当sdramcr0_en, Sdramcr1_en, Sdramcr2_en, Sdramcr3_en设为1时用户可以自定义SDRAMCRx寄存器的值,设为0时则会将SDRAMCRx寄存器配置成默认的值,默认配置值如下所示:

SDRAMCR0 = 0x00000F30U | (port_size & 0x3U);(port_size为用户定义的)

SDRAMCR1 = 0x00772A22;

SDRAMCR2 = 0x00010A0D;

SDRAMCR3 = 0x21210409;

若选用的SDRAM的相关参数符合默认配置则可以直接选用默认配置,若有区别则需要用户自定义配置。

9920edd6-99aa-11f0-8c8f-92fbcf53809c.png

997daf08-99aa-11f0-8c8f-92fbcf53809c.png

图4 RT1180新增配置数据结构

使用XMCD

4.1 使用SDK

RT1180 SDK中加入了XMCD功能,采用简化配置HyperRAM或者SDRAM,通过USE_HYPERRAM或USE_SDRAM宏定义选择初始化不同的外设,注意只能定义其中一个宏,因为XMCD不能同时初始化这两种外设。

任意打开一个示例工程,切换到flexspi_nor_hyperram_debug都会包含XMCD初始化HyperRAM的代码。

99d72628-99aa-11f0-8c8f-92fbcf53809c.png

图5 工程文件中的XMCD

4.2 使用SEC工具

MCUXpresso Secure Provisioning Tool(SEC)是一款可以生成和配置可启动可执行文件的工具,可以支持XMCD功能进行FlexSPI和SEMC外设的配置。配置界面如图6所示:

9a3f1134-99aa-11f0-8c8f-92fbcf53809c.png

图6 XMCD配置界面

用户首先需要准备一份应用程序,该应用程序链接到对应外设地址中,且不用带boot header,然后导入工具的Source executable image处。

XMCD下拉栏选择FlexSPI RAM或者SEMC SDRAM,然后点击Edit即可进行对应外设的简化配置,如图7所示:

9a9cb050-99aa-11f0-8c8f-92fbcf53809c.png

图7 XMCD配置选择

配置完成后执行Build image生成可启动文件,最后利用Write image下载到板卡即可。

参考

1. i.MX RT1180 Reference Manual

2. XMCD – i.MX RT11xx系列简单易用的特定外设配置功能