0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

恩智浦MCU加油站 ? 来源:未知 ? 2023-10-26 09:25 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

从i.MX RT1160/ RT1170 B0以及后续的RT1180开始,BootROM引入了XMCD新功能,其用途与传统DCD功能(之前文章介绍过)类似。DCD可以实现对芯片指定外设的配置,常常用于配置SEMC去初始化 SDRAM。但DCD仅支持寄存器操作,因此用户需要从寄存器角度去理解去配置,这种方式较为复杂且对用户来说不够友好,对于具有复杂时序配置要求的外设来说更加难以使用。

基于此,BootROM推出了XMCD,以一种对用户更友好更直观的方式对 SDRAM/HyperRAM等外设进行配置。

不过大家可能并不熟悉该功能或者还没真正的去使用过,今天就以RT1170上的XMCD为例带大家一探究竟。

1. 何为XMCD

XMCD全称ExternalMemory Configuration Data,是i.MX RT11xx系列芯片BootROM中的新功能,与DCD类似,用于应用程序启动前对系统外设进行特定配置。XMCD数据块位于IVT头偏移0x40的位置,由XMCD头和外设特定配置块组成。 XMCD支持配置的设备类型及相应的配置块如下所示:

  • HyperRAM/APMemory (FlexSPI接口) – FlexSPI RAM 配置块

  • SDRAM (SEMC接口) – SEMC SDRAM 配置块

XMCD头的定义如图1所示:

wKgaomU5wAGAJvRgAAEpzfTMgQE936.png图1 XMCD头

其中,[19:16]和[15:11]域仅对FlexSPI接口的外设有效,当选择SEMC接口时,这些区域被忽略,设为0即可。[11:0]域用于设置XMCD数据块的总大小,等于XMCD头大小+配置块大小。

下面分别介绍两种外设配置块:

1.1 FlexSPI RAM配置块

FlexSPI RAM 配置块用于配置连接到FlexSPI接口的HyperRAM或者APMemoryPSRAM外设。提供了简化版和完整版两种配置方式供用户选择。

其中,简化版配置可以满足大部分HyperRAM 或 APMemory 外设的典型应用。如图2所示,用户仅需要简单配置设备类型,频率,PINMUX等参数即可成功初始化外设。

wKgaomU5wAGAcPvmAANwep57YZw721.png图 2 简化版配置

当然,如果用户需要启用一些高级功能,XMCD还提供了完整的512字节FlexSPI RAM配置块以支持灵活的配置。具体的配置内容详见RT1170 Reference Manual的10.8.2.2章节。

1.2 SEMC SDRAM配置块SEMC SDRAM配置块用于配置连接到SEMC接口的SDRAM设备。与FlexSPI类似,也提供了简化版和完整版两种配置方式供用户选择。

XMCD提供了68字节数据结构用于SDRAM配置,图3展示了数据结构的前10字节内容。当选择简化配置时(即图中config_option设为0x00),仅需要配置该数据结构的前9个字节,即时钟频率,设备大小和port大小,不过该配置仅适用于连接到CS0的SDRAM外设且SDRAM相关参数是固定的,若外设连接到其他CS或当前参数无法成功初始化SDRAM,则需要使用完整配置。

若选择完整配置(即图中config_option设为0xFF),则需要配置整个68字节。完整数据结构详见Reference Manual第10.8.3.1章节。

wKgaomU5wAGABQl3AAIy0lX-uhg820.png图3 SDRAM配置数据结构(前10字节)

2. 如何使用XMCD

2.1 SDK的使用

RT1170 SDK从 2.12.0开始,就已经加入了XMCD功能且boot的时候默认使用XMCD初始化SDRAM,并采用简化版配置。

任意打开一个示例工程,都会包含xmcd.c/h文件,当工程选项预编译宏里有XIP_BOOT_HEADER_XMCD_ENABLE=1时被使能。

wKgaomU5wAKAa_lvAAN-DxB1pQ8324.png图4工程文件中的XMCD

不过SDK里面仅实现了使用XMCD简化配置初始化SDRAM,对于FlexSPI外设的初始化或者完整配置需要用户参考现有XMCD代码,结合前面介绍的SEMC/FlexSPI配置块的定义进行具体配置。

