21 静态存储控制器(SMC)
21.1 描述
静态存储控制器(SMC) 产生控制访问外部存储设备或外围设备的信号。它有8个片选和一个26 位的地址总线。32位数据总线可被配置到8-,16-,32位外部设备接口。分离的读和写控制信号允许直接存储器和外设接口。读和写信号波形是可全参数化的。
SMC可管理从外部设备到扩展当前访问德等待请求。提供一个自动慢时钟模式给SMC。在慢时钟模式,它会在读和写信号上从用户编程的波形到慢速率特定波形转换。SMC支持在页面模式异步脉冲串读访问多达32字节的页面大小。
21.2 I/O口线描述 表21-1 I/O口线描述 名称
NCS[7:0] NRD NWR0/NWE A0/NBS0 NWR1/NBS1 NWR3/NBS3 A[25:2] D[31:0] NWAIT
描述
静态存储控制器片选块
类型
Output Output Output Output Output Output Output Output I/O Input
有效电平 低 低 低 低 低 低 低 低
读信号 写0/写使能信号 地址位0/字节0选择信号 写1 /字节1选择信号 写3/字节3选择信号 地址总线 数据总线 外部等待信号
A1/NWR2/NBS2 地址位1/写2/字节2选择信号
21.3 多路复用信号
表21-2 静态存储控制器(SMC)多路复用信号
多路复用信号
NWR0 A0 NWR1 A1 NWR3
NWE NBS0 NBS1 NWR2 NBS3
相关功能
NBS2
字节写或字节选择访问,见165页“字节写或字节选择访问” 8位或16/32位数据总线,见165页“数据总线宽度” 字节写或字节选择访问,见165页“字节写或字节选择访问” 8位或16/32位数据总线,见165页“数据总线宽度” 字节写或字节选择访问,见165页“字节写或字节选择访问” 字节写或字节选择访问,见165页“字节写或字节选择访问”
21.4 应用举例 21.4.1
硬件接口
图21-1 SMC连接到静态存储设备
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.5 产品相关性 21.5.1 I/O口线
用来接静态存储控制器的引脚可以和PIO块多路复用。编程者必须首先编程PIO控制器来指定静态存储控制器引脚到他们的外设功能。如果SMC的I/O口线未被应用程序使用,则他们可被PIO控制器用于其它目的。
21.6 外部存储映射
SMC提供多达26位地址块,A[25:0] 。这就允许每个片选块到地址多达M字节的存储量。
如果连接在一个片选上的物理存储设备比M字节小,它将绕回并在此空间出现重复。SMC在页面(见图21-2)正确的处理任何有效的访问存储设备。 A[25:0]仅对8位存储器有意义,A[25:1]用于16位存储,A[25:2]用于32位存储。
图21-2 八个外部设备的存储连接
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.7 连接到外部设备 21.7.1
数据总线宽度
8,16,或32位数据宽度可为每个片选选择。此选项为对应的片选被SMC_MODE(模式寄存器)中的DBW域控制。
图21-3展示了怎样在NCS2上连接一个512K x 8-位存储器。图21-4展示了怎样在NCS2上连接一个512K x 16-位存储器。图21-5展示了2个16位存储器连接为一个单32位存储器。
21.7.2
字节写或字节选择访问
带16位或32位数据总线的每个片选可一操作写访问两个不同类型中的一个:字节或字节选择访问。这为对应的片选被SMC_MODE寄存器的BAT域控制。
图21-3 8位数据总线的存储器连接
图21-4 16位数据总线的存储器连接
图21-5 32位数据总线的存储器连接
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.7.2.1 字节写访问
字节写访问支持数据总线每个字节一个字节写信号和一单个读信号。 注意SMC不允许在字节写访问模式启动。
1. 对16位设备:SMC分别给16位总线的byte0(低位字节)和byte1(高位
字节)提供NWR0 和 NWR1写信号。一单个读信号(NRD)被提供。
字节写访问被用于连接2*8位设备为一个16位存储器。
节),byte1,byte2,byte3(高位字节)的写信号。一单个读信号(NRD)被提供。
字节写访问被用于连接4*8位设备为一个32位存储器 字节写选项如图21-6 所示
21.7.2.2 字节选择访问
在此模式,读/写操作可以以一个字节电平使能/使无效。提供数据总线的每个字节一个字节选择块。一个NRD和一个NEW信号控制读和写。
1.对16位设备:SMC分别给16位总线的byte0(低位字节)和byte1(高位字节)提供NBS0 和 NBS1选择信号。
字节选择访问用于连接一个16位设备
对32位设备:NBS0, NBS1, NBS2 和 NBS3,分别是byte0(低位字节),byte1,byte2,byte3(高位字节)的写信号.字节选择访问被用于连接2个16位设备。
图21-7 展示了在NCS3(BAT=字节选择访问)上在字节访问模式在一个32位数据总线上怎样连接2个16位设备。
图21-6 16位总线上2*8位设备的连接:字节写选项
2. 对32位设备:NWR0, NWR1, NWR2 和 NWR3,分别是byte0(低位字
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.7.2.3 信号多路复用
依赖于BAT,仅写信号或字节选择信号被使用。为在外部总线接口保存IO, SNC接口的控制信号被多路复用。表21-3 展示了依赖于数据总线宽度和字节访问类型的信号多路复用。
对32位设备,位A0和A1未被使用。对16 位设备,地址位A0未被使用。当字节选择选项被选择,则NWR1 到 NWR3未被使用。当字节写选项被选择,NBS0 到 NBS3未被使用。
图21-7 32位数据总线(字节选择选项)上2*16位数据总线的连接
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
表21-3 SMC多路复用信号转换
信号名称 32位总线 16位总线 字节访问类型
NBS0_A0 NWE_NWR0 NBS1_NWR1 NBS3_NWR3
8位总线
字节写
NWR0 NWR1 A1
设备类型 1*32位 2*16位 4*8位 1*16位 2*8为 1*8位
字节选择
NBS0 NWE NBS1 NBS3
字节选择
NBS0 NWE NBS1 NBS2 NBS3
字节写
NWR0 NWR1 NWR2 NWR3
字节选择
NBS0 NWE NBS1 A1
A0 NWE
A1
NBS2_NWR2_A1 NBS2
21.8 标准读和写协议
在以下段落中,未考虑字节访问类型。字节选择块(NBS0 到NBS3)总有相同的定式 作为一个地址总线。NWE表示字节选择访问类型中的NEW信号或字节写访问类型中的字节写模块(NWR0 到 NWR3)之一。NWR0 到 NWR3和Nw E有相同的定时和协议。在相同的方式中,NCS表示NCS[0..7]片选块中的一个。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.8.1
读波形
读周期如图21-8所示。
读周期和存储器地址总线上的地址置位一起开始,就是说: 对8位设备{A[25:2], A1, A0} 对16位设备{A[25:2], A1} 对32位设备A[25:2]
图21-8 标准读周期
21.8.1.1 NRD波形
NRD信号由一个设定定时,一个脉冲宽度和一个保持定时表述。 1. NRD_SETUP:NRD设定时间被定义为NRD下降沿前地址的设置。 2. NRD_PULSE:NRD脉冲长度是NRD下降沿和NRD上升沿间的时间。 3. NRD_HOLD:NRD保持时间被定义为NRD上升沿后地址的保持时间。
21.8.1.2 NCS波形
类似的,NCS信号可以被分成一个设定时间,脉冲长度和保持时间:
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
1. NCS_RD_SETUP:NCS设定时间被定义为NCS下降沿前地址的设定时
间。
2. NCS_RD_PULSE:NCS脉冲长度是NCS下降沿河NCS上升沿间的实
间。
3. NCS_RD_HOLD:NCS保持时间被定义为NCS上升沿后地址的保持时
间。
21.8.1.3 读周期
NRD_CYCLE时间被定义为读周期总共的持续时间,就是说,从地址总线上地址置位到地址可能改变的点的时间。总的读周期时间等于: NRD_CYCLE = NRD_SETUP + NRD_PULSE + NRD_HOLD = NCS_RD_SETUP + NCS_RD_PULSE + NCS_RD_HOLD
所有NRD和NCS定时对每个片选单独的定义为整的主控时钟周期数。为保证NRD和NCS定时是一致的,用户必须定义总的读周期代替保持定时。NRD_CYCLE隐含的定义NRD保持时间和NCS保持时间为: NRD_HOLD = NRD_CYCLE - NRD SETUP - NRD PULSE
NCS_RD_HOLD = NRD_CYCLE - NCS_RD_SETUP - NCS_RD_PULSE
21.8.1.4 空延迟设定和保持、
如果空设定和保持参数对NRD和/或NCS编程,NRD和NCS维持连续有效,假如在同样的存储器(见图21-9 )中连续的读周期。
图21-9 NRD 和NCS上无Setup,五Hold读信号
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.8.1.5 空脉冲
编程空脉冲是不被允许的。脉冲必须至少设置到1。空值导致不可预期的操作。
21.8.2
读模式
如NCS和NRD波形被的定义,SMC需要知道什么时候在数据总线上读数据是可行的。SMC不比较NCS和NRD定时来知道哪个信号更快。对应片选的SMC_MODE寄存器中的READ_MODE参数指示了NRD和NCS哪个信号控制读操作。
21.8.2.1 读操作由NRD (READ_MODE = 1) 控制
图21-10展示了一个典型异步RAM的读操作波形。NRD的下降沿后读数据是可用的tPACC,在NRD的上升沿后变成‘Z’。这种情况下,READ_MODE必须被设置为1(读由NRD控制),来指示数据在NRD的上升沿是可用的。SMC在产生NRD上升沿的主控的上升沿上的内部采样读数据,无论NRD的编程波形可能是什么。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
图21-10 READ_MODE = 1:NRD上升沿前数据由SMC采样
21.8.2.2 读由NCS(READ_MODE=0) 控制
图21-11展示了LCD模块的一个典型读周期。读数据在NCS下降沿后是有效的tPACC并且维持有效直到NCS的上升沿。数据必须在NCS上升时被采样。此情况下,READ_MODE必须被设置为0(读由NCS控制):SMC在产生NCS上升沿的主控时钟的上升沿内部采样数据,无论NRD的编程波形可能是什么。
图21-11 READ_MODE = 0:数据在NCS上升沿前由SMC采样
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.8.3
写波形
写协议和读协议类似。如图21-12描述。写周期在存储地址总线上同地址设置一起开始。
21.8.3.1 NWE 波形
NWE信号由设定定时,脉冲宽度和保持定时描述。
1. NWE_SETUP:NWE设定时间被定义为NWE下降沿以前地址和数据的
设定。
2. NWE_PULSE:NWE脉冲长度是NWE下降沿和NWE上升沿之间的时间。 3. NWE_HOLD:NWE保持时间被定义为NWE上升沿后地址和数据的保持
时间。
NWE波形应用于字节写访问模式中的所有字节写块: NWR0-NWR3。
21.8.3.2 NCS波形
写操作中NCS信号波形和那些应用在读操作中的不同,但是 被的定义:
1. NCS_WR_SETUP:NCS设定时间被定义为NCS下降沿前地址的设
定时间。
2. NCS_WR_PULSE:NCS脉冲长度是NCS下降沿和NCS上升沿之间
的时间
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
3. NCS_WR_HOLD:NCS保持时间被定义为NCS上升沿后地址的保
持时间。
图21-12 写周期
21.8.3.3 写周期
写周期时间被定义为写周期总的持续时间,就是从地址总线上的地址置位到地址可能改变的点的时间。总的写周期时间等于:
NWE_CYCLE = NWE_SETUP + NWE_PULSE + NWE_HOLD = NCS_WR_SETUP + NCS_WR_PULSE + NCS_WR_HOLD
所有的NWE和NCS(写)定时的给每个片选定义为整的主控时钟数。 为保证NWE和NCS定时一致,用户必须定义总的写周期代替保持定时。这里隐含的定义了NWE保持时间和NCS(写)保持时间为: NWE_HOLD = NWE_CYCLE - NWE_SETUP - NWE_PULSE
NCS_WR_HOLD = NWE_CYCLE - NCS_WR_SETUP - NCS_WR_PULSE
21.8.3.4 空延迟设定和保持
如果空设定参数对NWE和/或NCS编程,NWE和/或NCS维持继续有效,假如
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
在同样的存储器(见图21-13)中连续的写周期。然而,对于在NWE或NCS上升沿执行写操作的设备,如SRAM,必须编程一个设定或一个保持。
图21-13 写周期中NCS和NWE的空设定和保持值
21.8.3.5 空脉冲
编程空脉冲是不被允许的。脉冲必须至少被设定为1。一个空值导致不可预期的动作。
21.8.4
写模式
对应片选的SMC_MODE寄存器中的WRITE_MODE参数指示了哪个信号控制写操作。
21.8.4.1 写被NWE(WRITE_MODE=1)控制
图21-14展示了一个WRITE_MODE设置为1的写操作的波形。数据在脉冲和NWE信号的保持阶段被放入总线。内部数据缓冲在NWE_SETUP时间被关闭,并且知道写周期结束,不必关心NCS上的编程波形。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
图21-14 WRITE_MODE = 1。 写操作有NWE控制
21.8.4.2 写有NCS(WRITE_MODE=0)控制
图21-15展示了一个WRITE_MODE设置为0的写操作的波形。数据在脉冲和NCS信号保持阶段被放入总线。内部数据缓冲在NCS_WR_SETUP时间被关闭,直到写周期结束,不比关心NWE上的编程波形。
图21-15 WRITE_MODE = 0。 写操作有NCS控制
21.8.5
编码定时操作
所有的定时参数被定义给一个片选并根据其类型在一个SMC_REGISTER被分组。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商 SMC_SETUP寄存器组所有的设定参数的定义:
NRD_SETUP, NCS_RD_SETUP, NWE_SETUP, NCS_WR_SETUP SMC_PULSE寄存器组所有脉冲参数的定义:
NRD_PULSE, NCS_RD_PULSE, NWE_PULSE, NCS_WR_PULSE SMC_CYCLE寄存器组所有周期参数的定义: NRD_CYCLE, NWE_CYCLE
表21-4 展示了定时参数怎样被编码和他们被允许的范围。
表21-4 编码和定时参数的范围 编码值
setup [5:0] pulse [6:0] cycle [8:0]
位数 6 7 9
有效值
128 x setup[5] + setup[4:0] 256 x pulse[6] + pulse[5:0] 256 x cycle[8:7] + cycle[6:0]
允许范围 编码值
有效范围
21.8.6
定时参数的复位值
表21-5 给出了定时参数在复位时的缺省值。 表21-5定时参数的复位值
寄存器
SMC_SETUP SMC_PULSE SMC_CYCLE READ_MODE
复位值
0x00000000 0x01010101 0x00010001
所有的设定定时被设置为1 所有的脉冲定时被设置为1
读和写操作持续3个主控时钟周期并提供一个保持周期 写用NWE控制 读用NRD控制
WRITE_MODE 1
1
21.8.7
用法限定
SMC不检查用户编程参数的有效性。如果SETUP和PULSE参数的和大于对应的CYCLE参数,这将导致SMC不可预期的动作。 对读操作:
空的但是正地址设定和保持和NRD和/或NCS在存储器接口不能被保证,因为通过外部逻辑和填充块的这些信号的传播延迟。如果正设定和保持值必须验证,强烈推荐编程非空值可以来屏蔽在地址,NCS和NRD信号间的变形。 对写操作:
如果空保持值在NWE上被编程,SMC在NWE上升沿后可以保证一个正的地址,字节选择块,和NCS信号的保持。这仅对WRITE_MODE =1正确。见179页“前期读等待状态”。
对读和写操作:脉冲参数的一个空值是禁止的并可导致不可预期的动作。 在读和写周期,参考地址总线定义设定和保持时间参数。对外部设备,在
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
NCS和NRD信号(读)之间,或在NCS和NWE信号(写)之间需要设定和保持时间,这些设定和保持时间必须转换成参照地址总线的设定和保持时间。
21.9 自动等待状态(Automatic Wait States)
在确定的环境下,SMC自动的在访问避免总线竞争或操作冲突间插入空闲周
期 。
21.9.1
片选等待状态
SMC总在分离的片选上2个转换间插入一个空闲周期。此空闲周期确保在一个设备的重激活和下一设备的激活间没有总线竞争。
片选等待期间,把所有控制块变成待用的:NBS0 到 NBS3, NWR0 到NWR3, NCS[0..7], NRD块被设置成1。
图21-16说明了访问片选0和片选2之间的一个片选等待状态。
图21-16 一个读访问NCS0和一个写访问NCS2之间的片选等待状态
21.9.2
早读等待(Early Read Wait State)
一些情况下,SMC在一个写访问和一个读访问之间插入一个等待状态来允许写周期到结束的时间在随后的读周期开始前。此等待状态不产生附加的片选等待状态。读周期因此仅发生在一个写和读访问到相同的设备(相同的片选)之间。
如果至少以下一种情况有效,则早读等待状态自动的插入:
1. 如果写控制信号无保持时间并且读控制信号无设定时间(图12-17)。 2. 在NCS写控制状模式(WRITE_MODE = 0),如果NCS信号上无保持定
时,并且NCS_RD_SETUP参数被设置为0,则无所谓读模式(图21-18)。写操作必须随NCS上升沿结束。没有早读等待状态,则写操作也不完全正确。
3. 在NWE控制模式(WRITE_MODE = 1),如果无保持定时(NWE_HOLD
=0),写控制信号的反馈被用于控制地址,数据,片选和字节选择块。如
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
果外部写控制信号未撤销可能由于装载电容,一早读等待状态被插入,地址,数据和控制信号被维持在一个周期以上。见图21-19。
图21-17 早读等待状态:无保持写紧跟无设定读
图21-18 早读等待状态:NCS控制的无保持的写紧跟一个无NCS设定的读
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
图21-19 早读等待状态:NWE控制的无保持写紧跟一个设定周期的读
21.9.3
重装载用户配置等待状态
用户可以通过写SMC用户接口改变任何任何配置参数。
当在用户接口检测到写入一个新的用户配置,SMC在开始下一个访问前插入一个等待状态。所谓的“重装载用户配置等待状态”被SMC用于装载新的参数集应用于下一次访问。
重装载配置等待状态不用于附加的片选等待状态。如果重编程用户接口前和后的访问被制定为不同设备(片选),接着,一个单片选等待状态被应用。 另外,如果写用户接口前和后的访问被制定为相同的设备,重装载配置等待状态将被插入,即使变化并不影响当前片选。
21.9.3.1 用户程序
为插入一个重装载配置等待状态,SMC检测一个到用户接口的任何SMC_MODE寄存器的写访问。如果用户仅在用户接口修改定时寄存器(SMC_SETUP, SMC_PULSE, SMC_CYCLE 寄存器),用户必须通过写SMC_MODE激活修改,即使模式参数上无改变。
21.9.3.2 慢时钟模式转变
当前转换结束后,当进入或退出慢时钟模式,重装载配置等待状态也被插入。 (见193页“慢时钟模式”)
21.9.4
读取写等待状态
由于一个内部途径,一个等待周期总在连续读和写SMC访问间被插入。 此等待周期涉及在此文档读取写等待状态
当等待状态将被插入,此等待周期被用于附加片选和重装载用户配置等待状态。见179页图21-16。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21-10 数据浮动等待状态(Data Float Wait States)
一些存储设备不能快速的释放外部总线。对这样的设备,有必要在读访问后
增加等待状态(数据浮动等待状态): 1. 开始读访问一个不同的外部存储器之前 2. 开始写访问相同的设备或一个不同的外部设备。
每个外部存储设备的数据浮动输出时间(tDF)被编程于对应片选寄存器的TDF_CYCLES域中。TDF_CYCLES值指示外部设备释放总线前数据浮动等待周期数(0到15之间),并且表示允许数据输出在存储器使无效后到高阻抗的时间。
数据浮动等待状态不延迟内部存储器访问。因此,一个用长tDF单访问外部存储器将减缓从内部存储器执行一个程序。
数据浮动等待状态管理依赖于对应片选SMC_MODE寄存器的READ_MODE 和 TDF_MODE域。
21.10.1 READ_MODE
置位READ_MODE为1指示SMC,NRD信号负责关闭外部存储设备的三态缓冲器。数据浮动周期接着在NRD信号上升沿后开始并且持续TDF_CYCLES MCK周期。
当读操作由NCS信号(READ_MODE = 0)控制,在NCS上升沿后数据总线仍然繁忙期间,TDF域给出MCK周期数。
图21-20说明假设一个2周期(TDF_CYCLES = 2)的数据浮动周期,NRD控制模式(READ_MODE =1)中Data Float Period。图21-21展示了当被NCS(READ_MODE = 0)控制并TDF_CYCLES参数等于3时的读操作。
图21-20 NRD控制的读访问(TDF = 2)中TDF周期
图21-21 NCS控制的读访问(TDF =3)中TDF周期
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21-10 TDF最优化使能(TDF_MODE = 1)
当SMC_MODE寄存器的TDF_MODE模式被置位为1(TDF最优化被使能),SMC利用下一个访问的设定周期来优化插入等待状态周期数。
图21-22展示了片选0上,由NRD控制的读访问,紧跟由NWE控制的写访问。 片选0已被编程:
NRD_HOLD = 4; READ_MODE = 1 (NRD 控制) NWE_SETUP = 3; WRITE_MODE = 1 (NWE 控制) TDF_CYCLES = 6; TDF_MODE = 1 (最优化使能).
图21-22 TDF最优化:如果当下一个访问开始TDF周期溢出则无等待状态被插入
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.10.2 TDF最优化使无效(TDF_MODE=0)
当最优化被使无效,TDF等待状态在读传输结尾被插入,所以当第二次访问开始时数据浮动周期结束。如果读控制信号的保持周期和数据浮动周期重叠,则将无附加的TDF等待状态被插入。 图21-23,图21-24和图21-25说明以下情况: 无TDF最优化
1. 读访问紧跟另外一个片选上的读访问 2. 读访问紧跟另外一个片选上的写访问 3. 读访问紧跟同一个片选上的写访问
图21-23 TDF最优化使无效(TDF Mode = 0)。不同片选上2个读访问间的TDF等待状态
图21-24 TDF Mode = 0: 不同片选上2个写访问间的TDF等待状态
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
图21-25 TDF Mode = 0: 相同片选上2个读访问间的TDF等待状态
21.11 外部等待
任何访问被外部设备用SMC的NWAIT输入信号扩展。对应片选上SMC_MODE寄存器的EXNW_MODE域必须被设置为“10”(冻结模式)或“11”(就绪模式)。当EXNW_MODE被设置为“00”(使无效),NWAIT信号在对应片选上被简单的忽略。NWAIT信号延迟读或写操作关于读或写控制信号,依赖于对应片选的读和写模式。
21.11.1 限定
当EXNW_MODE之一被使能,对读/写控制信号强制性编程至少一个保持周期。因此,NWAIT信号不能被使用在页面模式(196页“异步页面模式”),或在慢时钟模式(193页“慢时钟模式”)。
NWAIT信号假设是对外部设备SMC读写请求的一个响应。NWAIT信号仅被SMC在读或写控制信号的脉冲状态被检查。预期周期以外NWAIT信号的激活不影响SMC的任何动作。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.11.2 冻结模式(Frozen mode)
当外部设备激活NWAIT信号(低电平有效),在此信号的内部同步化后,SMC状态被动结,就是说,SMC计数器被冻结,并且所有的控制信号维持不变。当重同步化NWAIT信号无效,SMC完成访问,从其停止的点重新开始访问。 见图21-26。此模式必须当外部设备使用NWAIT信号延迟访问和冻结SMC时被选择。
预期周期以外NWAIT信号的激活被忽略,如图21-27说明。
图21-26 在冻结模式用NWAIT信号写访问(EXNW_MODE = 10)
图21-27 在冻结模式用NWAIT信号读访问(EXNW_MODE = 10)
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.11.3 就绪模式(Ready mode)
在就绪模式(EXNW_MODE = 11),SMC有不同的操作。通常,SMC通过向下计数读/写控制信号的设定和脉冲计数器来开始访问。在脉冲阶段的最后一个周期,检查重同步NWAIT信号。
如果SMC被激活,则待定如图21-28和图21-29中的访问。重新激活后,完成访问:执行访问的保持阶段。
此模式必须当外部设备使用NWAIT信号的重激活时被选择,指示其完成读或写操作的能力。
如果NWAIT信号在脉冲结束以前被重激活,或在控制读/写信号脉冲结束后被激活,它对访问长度无影响,如图21-29所示。
图21-28 写访问中NWAIT有效 :读模式(EXNW_MODE = 11)
图21-29 读访问中NWAIT有效 :读模式(EXNW_MODE = 11)
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.11.4 NWAIT等待时间和读/写定时
在读/写控制信号有效和NWAIT信号的设备使能之间可能有一个延迟时间。读/写控制信号的编程脉冲长度必须至少等于此延迟时间加上重同步的2周期+1周期。此外,SMC可以不用检测NWAIT信号有效就进入访问的保持状态。和在就绪模式一样,在冻结模式也是真的。如图21-30说明。
当EXNW_MODE被使能(就绪或冻结),用户必须编程读和写控制信号的脉冲长度,至少:
最小脉冲长度=NWAIT延迟时间+ 2个重同步周期+1个周期
图21-30 NWAIT延迟时间
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
21.12 慢时钟模式
当被电源管理控制器驱动的内部信号被激活,SMC可自动运用一套“慢时钟模式”读/写波形,因为MCK已被转变到一个很慢的时钟速率(典型的32kHz时钟速率)。此模式下,用户编程的波形被忽略而慢时钟模式波形被运用。提供此模式以避免在很慢的时钟速率用适当的波形编程用户接口。当有效时,在所有片选上慢时钟有效。
21.12.1 慢时钟模式波形
图21-31说明在慢时钟模式读和写操作。它们在所有片选上有效。表21-6给出了慢时钟模式读和写参数值。
图21-31 慢时钟模式读/写周期
表21-6 慢时钟模式读和写定时参数 读参数
NRD_SETUP NRD_PULSE NCS_RD_SETUP NCS_RD_PULSE NRD_CYCLE
持续时间(周期) 1 1 0 2 2
写参数
NWE_SETUP NWE_PULSE NCS_WR_SETUP NCS_WR_PULSE NWE_CYCLE
持续时间(周期) 1 1 0 3 3
21.12.2 从慢时钟变换到正常模式/从正常模式变换到慢时钟模式
当从慢时钟变换到正常模式,当前慢时钟模式传送在高时钟速率用慢时钟模式参数完成。见194页图21-32。外部设备支持这样的定时可能还不够快。 图21-33说明了正确的从一个模式到另一模式转换的推荐程序。
图21-32 当SMC正在执行写操作时时钟速率转换发生
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
图21-33 从慢时钟变换到正常模式/从正常模式变换到慢时钟模式的推荐程序
21.13 异步页模式
SMC支持在页面模式异步脉冲串读,假如页面模式在SMC_MODE寄存器(PMEN 域)中被使能。页面大小必须在SMC_MODE寄存器中配置为4,8,16或32字节。
页面定义一套连续字节进入存储器。一4字节页面(分别是,8,16,32字节页面)总是和存储器的4字节边界(8,16,32字节边界)对齐。数据字节的MSB在存储器中定义页面地址,地址的LSB在页面中定义数据的地址,细节见表21-7。
页面模式存储设备,首次访问一页(tpa)比随后访问页面(tsa)所用时间长,如图21-34。当在页面模式,SMC使用户能对首次访问一页以内,随后访问页面内定义不同的读定时。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商 表21-7 一页中的页面地址和数据地址
页面大小 4字节 8字节 16字节 32字节
21.13.1
页面地址
A[25:2] A[25:3] A[25:4] A[25:5]
页面中的数据地址
A[1:0] A[2:0] A[3:0] A[4:0]
注意:1。A代表存储设备的地址总线
2.对16位设备,地址的0位被忽略。对32位设备,位[1:0]被忽略。
页面模式中的协议和定时
图21-34展示了页面模式访问下的NRD和NCS定时。
图21-34 页面模式读协议(地址MSB和LSB被定义在表21-7)
无论用户模式下设定和保持定时的编程值可能是什么,NRD和NCS信号 在所有读传送期间被保持在低电平。此外,NRD和NCS定时相同。首次访问页面的脉冲长度用SMC_PULSE寄存器的NCS_RD_PULSE域定义。随后访问页面内的脉冲长度用NRD_PULSE参数定义。
在页面模式,读定时的编程如表21-8中描述。 表21-8页面模式中读定时的编程
参数
READ_MODE NCS_RD_SETUP NCS_RD_PULSE NRD_SETUP NRD_PULSE NRD_CYCLE
值
‘x’ ‘x’ tpa ‘x’ tsa ‘x’
定义 无影响 无影响
首次访问页面的访问时间 无影响
随后访问页面的访问时间 无影响
SMC不检查定时的一致性。它将总是运用NCS_RD_PULSE定时作为页面访即使对tpa 的编程值比对tsa 的编程问定时(tpa)并且用NRD_PULSE访问页面(tsa),值短。
21.13.2 页面模式下字节访问类型
字节访问类型配置在页面模式保持有效。对16位或32位页面模式设备需要字
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
节选择信号,配置SMC_REGISTER 的BAT域为0(字节选择访问类型)。
21.13.3 页面模式限定
页面模式和NWAIT信号的使用不兼容。使用页面模式和NWAIT信号可能导致不可预期的动作。
21.13.4 顺序和非顺序访问
如果片选和如表21-7中定义的地址的MSB相同,则当前访问和前一个一样放置在同一个页面,并且无页面损坏发生。
使用此信息,所有同一页面内的数据,顺序的和非顺序的,用一个最小的访问时间(tsa)被访问。图21-35说明了用8字节页面在页面模式访问8位存储设备。访问D1导致用一个长访问时间(tpa)访问页面。访问D3和D7,虽然不是顺序访问,仅需要一个短访问时间(tsa)。
如果地址的MSB不同,SMC执行一新页面的访问。相同的方式下,如果片选和前面访问的不同,将导致页面损坏。如果2个顺序访问到页面模式存储器,但是被另外一个内部和外部外围访问分离,将在第二次访问产生页面损坏,因为设备的片选在两次访问间被重激活。
图21-35 同一页面中访问非顺序数据
21.14 静态存储控制器(SMC)用户接口
SMC用表21-9中所列寄存器编程。对每个片选,4寄存器被用于编程连接寄存器的外部设备的参数。表21-9中,“CS_number”指的是片选数。每个片选需要16字节(0x10)。 用户必须通过写SMC_MODE寄存器中的任何一个来完成写配置。 表21-9 SMC寄存器映射 偏移量
0x10 x CS_number + 0x00 0x10 x CS_number + 0x04 0x10 x CS_number + 0x08 0x10 x CS_number + 0x0C
寄存器
SMC设定寄存器 SMC脉冲寄存器 SMC周期寄存器 SMC模式寄存器
名称
SMC_SETUPSMC_PULSESMC_CYCLESMC_MODE
访问 读/写 读/写 读/写 读/写
复位状态
0x00000000 0x01010101 0x00010001 0x10001000
21.14.1 SMC设定寄存器 寄存器名称:SMC_SETUP[0 ..7] 访问类型:读/写
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
1. NWE_SETUP:NWE设定长度 NWE设定长度被定义为:
NWE设定长度= (128* NWE_SETUP[5] + NWE_SETUP[4:0])时钟周期 2. NCS_WR_SETUP:NCS写访问中设定长度 写访问中,NCS信号设定长的被定义为:
NCS设定长度= (128* NCS_WR_SETUP[5] + NCS_WR_SETUP[4:0])时钟周期 3. NRD_SETUP:NRD设定长度 NRD信号设定长度在时钟周期被定义为:
NRD设定长度= (128* NRD_SETUP[5] + NRD_SETUP[4:0])时钟周期 4. NCS_RD_SETUP:读访问中NCS设定长度 读访问中,NCS信号设定长度被定义为:
NCS设定长度= (128* NCS_RD_SETUP[5] + NCS_RD_SETUP[4:0])时钟周期
SMC脉冲寄存器
寄存器名称:SMC_PULSE[0..7] 访问类型:读/写
1. NWE_PULSE:NWE脉冲长度 NWE信号脉冲长度被定义为:
NWE脉冲长度= (256* NWE_PULSE[6] + NWE_PULSE[5:0])时钟周期 NWE脉冲长度必须至少1个时钟周期
2. NCS_WR_PULSE:写访问中NCS脉冲长度 写访问中,NCS信号脉冲长度被定义为:
NCS脉冲长度= (256* NCS_WR_PULSE[6] + NCS_WR_PULSE[5:0])时钟周期 NCS脉冲长度必须至少1个时钟周期 3. NRD_PULSE:NRD脉冲长度
标准读访问中,NRD脉冲长度在时钟周期中被定义为:
NRD脉冲长度= (256* NRD_PULSE[6] + NRD_PULSE[5:0])时钟周期 NRD脉冲长度必须至少1个时钟周期。
页面模式读访问,NRD_PULSE参数定义了页面中随后访问的持续时间。
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
4. NCS_RD_PULSE:读访问中NCS脉冲长度 标准读访问中,NCS信号脉冲长度被定义为:
NCS脉冲长度= (256* NCS_RD_PULSE[6] + NCS_RD_PULSE[5:0])时钟周期 NCS脉冲长度必须至少1个时钟周期
页面模式读访问,NCS_RD_PULSE参数定义首次访问一页的持续时间。 21.14.2 SMC周期寄存器 寄存器名称:SMC_CYCLE[0..7] 访问类型:读/写
1. NWE_CYCLE:总的写周期长度
总的写周期长度是写周期的时钟周期中总的持续时间。它等于NWE和NCS信号设定,脉冲和保持阶段的总和。它被定义为:
写周期长度= (NWE_CYCLE[8:7]*256 + NWE_CYCLE[6:0])时钟 2. NRD_CYCLE:总的读周期长度
总的读周期长度是读周期的时钟周期中总的持续时间。它等于NWE和NCS信号设定,脉冲和保持阶段的总和。它被定义为:
读周期长度= (NRD_CYCLE[8:7]*256 + NRD_CYCLE[6:0])时钟周期
21.14.4 SMC MODE寄存器 寄存器名称:SMC_MODE[0..7] 访问类型:读/写
1. READ_MODE:
1 :读操作由NRD信号控制。
-如果TDF周期被编程,外部总线在NRD上升沿后被标记为忙。
-如果使能(TDF_MODE =1)TDF最优化,在NRD设定后插入TDF等待状态。 0 :读操作由NCS信号控制 -如果TDF周期被编程,外部总线在NCS上升沿后被标记为忙 -如果使能(TDF_MODE =1)TDF最优化,TDF等待状态在NCS设定后被插入 2.WRITE_MODE
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
1:写操作由NWE信号控制。 -如果使能(TDF_MODE =1)TDF最优化,TDF等待状态在NWE设定后将被插入。 0:写操作由NCS信号控制 -如果使能(TDF_MODE =1)TDF最优化,TDF等待状态在NCS设定后将被插入。 3.EXNW_MODE:NWAIT模式
NWAIT信号被用于扩展当前读或写信号。仅考虑读和写控制信号脉冲阶段。当NWAIT的使用使能,至少一个周期的保持时间必须为读和写控制信号编程。 EXNW_MODE NWAIT模式 0 0 使无效 0 1 保留 1 0 冻结模式 0 1 就绪模式
a.无效模式(disable mode):NWAIT输入信号在对应片选上被忽略。
b.冻结模式(frozen mode):如果被激活,NWAIT信号冻结当前读或写周期。重激活后,读/写周期从停止点重新开始。 c.预备模式(ready mode):NWAIT信号指示外部设备在控制读或写信号脉冲结束时的可用性,来完成访问。如果高电平,访问正常完成。如果低电平,访问被扩展直到NWAIT返回高电平。
4.BAT:字节访问类型
只要DBW定义一个16或32位数据总线则此域就被使用。 a.1:字节写访问类型: -写操作用NCS, NWR0, NWR1, NWR2, NWR3控制。 -读操作用NCS和NRD控制 b.0:字节选择访问类型: -写操作用NCS, NWE, NBS0, NBS1, NBS2 and NBS3控制 -读操作用NCS, NRD, NBS0, NBS1, NBS2 and NBS3控制 5.DBW:数据总线宽度 DBW
0 0 0 1 1 0 1 1 数据总线宽度 8位总线 16位总线 32位总线 保留
6.TDF_CYCLES:数据浮动时间
此域给出了外部设备需要的整数的时钟周期数来在读控制信号的上升沿后释放数据。SMC总是在TDF_CYCLES周期后提供一个转变得全周期。外部总线不能在TDF_CYCLES + 1周期被另外的片选使用。从0到15 TDF_CYCLES可被置位。 7.TDF_MODE:TDF最优化 1:使能TDF最优化 -TDF等待状态数用下一此读/写访问的设定周期优化。 0:使无效TDF最优化 -TDF等待状态数在下一次访问开始前被插入 8.PMEN:页面模式使能
1:页面模式中异步脉冲串读运用在对应的片选上 0:运用标准读
http://www.mcuzone.com http://www.ATARM.com
微控电子——专业开发工具提供商,专业ATARM推广商
9.PS:页面大小
如果页面模式被使能,此域表示页面的字节大小。
PS 页面大小
0 0 4字节页面 0 1 8字节页面 1 0 16字节页面 1 1 32字节页面
http://www.mcuzone.com http://www.ATARM.com
Powered by Team Mcuzone
QQ:8204136
Website: www.mcuzone.com
2008
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务