痞子衡嵌入式:串行NOR Flash的DQS信号功能简介
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是串行NOR Flash的DQS信号功能。
串行NOR Flash在嵌入式里的应用相当广泛,既可用作数据存储也可以用作代码(XiP)存储,串行NOR Flash种类很多,最早期有Standard SPI(一线),后来发展到QuadSPI(四线),到现在OctalSPI或者HyperBus SPI(八线),I/O管脚越来越多,数据吞吐率也越来越高。但到八线Flash的时候,你会发现多了一个特殊的控制信号DQS,DQS是Data Strobe Signal缩写,中文直译叫数据选通信号,这个DQS信号有什么作用呢?今天痞子衡带大家分析一下:
一、回顾DDR中DQS
我们对DQS信号更深的印象应该来源于DDR,DDR是DDR SDRAM的简称,其本身也是Double Data Rate(双倍数据速率)的缩写。从RAM分类来看,DDR是DRAM范畴内的重要组成,DDR已经发展到了第n代了。
在DDR中,DQS信号主要作用是用来在一个时钟周期内准确的区分出每个数据传输周期,从而便于接收方准确接收数据。DQS信号是双向的,在写入DDR时它用来传送由主设备发来的DQS信号,读取DDR时则由DDR生成DQS向主设备发送,所以DQS其实就是数据的同步信号。关于DQS以及DDR原理可以参看网上一篇很好的文章《DDR工作原理》。
那么Flash上的DQS功能与DDR上DQS是不是一样呢?有相同点也有不同点,咱们继续往下看:
二、DQS之Octal Flash篇
我们来看一款典型的Octal Flash,来自MXIC的MX25UM51345G。这款Flash包含DQS引脚(I/O属性为输出),从芯片数据手册里找到跟DQS信号相关的主要是下面这张输出时序图,DQS信号仅在DTR模式(SCLK双边沿采样)时生效,并且只在Flash输出数据时起作用(主设备写Flash时,DQS不起作用),即DQS信号是Flash发出的用于通知读取Flash的主设备SIO[7:0]数据线开始更新的标志。
让我们结合AC特性表里的Symbol再来进一步分析,SCLK信号边沿用于触发Flash数据更新,但是SIO[7:0]数据线并不是在SCLK边沿就立刻更新并且稳定的,这里有一定的时延(tCHQV),在tCHQV时间内,Flash核心收到SCLK触发信号,开始准备数据,并陆续放到SIO[7:0]线上。由于tCHQV时间相对较长,主设备仅根据SCLK信号边沿不知道应该什么时候去拿数据,因此诞生了DQS,DQS信号边沿标志着SIO数据线开始更新,但是SIO[7:0]一共8根数据线,这8根数据线更新不是完全同步的,这就有一个硬性规定,即tDQSQ时间,各数据线SIO[x]在DQS信号跳变开始后不得超过tDQSQ最大时间必须把数据更新完毕。
tCHQV - 从SCLK信号跳变到SIO[7:0]输出有效的时间
tQSV - 从SCLK信号跳变到DQS信号跳变的时间
tDQSQ - 从DQS信号跳变到SIO[7:0]输出有效的时间
tQH - SIO[7:0]输出保持时间
三、DQS之Hyper Flash篇
再来看一款典型的Hyper Flash,来自Cypress的S26KS512S。这款Flash包含RWDS引脚(I/O属性为输出),RWDS就是DQS信号。与Octal Flash不同的是,Hyper Flash的时钟信号CK往往是差分的,差分信号因为其补偿纠正特性,使得时钟跳变间隔比较稳定,因此数据传输从CK与CK#交叉点开始进行。Hyper Flash天然是DTR传输模式,RWDS作用与Octal Flash上的DQS是完全一致的。
同样结合AC特性表里的Symbol来进一步分析,CK差分信号跳变用于触发Flash数据更新,在tCKD时间内,Flash核心收到CK触发信号,开始准备数据,并陆续放到DQ[7:0]线上。RWDS信号边沿标志着DQ数据线开始更新,各数据线DQ[x]在RWDS信号跳变开始后不得超过tDSS最大时间必须把数据更新完毕。
tCKD - 从CK差分信号跳变到DQ[7:0]输出有效的时间
tCKDS - 从CK差分信号跳变到RWDS信号跳变的时间
tDSS - 从RWDS信号跳变到DQ[7:0]输出有效的时间
至此,串行NOR Flash的DQS信号功能痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:串行NOR Flash的DQS信号功能简介的更多相关文章
- 痞子衡嵌入式:深扒i.MXRTxxx系列ROM中集成的串行NOR Flash启动SW Reset功能及其应用场合
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRTxxx系列ROM中集成的串行NOR Flash启动SW Reset功能及其应用场合. 在串行 NOR Flash 热启动过程 ...
- 痞子衡嵌入式:实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(无缓存)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形. 上一篇文章 <i.MXRT中FlexSPI外设对A ...
- 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
1 Reason for enabling HAB signature function 为什么要开启HAB签名功能 NXP-MCUBootUtility is a tool designed for ...
- 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)
1 Reason for enabling HAB encryption function 为什么要开启HAB加密功能 NXP-MCUBootUtility is a tool designed fo ...
- 痞子衡嵌入式:在i.MXRT启动头FDCB里使能串行NOR Flash的DTR模式
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在FDCB里使能串行NOR Flash的DTR模式. 前两篇文章 <IS25WP系列Dummy Cycle设置> 与 < ...
- 痞子衡嵌入式:i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项. 最近痞子衡在支持一个印度客户,这个客户项目主芯片选择 ...
- 痞子衡嵌入式:i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad. 最近碰到一个客户,他们在 i.MX ...
- 痞子衡嵌入式:在i.MXRT启动头FDCB里使能串行NOR Flash的QPI/OPI模式
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在FDCB里使能串行NOR Flash的QPI/OPI模式. 我们知道 Flash 读时序里有五大子序列 CMD + ADDR + MO ...
- 痞子衡嵌入式:导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP. i.MXRT系列MCU发布已两年多了,基于i.MXR ...
随机推荐
- python2.7.5 +eric4.4.2+PyQt4-4.10.3
1.安装python 双击运行就可以了 当安装好了Pyhon,记得要配置环境变量,把C:\Python27添加到PATH中 2.安装pyqt默认安装就可以 3.把eric4.4.2拷贝到C:\目录下 ...
- dedecms文章页的上下篇颠倒的问题
dedecms的文章页底下的上下篇,如果按照时间排序的话,最新的一篇应该是最上了,但是底下还是会显示上一篇文章还有,然后下一篇文章没有了,就是颠倒了.如何修改呢. 1.修改include目录下arc. ...
- Snapshots常用命令
HBase Snapshots允许你对一个表进行快照(即可用副本),它不会对Region Servers产生很大的影响,它进行复制和 恢复操作的时候不包括数据拷贝.导出快照到另外的集群也不会对Regi ...
- CCPC2019网络赛总结
比赛那会过了两道题,哇贼激动,然后后面就没有然后了... 1003我想到用$kmp$,于是不会$kmp$的我开始找板子套,结果$TLE$,就觉得应该是优化不行,优化后AC妥妥$TLE$,就放弃了. 钓 ...
- hdu 6860 Fluctuation Limit 双向贪心
题意: 给你n个区间[li,ri],和一个整数k,你从每一个区间内选出来一个数,把从第i个区间内选出来数放在第i个位置,这样会构成一个长度为n的序列,你需要保证序列中任意两个相邻的数之差的绝对值要小于 ...
- Codeforces Round #570 (Div. 3) G. Candy Box (hard version) (贪心,优先队列)
题意:你有\(n\)个礼物,礼物有自己的种类,你想将它们按种类打包送人,但是打包的礼物数量必须不同(数量,与种类无关),同时,有些礼物你想自己留着,\(0\)表示你不想送人,问你在送出的礼物数量最大的 ...
- Educational Codeforces Round 94 (Rated for Div. 2) D. Zigzags (枚举,前缀和)
题意:有一长度为\(n(4\le n\le 3000)\)的数组,选择四个位置\((i,j,k,l)\ (1\le i<j<k\le n)\),使得\(a_i=a_k\)并且\(a_j=a ...
- Codeforces Round #643 (Div. 2) C. Count Triangles (数学公式)
题意:给你四个正整数\(A,B,C,D\),且\(A\le B\le C \le D\),有\(A\le x\le B\le y\le C \le z\le D\),求最多有多少组\((x,y,z)\ ...
- 牛客编程巅峰赛S1第5场 - 黄金&钻石&王者 B.牛牛的字符串 (DP)
题意:有一个字符串\(s\),我们可以选择\(s_{i}\),如果\(s_{i+k}>s_{i}\),那么就可以交换\(s_{i}\)和\(s_{i+k}\),问最多能够交换多少次. 题解:因为 ...
- 找工作面试题记录与参考资料(Golang/C++/计算机网络/操作系统/算法等)
记录下去年(2020年)找工作的面试题及参考资料. C++ 智能指针的实现原理 多态的实现原理[2] C++11/14/17新特性[3] 手写memcpy和memmove[4] 介绍下boost库 计 ...