2.2 使用MCUBootUtility工具

NXP-MCUBootUtility是一款功能强大的一站式安全加密启动工具,其v5.3.2版本可以支持XMCD功能进行FlexSPI和SEMC外设的配置。

下载地址:https://github.com/JayHeng/NXP-MCUBootUtility/releases/tag/v5.3.2

该工具的XMCD配置界面如图5所示:

wKgaomU5wAKAarMPAALy2e496Y0221.png图5XMCD配置界面

该工具目前只有简化配置支持界面直接配置,完整配置需要用户生成相应的XMCD bin文件(该文件由XMC头与外设配置块组成)然后导入。

选择Use XMCD option即可进行外设的简化配置,如图6所示,选择SEMC或FlexSPI接口,然后在下方对应区域填入所需参数即可。

wKgaomU5wAKAWHuYAAE4oXxXOYo533.png

图6

XMCD简化配置

配置完XMCD后,用户需要再准备一份应用程序,该应用程序链接到对应外设地址中,且不用带boot header,然后导入工具,执行All-In-One Action 操作就可以成功生成可启动文件并下载到板卡中去执行。

图7是读回来的可启动文件,可以看到在IVT头偏移0x40的位置便是相应的XMCD数据。

wKgaomU5wAKANKJcAAP3ejvrRxA245.png图7 可启动文件中的XMCD数据

3. 参考资料

1. i.MXRT1170 Processor Reference Manual

2. 痞子衡嵌入式:MCUBootUtility v5.3发布,利用XMCD轻松使能外部RAM

END

更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号

wKgaomU5wAKADW9qAABCdkRE230350.jpg ? ? ?

NXP客栈


恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

长按二维码,关注我们

恩智浦MCU加油站


这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。

wKgaomU5wAOATZJzAAATNlPH08Y828.jpg ?

长按二维码,关注我们


原文标题:XMCD – i.MX RT11xx系列简单易用的特定外设配置功能

文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    18082

    浏览量

    371113
  • 恩智浦
    +关注

    关注

    14

    文章

    5999

    浏览量

    120062

