新闻中心

EEPW首页>嵌入式系统>设计应用> 基于AT25T1024 FLASH的高速SPI接口设计

基于AT25T1024 FLASH的高速SPI接口设计

作者: 时间:2011-08-03 来源:网络 收藏
2.2 控制模块的设计

  SPI_CTRL控制模块可将发送缓冲区0的数据读出来,经过并串转换,发送到串行线SI上,并且控制从串行线SO上接收数据,存储在接收缓冲区,并行数据转换成串行输出由并串转换状态机来控制实现,见图3。

基于AT25T1024 FLASH的高速SPI接口设计

  各状态含义如下:

  TX_IDLE:等待主机设置控制寄存器的GO位,如果置“1”,表示准备开始传输,跳入下一状态TX_ADDR。

  TX_ADDR:当传输长度小于等于32位时,跳入下一状态PARALELL_DATA。

  PARALELL_DATA:如果GO为1,在此状态TIP将被置“1”,说明传输开始,传输的计数器开始计数。

  SERIAL_DATA:并行数据转换为串行数据发送出去,当CNT_SHIFT计数器减到0时,传输结束,状态跳入TX_IDLE。

  2.3 串行移位时钟设计

  SPI串行线上的主从设备必须根据具体要求设置匹配的传输时序模式,时序只有匹配,数据传输才能正常进行。如果设置的不匹配,可能导致数据接收方和发送方在同一时钟沿作用,而使数据传输失败。本设计中的时钟仅支持SP0模式,即串行时钟处于空闲电平时,空闲状态时钟的极性电平为低,在时钟的前沿采样数据,时钟后沿串行线上数据变化。

  在采样时刻,线上数据必须已经稳定可靠,因此数据发送端设备应提前将数据移出到数据线上,本SPI接口电路设计在同一串行移位时钟周期中的前一个时钟沿(即相反时钟变化方向)将数据移出,移位时钟设计为系统时钟的两分频,为40/2MHz。

  2.4 SPI相关寄存器描述

  在本设计中,共有四种32位寄存器,包括控制寄存器,从设备选择寄存器,加载配置数据起始寄存器以及加载配置数据完成寄存器。

  控制寄存器用来控制配置信息加载方式,即:片外加载方式或主机直接加载方式。当选择片外加载方式时,控制寄存器还用来控制一次数据传输的长度。CTRL寄存器的具体描述见表1。

基于AT25T1024 FLASH的高速SPI接口设计

  从设备选择寄存器的SS位置“1”时,表示选中从设备。置“0”表示不选择任何从设备,本设计仅支持一个从设备。

  加载配置数据起始寄存器的SPICFGSTART位置“1”时,配置数据自动从中读取并写入到DPRAM中,置“0”不进行读FLASH操作。

  加载配置数据完成寄存器为只读寄存器,用来判断数据是否已经加载完成。

  2.5 SPI缓冲区设计

  图4所示为主机可直接访问的SPI接口内部DPRAM发送和接收数据缓冲区。

基于AT25T1024 FLASH的高速SPI接口设计

  SPI发送数据缓冲区深度65,数据位宽32位,其中地址22’h 3e0600存放访问AT25F1024存储器的指令,当进行写操作时,从数据发送缓冲区最低位地址22’h3e0604开始,将数据搬运出来,串行发送到AT25F1024存储器。

  SPI接收数据缓冲区深度65,数据位宽32位,其中地址22’h3e0400缓存读取的AT25F1024配置和状态信息,偏移地址22’h3e0404~22’ h3e0500缓存指定FLASH读取的总线配置数据数据,最大缓存2048位。



评论


相关推荐

技术专区

关闭