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

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

3天内不再提示

i.MX RT中FlexSPI外设不常用的读选通采样时钟源

jf_pJlTbmA9 来源:恩智浦MCU加油站 作者:恩智浦MCU加油站 2023-10-30 17:44 次阅读

最近碰到一个客户,他们在 i.MX RT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),这个选项字面上的意思是设置读选通采样时钟源为 SCK 引脚,这个选项在恩智浦官方的代码包里未曾使能过。

客户在使用过程中遇到高频时 SCK 引脚被降压的问题(从正常的 1.8V 降至 1.2V),那么这个 loopbackFromSckPad 选项到底是什么作用,以及有什么使用限制呢?

注1: 参考手册里显示支持loopbackFromSckPad选项的型号有 i.MX RT1040/1050/1060/1064/1180/500

注2: 参考手册里没有提及支持loopbackFromSckPad选项的型号有 i.MX RT1010/1015/1020/1024/1160/1170/600

一、为什么存在Read Strobe?

对于串行 SPI 接口存储器,FlexSPI 外设主要支持如下两种读数据时序:一是所谓的经典 SPI 模式,IO0 (MOSI) 专用于发送命令和地址,IO1 (MISO) 专用于接收数据(图中上面的时序)。二是 Multi-I/O SPI 模式,SIO[n:0] 一起用于发送命令地址以及接收数据(图中下面的时序)。

显然经典 SPI 模式下 IO[1:0] 是单向的,而 Multi-I/O SPI 模式下,SIO[n:0] 是双向的。当 SIO 用于双向传输时,过程中必然存在引脚方向切换,而 FlexSPI 外设在处理 SIO 方向切换时,无法做到零等待周期读取数据,这就是为什么 Multi-I/O SPI 读时序中总是会存在 Dummy 周期。

1669252885180567.png

因为 Dummy 周期的存在,FlexSPI 外设内部实际上有一个 Read Strobe 信号(即 DQS)来控制数据的选通性(即什么时候开始数据有效,将数据存入内部 FIFO)。更直白点说,Read Strobe 信号的存在就是由于 FlexSPI 外设无法支持如下这种情况的读时序(下图中 COMMAND 实际应为 COMMAND ADDR)。

1669252892785362.png

二、FlexSPI内部Read Strobe设计

在i.MX RT参考手册里有如下 FlexSPI 前端采样单元框图,其中 ipp_ind_dqs_fa/b_int[x] 即是 Read Strobe 信号,它控制着 FIFO 中实际数据的存储。

1669252908897259.png

ipp_ind_dqs_fa/b_int[x] 信号共有四种来源,最原始的信号源由 FlexSPI->MCR0[RXCLKSRC] 选择,中间可能还会经过 DLLxCR 单元(这部分以后会另写文章单独介绍)、Phase Chain 单元做处理,然后送到采样单元里。

1669252916257521.png

下图是 FlexSPI->MCR0[RXCLKSRC] = 0 的情况,此时 Read Strobe 经由 ipp_do_dqs0_fa/b 纯内部 loopback 回来,没有经过任何延迟单元。这种配置一般仅用于经典 SPI 传输模式(低速 60MHz SDR 场合),适用低容量 SPI NOR / EEPROM,这时候 FlexSPI DQS Pad 可用作其它功能或者 GPIO。

1669252922633358.png

下图是 FlexSPI->MCR0[RXCLKSRC] = 1 的情况,此时 Read Strobe 经由悬空的 DQS 引脚 ipp_do_dqs1_fa/b 再 loopback 回来,此时有了 DQS 引脚绕一圈的延迟。这种配置可用于 Multi-I/O SPI 传输模式(较高速 133MHz SDR 场合),适用不含 DQS 引脚的大容量 QuadSPI NOR Flash,但是 FlexSPI DQS Pad 需要悬空。

注: 有一篇旧文《使能串行NOR Flash的DTR模式》跟这种配置相关,这时候 dummy cycle 数的设置很关键。

1669252929424042.png

下图是 FlexSPI->MCR0[RXCLKSRC] = 3 的情况,此时 Read Strobe 完全由外部存储器的 DQS 引脚输出 ipp_ind_dqs3_fa/b 直通进来。这种配置可用于 Multi-I/O SPI 传输模式(最高速 166MHz/200MHz DDR 场合),适用于包含 DQS 引脚的 OctalSPI NOR Flash,这时 FlexSPI DQS Pad 与外部存储器相连。

注: 我有两篇旧文《串行NOR Flash的DQS信号功能》、《启动含DQS的Octal Flash可不严格设Dummy Cycle》跟这种配置相关。

三、loopbackFromSckPad选项意义

前面铺垫了那么多,终于来到本文的主题了,即下图 FlexSPI->MCR0[RXCLKSRC] = 2 的情况,此时 Read Strobe 经由 SCK 引脚 ipp_ind_sck_fa/b 再 loopback 回来,此时有了 SCK 引脚绕一圈的延迟。

这种配置从应用角度与 FlexSPI->MCR0[RXCLKSRC] = 1(即 loopbackFromDqsPad) 差不多,也可用于 Multi-I/O SPI 传输模式(较高速 133MHz SDR 场合),适用不含 DQS 引脚的大容量 QuadSPI NOR Flash,但是这时候 FlexSPI DQS Pad 被解放出来了,这也是它的最主要意义。

1669252939714459.png

别小看只是省了一个 DQS 引脚,也许你认为 i.MX RT 有那么多I/O,省一个引脚意义不大,但是如果某些 FlexSPI 引脚组不带 DQS 信号,你又想配置 FlexSPI 以 60MHz 以上频率去访问 Flash,这时候 FlexSPI->MCR0[RXCLKSRC] = 2 选项就会帮上大忙了,见旧文《不支持DQS的FlexSPI引脚组连接串行NOR Flash注意事项》。