原文标题:XMCD – i.MX RT11xx系列简单易用的特定外设配置功能

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    恩智浦i.MX 95系列MPU如何赋能边缘计算

    在本系列博文的第一部分,我探讨了恩智浦i.MX 95系列如何将新功能安全技术应用于工业环境、汽车领域及其他边缘应用。在接下来的文章中,我将进一步阐述
    的头像 发表于 07-30 11:08 ?1356次阅读
    恩智浦<b class='flag-5'>i.MX</b> 95<b class='flag-5'>系列</b>MPU如何赋能边缘计算

    基于恩智浦i.MX RT芯片内部RAM运行LVGL工程

    随着越来越多用户选择i.MX RT系列芯片制作产品,产品的需求以及芯片的用法也越来越多。本文将介绍在i.MX RT平台中,如何创建LVGL项
    的头像 发表于 07-01 09:33 ?1404次阅读
    基于恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>芯片内部RAM运行LVGL工程

    如何实现安卓与恩智浦i.MX RT1170的无线投屏与控制

    Scrcpy是一款免费开源的软件,支持将安卓端屏幕投影到其他设备,并支持被投屏设备对安卓的反向控制。基于ADB工具,安卓端无需安装任何软件,延迟低,稳定性好。现在,安卓也可投屏到恩智浦i.MX RT1170上。
    的头像 发表于 06-26 09:53 ?1444次阅读
    如何实现安卓与恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170的无线投屏与控制

    i.MX RT系列中FlexSPI DQS信号引脚配置GPIO方法

    i.MX RT060项目(采用QSPI Flash)的实际应用中,有客户反馈,其在设计阶段并未预留DQS信号引脚,而是将该引脚作为GPIO用于控制关键外设的开关,这导致程序无法正常运行。在此背景下
    的头像 发表于 06-16 11:30 ?899次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b><b class='flag-5'>系列</b>中FlexSPI DQS信号引脚<b class='flag-5'>配置</b>GPIO方法

    NXP i.MX RT1060移植TinyUSB:快速扩展大量USB Class示例

    前言 ? 为啥是TinyUSB?给强大的RT配个轻巧的USB栈! USB这个让我们方便快捷的接口,几乎无处不在。在嵌入式世界里,尤其是用上了像NXP i.MX RT这样性能强劲的跨界MCU,我们自然
    的头像 发表于 05-15 09:25 ?1518次阅读
    NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1060移植TinyUSB:快速扩展大量USB Class示例

    i.MX RT 1176上正常运行代码时与使用IAR调试代码时存在一些奇怪的差异,为什么?

    ROM 因此与 i.MX RT 10xx 部分中的 BOOT ROM 不兼容,其中 SP 是从重置向量中的值设置的,这意味着 SP 值must改为在 startup code 中设置。 IAR 调试器在
    发表于 03-17 07:26

    i.MX RT处理器上使用PXP实现缩放和旋转组合操作

    本文主要探讨如何使用PXP实现缩放和旋转组合操作,PXP是NXP推出的一个2D图形加速器,主要完成对图像的数据格式转换、固定角度旋转(90°,180°,270°),任意比例缩放、混色,移位以及翻转等功能。运行平台为i.MX RT
    的头像 发表于 02-20 10:53 ?1281次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>处理器上使用PXP实现缩放和旋转组合操作

    恩智浦i.MX 94应用处理器如何变革工业和汽车连接

    恩智浦半导体发布i.MX 94系列应用处理器,为工业和汽车连接设定了新的标准。作为i.MX 9系列应用处理器的最新成员,i.MX 94旨在提
    的头像 发表于 01-17 10:51 ?1050次阅读

    恩智浦i.MX RT1180 EtherCAT外设中SM FMMU功能介绍及应用

    NXP的i.MX RT1180 crossoverMCU具有Arm Cortex-M7(CM7)和Cortex-M33(CM33)双内核,CM7内核的运行速度可达800 MHz,CM33内核的运行
    的头像 发表于 01-16 09:17 ?2599次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180 EtherCAT<b class='flag-5'>外设</b>中SM FMMU<b class='flag-5'>功能</b>介绍及应用

    恩智浦i.MX RT700系列MCU的优势

    作为边缘智能时代的嵌入式工程师,你对一款理想的MCU有何期待?高性能、高集成、低功耗、更安全,以及出众的AI推理能力……恩智浦半导体新近发布的i.MX RT700跨界MCU系列,就是你想要的答案!
    的头像 发表于 12-09 09:16 ?2045次阅读

    恩智浦发布i.MX 94系列应用处理器

    恩智浦半导体发布i.MX 9系列应用处理器的新成员i.MX 94系列。该系列旨在用于工业控制、可编程逻辑控制器(PLC)、远程信息处理、工业
    的头像 发表于 11-26 17:48 ?1746次阅读

    NXP专为边缘AI打造的i.MX RT700跨界MCU到底强在哪?

    i.MX RT700系列提供了高性能、高集成度、先进功能和高能效的优化组合,为支持智能AI的边缘端设备赋能,例如可穿戴设备、消费电子医疗设备、智能家居设备和HMI设备。 在
    发表于 11-08 09:40 ?1878次阅读
    NXP专为边缘AI打造的<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>700跨界MCU到底强在哪?

    如何在i.MX RT微控制器上初始化LWIP协议栈

    i.MX RT微控制器上初始化LWIP协议栈是一个复杂但有趣的过程,它涉及多个步骤和关键组件的配置.
    的头像 发表于 10-12 11:48 ?931次阅读
    如何在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>微控制器上初始化LWIP协议栈

    恩智浦推出全新i.MX RT700跨界MCU系列

    高度集成的全新i.MX RT700跨界MCU旨在显著节省功耗,配备eIQ Neutron神经处理单(NPU),可在边缘端提供高达172倍的AI加速。
    的头像 发表于 10-12 11:41 ?1422次阅读

    i.MX Linux开发实战指南—基于野火i.MX系列开发板

    电子发烧友网站提供《i.MX Linux开发实战指南—基于野火i.MX系列开发板.pdf》资料免费下载
    发表于 10-10 17:23 ?12次下载