QSPI项目DUT

设计模块的外接端口主要有:

与APB接口相连的信号端口,包括PWRITE、PSEL、HRESETn、PADDR、PENABLE、HCLK、PWDATA、PRDATA、PSLVERR、PREADY;

与QSPI接口相连的信号端口,

包括spi_sdi0、spi_sdi1、spi_sdi2、spi_sdi3(这四个信号为DUT的输入信号,数据由外部输入进DUT),

spi_sdo0、spi_sdo1、spi_sdo2、spi_sdo3(这四个信号是DUT的输出信号,数据由DUT输出至设备);

spi_csn0、spi_csn1、spi_csn2、spi_csn3(这四个信号表示总线传输有效,拉低表示开始传输,低有效,总线在整个传输过程中,它一直持续拉低);

spi_oe0、spi_oe1、spi_oe2、spi_oe3(这四个信号表示通道使能信号,当此信号为1时候,代表对应的spi_sdo通道的数据有效,DUT内部利用这4个信号控制spi的工作模式,单线还是多线模式。当spi_oe信号为1时,对应总线输出数据);

spi_clk表示时钟信号(此时钟信号是DUT内部经过分频后的信号,将此时钟传输给设备,HCLK信号为从apb端传进DUT的时钟信号);

events_o表示DUT内部中断,其连接到QSPI接口的中断上,将内部中断信号引出。

寄存器:

ADDR:0x00        REGISTER:SPI_CTRL       

        [31:12]        REVERSE        RW

        [11:8]        CS        WO

        [7:5]        REVERSE        RW

        [4]        SRST        WO        SW reset(clear FIFO),此复位只清除FIFO中的数据

        [3]        QWR        WO        Quad-SPI Write,在Quad模式下运行,即正常的4线模式的写

        [2]        QRD        WO        Quad-SPI Read,在Quad模式下运行,即正常的4线模式的读

        [1]        WR        WO        NQuad-SPI Write,在非Quad模式下运行,即单线线模式的写

        [0]        RD        WO        NQuad-SPI Read,在非Quad模式下运行,即单线线模式的读

ADDR:0x04        REGISTER:SPI_STATUS    

        [31:12]        REVERSE        RW

        [28:24]        TXELEMS        RO        在TX FIFO中元素的个数

        [23:21]        REVERSE        RW     

        [20:16]        RXELEMS        RO        在RX FIFO中元素的个数

        [23:21]        REVERSE        RW     

        [6:0]        STATUS        RO       总线状态:1、IDLE;                                                                                                                                          2、CMD;                                                                                                                                          4、ADDR;                                                                                                                                       16、DUMMY;                                                                                                                                    32、DATA_TX;                                                                                                                                64、DATA_RX

ADDR:0x08        REGISTER:SPI_CLKDIV

        [31:8]        REVERSE        RW

        [7:0]        CLKDIV        RW        分频电路通过此寄存器数值将时钟分频

ADDR:0x0C        REGISTER:SPI_CMD

        [31:28]                RW        commond命令模式:2、PAGE_PROGRAMMING;                                                                                                     3、READ_DATA                                                                                                                                 4、WRITE_DISABLE                                                                                                                         6、WRITE_ENABLE

ADDR:0x10        REGISTER:SPI_ADR

        [31:0]                        RW        地址值

ADDR:0x14        REGISTER:SPI_LEN

        [31:16]        DATALEN        RW        发送的data数据长度,数据长度为0-8-128(每次递增8)

        [15:14]        REVERSE        RW

        [13:8]        ADDRLEN        RW        发送的addr地址长度,地址长度为0-8-16-24-32

        [7:6]        REVERSE        RW

        [5:0]        CMDLEN        RW        发送的cmd命令长度,命令长度为0-8-16-24-32

一般传输的时候,传输的长度都是8或者16bit

ADDR:0x18        REGISTER:SPI_DUM

        [31:16]        DUMMYWR        RW        写的地址与数据之间的等待周期0-8-16-24-32.....-128

        [15:0]        DUMMYRD        RW        读的地址与数据之间的等待周期0-8-16-24-32.....-128

ADDR:0x1C        REGISTER:SPI_TXFIFO

        [31:0]        TX        RW        写数据的FIFO,

ADDR:0x20        REGISTER:SPI_RXFIFO

        [31:0]       RX        RW        读数据的FIFO

ADDR:0x24        REGISTER:SPI_INTCFG

        [31]       EN        RW        1、enable SPI interrupt                        0、disable SPI interrupt

        [30:13]        REVERSE        RW

        [12:8]        RXTH        RW        指定触发RXFIFO中断的阈值,1-4

        [7:5]        REVERSE        RW

        [4:0]        TXTH        RW        指定触发TXFIFO中断的阈值,1-6

ADDR:0x28        REGISTER:SPI_INTSTA

        [31:2]        REVERSE        RW

        [1]        RXINT        RO        1:SPI RX interrupt occurs                                                                                                                2:SPI RX interrupt don’t occur

        [0]        TXINT        RO        1:SPI TX interrupt occurs                                                                                                                2:SPI TX interrupt don’t occur

功能描述:

apb接口先将DUT进行配置,然后将要写的数据写进寄存器中,写进寄存器的数据会根据设置的配置信息通过qspi总线将数据根据地址和命令将他们都发送到总线上,传输到device端。如果是写数据,device端将数据保存下来,如果是读数据,device端将先前保存的数据通过总线发送出去。

command命令支持4种模式,PAGE_PROGRAMMING、READ_DATA 、 WRITE_DISABLE、WRITE_ENABLE。PAGE_PROGRAMMING即一般的数据写操作,将数据发送给device,READ_DATA即读数据,此命令一般在写过数据之后再执行,将device中存的数据读出,WRITE_DISABLE和WRITE_ENABLE都只传输cmd命令,无实际地址和数据的传递。

addr地址几乎没有什么限制,32位长。

dummy周期在读数据的地址和数据之间以及写数据的地址和数据之间都会有dummy周期,此周期数可以在寄存器中配置,为0-128。

data数据几乎没有什么限制,32位长。

以上都可以在传输过程中在LEN寄存器中配置长度。一般都是4线传输,可以通过寄存器配置为单线传输,单线传输的时候,DUT内部将1、2、3的总线输出使能端置0屏蔽,使得除了一根总线外,其他总线输出数据无效。

1、数据格式可配置,各个数据位数可配置

2、可以4线或者单线传输

3、可以产生内部中断信号

4、寄存器配置功能

5、从device中读写读数据

6、可单独配置时钟和传输速度(寄存器可配置范围:0-128)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值