FlexSPI 发送地址到器件上 手册1660页

27.5.6发送到设备的闪存地址

闪存访问起始地址由AHB地址(AHB命令)或IPCR0[SFAR]寄存器(IP命令)决定。更多细节参考Flash访问的AHB命令和IP命令。

对于AHB命令,当FlexSPI控制器发送flash地址到设备时,将自动删除flash base地址。

对于IP命令,IPCR0[SFAR]中的地址应该是flash设备的地址,不含基址。

闪存地址分两部分被发送到设备:行地址和列地址。对于不支持列地址的闪存设备,请将寄存器字段FLSHxCR1[CAS]设置为0。然后所有的flash地址位将作为行地址发送给flash设备。

对于支持字寻址特性的flash设备,flash地址的最后一个比特是不需要的,因为flash是读/编程是2个字节对齐。

对于并行模式,Flash A1/B1(或A2/B2)是并行访问的,所以发送给Flash设备的Flash地址要除以2。下表表示行/列地址与flash地址(FA)的关系

注意

FA是删除了flash基址的flash地址。

如果指令中定义的要发送到闪存设备的行/列闪存地址比特数大于有效的行/列闪存地址比特数,高位置比特将被零代替。

有关行/列地址指令的更多细节,请参考可编程序列引擎。

当启用并行模式或使用word-addressable flash时,flash的开始地址和数据大小有限制。这一要求可以通过在软件中对齐AHB总线访问地址(用于AHB命令)或IP命令地址IPCR0[SFAR](用于IP命令)来满足。在特定情况下,有两种方法可以避免这些限制。

1. 对于AHB只读命令:

当AHBCR[READADDROPT]和AHBCR[PREFETCHEN]都被设置为1时,FlexSPI将保证闪存访问的起始地址和数据大小是硬件64位对齐的。

当AHBCR[READADDROPT]设置为1时,FlexSPI将获取冗余数据,以保证flash开始地址对齐为8个字节。当启用预取(AHBCR [PREFETCHEN])设置为1,flash读取数据大小由AHB RX缓冲区大小决定,该缓冲区是64位对齐的。

2. 对于AHB写命令和个别模式:

默认情况下,FlexSPI将通过使用DQS作为写掩码来保证flash写访问的起始地址和数据大小是16位对齐的。

此功能不能应用于并行模式,只有当外部设备支持写掩码功能时才应该使用。

猜你喜欢

转载自blog.csdn.net/catshit322/article/details/108298250
今日推荐