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

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

3天内不再提示

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

痞子衡嵌入式 来源:痞子衡嵌入式 作者:痞子衡 2022-11-21 14:15 次阅读

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad

最近碰到一个客户,他们在 i.MXRT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),这个选项字面上的意思是设置读选通采样时钟源为 SCK 引脚,这个选项在恩智浦官方的代码包里未曾使能过。客户在使用过程中遇到高频时 SCK 引脚被降压的问题(从正常的 1.8V 降至 1.2V),那么这个 loopbackFromSckPad 选项到底是什么作用以及有什么使用限制呢?且听痞子衡道来:

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

Note2: 参考手册里没有提及支持 loopbackFromSckPad 选项的型号有 i.MXRT1010/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 周期。

223a254e-674d-11ed-8abf-dac502259ad0.png

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

224eb43c-674d-11ed-8abf-dac502259ad0.png

二、FlexSPI内部Read Strobe设计

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

226664b0-674d-11ed-8abf-dac502259ad0.png

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

22830af2-674d-11ed-8abf-dac502259ad0.png

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

22a99a32-674d-11ed-8abf-dac502259ad0.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 需要悬空。

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

22cec910-674d-11ed-8abf-dac502259ad0.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 与外部存储器相连。

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

22fb4094-674d-11ed-8abf-dac502259ad0.png

三、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 被解放出来了,这也是它的最主要意义。

230f0570-674d-11ed-8abf-dac502259ad0.png

别小看只是省了一个 DQS 引脚,也许你认为 i.MXRT 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 提供参考时钟。

至此,i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad痞子衡便介绍完毕了,掌声在哪里~~~

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

    关注

    38

    文章

    7513

    浏览量

    163987
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1711

    浏览量

    91748
  • 时钟源
    +关注

    关注

    0

    文章

    93

    浏览量

    16001

原文标题:i.MXRT中FlexSPI外设不常用的读选通采样时钟源

文章出处:【微信号:pzh_mcu,微信公众号:痞子衡嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    i.MXRT系列FlexSPI驱动Flash页编程执行时间

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT系列FlexSPI驱动Flash页编程执行时间。  痞子衡之前写过一篇文章 《串行NOR Flash的页编程模式对于
    发表于 12-21 07:30

    IAR开发环境下i.MXRT的串行NOR Flash下载算法设计

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是IAR开发环境下i.MXRT的串行NOR Flash下载算法设计。  在i.MXRT硬件那些事系列之《在串行NOR Flash
    发表于 01-26 07:46

    FlexSPI驱动访问

    当前i.MXRT型号》,现在超级算法已经能够识别到当前i.MXRT型号了,下一步就是找到一套统一的底层Flash驱动函数来实现外接串行NOR Flash的基本擦写操作,这套统一的底层Flash驱...
    发表于 01-26 07:48

    FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败怎么解决?

    FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败怎么解决?
    发表于 02-07 08:11

    FlexSPI NOR启动的连接方式

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT500的FlexSPI NOR启动的连接方式。  这个i.MXRT FlexSPI NOR启动连
    发表于 02-09 07:56

    介绍i.MXRT启动头FDCB里的lookupTable

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT启动头FDCB里的lookupTable。一个MCU内部通常有很多外设模块,这些外设模块是各MCU厂商做差异化产...
    发表于 02-17 07:47

    J-Link工具下i.MXRT的串行NOR Flash下载算法设计

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 J-Link 工具下 i.MXRT 的串行 NOR Flash 下载算法设计。 一、J-Link 各版本对 i.MXRT 的支持 从
    的头像 发表于 12-08 10:07 1053次阅读

    Flash不支持SFDP,如何下载适用i.MXRT

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是导致串行 NOR Flash 在 i.MXRT 下无法正常下载 / 启动的常见因素之 SFDP。 i.MXRT 系列 MCU 发布已
    的头像 发表于 10-30 10:30 735次阅读

    i.MXRT系列的ROM API设计

    FlexSPI driver API 可轻松 IAP》、《其实 i.MXRT1050,1020,1015 系列 ROM 也提供了 FlexSPI driver API》 基本把 i.MXR
    的头像 发表于 10-30 10:52 623次阅读

    Cortex-M7内核的Cache是如何提升访问效率的?且看硬核实测

    今天痞子衡给大家介绍的是实抓Flash信号波形来看i.MXRTFlexSPI外设下AHB访问情形。上一篇文章《实抓Flash信号波形来看i.MX
    发表于 12-01 12:51 10次下载
    Cortex-M7内核的Cache是如何提升访问效率的?且看硬核实测

    痞子衡嵌入式:FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败问题。  本篇是《系统时钟配置不当会导致
    发表于 12-04 17:36 9次下载
    痞子衡嵌入式:<b class='flag-5'>FlexSPI</b>复位方式不当会导致<b class='flag-5'>i.MXRT</b>系列下OTFAD加密启动失败

    痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT500)...

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT500的FlexSPI NOR启动的连接方式。  这个i.MXRT FlexSPI NOR启动连
    发表于 12-05 18:06 8次下载
    痞子衡嵌入式:恩智浦<b class='flag-5'>i</b>.MX RTxxx系列MCU启动那些事(6.B)- <b class='flag-5'>FlexSPI</b> NOR连接方式大全(RT500)...

    FlexSPI NOR连接方式大全(RT1015/1020/1050)

    由于i.MXRT内部没有非易失性存储器,因此在系统设计时为i.MXRT搭配一块存放应用程序代码的存储器是头等大事。i.MXRT支持启动的外部存储器类型众多,其中通过FlexSPI接口连
    发表于 02-09 11:26 1次下载
    <b class='flag-5'>FlexSPI</b> NOR连接方式大全(RT1015/1020/1050)

    深入i.MXRT1050系列ROM串行NOR Flash启动初始化流程

    我们知道外部串行NOR Flash是接到i.MXRTFlexSPI外设引脚上,有时串行NOR Flash启动也叫FlexSPI NOR启动。
    的头像 发表于 06-02 17:43 1531次阅读
    深入<b class='flag-5'>i.MXRT</b>1050系列ROM<b class='flag-5'>中</b>串行NOR Flash启动初始化流程

    i.MX RTFlexSPI外设不常用采样时钟

    i.MX RTFlexSPI外设不常用
    的头像 发表于 10-30 17:44 564次阅读
    <b class='flag-5'>i</b>.MX RT<b class='flag-5'>中</b><b class='flag-5'>FlexSPI</b><b class='flag-5'>外设</b><b class='flag-5'>不常用</b>的<b class='flag-5'>读</b><b class='flag-5'>选</b>通<b class='flag-5'>采样</b><b class='flag-5'>时钟</b><b class='flag-5'>源</b>