四、loopbackFromSckPad使用限制

FlexSPI->MCR0[RXCLKSRC] = 2 选项虽好,但有如下两个实际使用限制:

存在信号完整性问题:主要出现在 SCK 频率过高或者板级 PCB 上 SCK 信号走线过长时。

SCK自由运行模式下不可用:对于某些 FPGA 应用,有时需要设置 FlexSPI->MCR0[SCKFREERUNEN] = 1,即 SCK 需要持续给外部设备内部 PLL 提供参考时钟。

来源:恩智浦MCU加油站

审核编辑:汤梓红

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

    关注

    38

    文章

    7413

    浏览量

    163466
  • 引脚
    +关注

    关注

    16

    文章

    1168

    浏览量

    50097
  • SCK
    SCK
    +关注

    关注

    0

    文章

    7

    浏览量

    16066
  • 时钟源
    +关注

    关注

    0

    文章

    92

    浏览量

    15915
收藏 人收藏

    评论

    相关推荐

    FlexSPI外设如何支持行列混合寻址存储器

    关于FlexSPI外设的lookupTable,之前写过一篇非常详细的文章 《从头开始认识i.MX RT启动头FDCB里的lookupTable》,这篇文章几乎可以帮助解决所有串行Qu
    的头像 发表于 10-13 09:11 1099次阅读

    I.MX RT1166 Flashdriver问题如何解决?

    我正在尝试为 I.MX RT1166 编写自定义闪存驱动程序应用程序。我一直在使用 iMXRT117x_FlexSPI_SFDP 项目,该项目可以在 Mcuxpresso 安装的 ide
    发表于 03-31 07:18

    FlexSPIFlexSPI2外设都可以使用BEE吗?

    我有一个关于 i.MX.RT 1061 系列的问题。i.MX.RT1061 中有两个 FlexSPI。还有一个用于运行加密启动映像的 BEE。FlexSPI
    发表于 04-19 08:30

    01:i.MX RT系列产品的介绍与演示

    i.MX RT产品是今年市场上最受欢迎的跨界MCU产品。本讲座将对i.MX RT系列做一个简要的介绍,包括主要特性和主要外设。然后会分享能够
    的头像 发表于 01-23 07:21 2955次阅读
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列产品的介绍与演示

    01:i.MX RT的市场应用和参考解决方案

    i.MX RT产品是今年市场上最受欢迎的跨界MCU产品。i.MX RT定位为一款MCU产品,它可以重复利用传统的Arm MCU生态系统。除此之外,本次讲座还将简要介绍
    的头像 发表于 01-21 07:13 3296次阅读
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的市场应用和参考解决方案

    02:i.MX RT系列产品的介绍与演示

    i.MX RT产品是今年市场上最受欢迎的跨界MCU产品。本讲座将对i.MX RT系列做一个简要的介绍,包括主要特性和主要外设。然后会分享能够
    的头像 发表于 01-21 07:04 2266次阅读
    02:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列产品的介绍与演示

    i.MX RT开发笔记-08 | i.MX RT1062嵌套中断向量控制器NVIC(按键中断检测)

    系列文章目录i.MX RT开发笔记-01 | 初识 i.MX RT1062 跨界MCUi.MX RT
    发表于 12-01 13:51 2次下载
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>开发笔记-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中断向量控制器NVIC(按键中断检测)

    RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界处理器系列。该系列下又包括 i.MX RT1020、i.MX
    发表于 12-07 13:06 2次下载
    <b class='flag-5'>RT</b>-Thread & NXP 发布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    loopbackFromSckPad选项是什么作用及有什么使用限制

    i.MX RT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),这个选项字面上的意思是设置
    的头像 发表于 11-17 09:37 754次阅读

    i.MXRTFlexSPI外设不常用采样时钟

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRTFlexSPI外设不常用
    的头像 发表于 11-21 14:15 857次阅读

    探讨i.MX RTFlexSPI driver实现Flash编程时对于中断支持问题

    前段时间有客户在官方社区反映i.MX RT1170下,使用官方SDK里FlexSPI驱动去擦写Flash时不能很好地支持全局中断。 客户项目里用了两块NOR Flash,分别挂在
    的头像 发表于 02-06 15:09 1169次阅读

    i.MX RT10xx使用FlexIO实现XY2-100振镜控制协议

    本文介绍了如何使用i.MX RT系列芯片上的FlexIO实现XY2-100激光振镜控制协议。FlexIO模块是NXP Kinetis和i.MX RT系列MCU的片上
    的头像 发表于 05-18 09:21 5613次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>10xx使用FlexIO实现XY2-100振镜控制协议

    i.MX RT的FlexRAM配置问题

    i.MX RT的FlexRAM配置问题
    的头像 发表于 10-24 15:46 760次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置问题

    理解i.MX RTFlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值

    理解i.MX RTFlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值
    的头像 发表于 10-30 17:23 457次阅读
    理解<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b><b class='flag-5'>中</b><b class='flag-5'>FlexSPI</b><b class='flag-5'>外设</b>lookupTable里配置访问行列混合寻址Memory的参数值

    i.MX RT1010的I2C Slave时钟延展功能小记

    i.MX RT1010的I2C Slave时钟延展功能小记
    的头像 发表于 09-27 16:22 1418次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1010的<b class='flag-5'>I</b>2C Slave<b class='flag-5'>时钟</b>延展功能小记