ADI21593的memerymap通讯

         adi21593的spi2的memerymap模式有SPI_CTL.MMSE位使能控制,memerymap read header reister (SPI_MMRDH)设置模式配置。

         在非内存器映射模式中,读取数据的命令和需求dummy字由软件控制,在内存映射模式中,这些需求由硬件实现。spi的memerymap模式只支持读,不支持任何形式写到flash的操作。

        内存系统控制器发送一个read请求到fabric,然后fabric规划路径到spi设备,控制器解读一些列的通讯参数,包括起始地址,转换大小以及中断类型等,spi开始接受读取数据请求并未下一次的重新传输准备。将操作码,地址字节数,操作模式等传入FIFO。SPI传输和接收通道使能后spi内存状态机开始工作。

        spi的读序列在spi_sel断言后开始。一旦spi内存状态机处于重置状态,便开始寻求指令,spi的硬件开始发送8bit的读指令,并且后续跟着spi读内存的地址。上述操作完成后,插入一个dummy周期,在此周期内,发送一个模式字节,引脚被held或者处于第三态。

     当I/O口数据引脚处于three-satate时,spi的时钟继续工作驱动数据继续传输直到接收到最后一个数据。SPI_CTL.MIOM位配置spi硬件为读数据模式,直到接收到所有的数据之后,SPI_SEL取消断言为下一次read header准备。

     memerymap通讯除了spi_ctr寄存器之外最重要的就是SPI_MMRDH寄存器,其寄存器位定义如下:

OPCODE:SPI内存读请求响应的初始位传输字节,0x03,0x0b,0x6b等使用最多

ADRSIZE:读取地址的字节数,地址位能够被发送到单个或者多个pin,SPI_MMRDH.ADRPINS                     决定地址发送的pin引脚。

ADRPINS:地址发送到的引脚数使能,0是单引脚1是多引脚,具体发送到那些引脚spi_ctr.miom                       决定。

DMYSIZE:dummy字节数,也就是发送地址与读取返回数据之间的字节数。

MODE:dummy字节期间最大的leading字节数

TRIDMY:在dummy期间输出pin是否或者何时转换为three-state

MERGE:该位控制两条转换的merge使能

WRAP:wrap模式下该位需由软件设置。当spi服务于非线性缓存填充请求,该位设置为1,SPI不                需要deassertSPI的从选择信号并且发送readheader。

CMDSKIP:skip模式使能,用于支持XIP操作模式,该操作下spi只发送地址,而采用相同的read                        指令。

CMDPINS:指定用于command传输的引脚数量。

 dummy周期:

      在多IO模式下,大部分的设备都要求在地址后拥有dummy时钟周期,在此时钟周期内,设备能够完成一些初始化操作例如地址的初始化操作过程。硬件控制中SPI_MMRDH.DMYSIZE设置dummy的循环。dummy时钟周能够进行以下操作:发送模式位,将pin转为three-state,翻转引脚为接收数据准备。dummy周期与SPI通讯引脚数之间的关系(MIOM表示spi的dual,qual等模式):

以下是spi memerymap配置流程图:

    spi memerymap方式从flash中读取数据的整个工作时序(SPI FAST READ sequence):

       通过spi读取flash数据可以通过MDA的方式取出并进行并存在制定的位置。

       memerymap操作模式下,SPI_MMRDH.OPCODE在断言SPI_SEL信号后发送,SPI内存解析8bit数据作为读指令,最常见的8bit读取操作码如下:

                             

         adi为spi通讯提供了完整参数结构体以及控制函数,我们在使用spi通讯中memeryma模式时,只需要根据具体的要求选择相应的配置,包括spi基础init配置(包括模式,片选等),memerymap模式配置,并最终使能memerymap模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值