qspi(spi四线模式)

目标:使用spi的四线模式,可以加快cpu读取bios rom里面的数据,从而更快的开机

一、基础参考资料CPU手册,ROM手册,硬件连接

用到的参考资料:主要是软件编程手册中qspi寄存器部分和对应的spi rom手册(如GD25LQ128D)

注意是QSPI寄存器,不是SPi寄存器,因为现在硬件是连在QSPI线上的。

SPI主要是CE#,SCK,SI以及SO四根信号线

QSPI会把除了VCC,GND之外的线,全部变成数据线。也就是SI,SO,HOLD#,WP# 4根数据传输线

然后我们目前用的只是读取数据的时候使用4根线。对应的命令在GD25LQ128D手册

目前使用的是0x6B命令,

BIOS读取数据前要把这个命令填在D2000 qspi RD_CFG(0x4)寄存器中。

(0x6B<<24) | (0x2<<20) | (0x4<<16) |(0x7<<4) | (0x1<<3) | 0x4

其中:6B对应spi手册上的Quad Output Fast Read命令,

0x2<< 20,代表使用010---->1-1-4模式,就是读取数据使用4根线,其余使用1根线传输

0x4代表sck为pclk的16分频,也就是37.5MHZ

0x7<< 4代表 数据要在命令之后8个cycle才读取(这个可以对应spi 手册 0x6b命令的要求)

a dummy byte对应 8个cycle

二、要修打开这个值,还必须要打开QE寄存器;

上图是spi对应的手册,要把这一位置1.有些spi rom出厂就是置1并且不可修改。

要修改QE,要先进入进入spi write enable

三、要通过qspi寄存器0x****10 0x****1c来操作上面这几个寄存器

对应的流程在手册中有说明,我们使用的是寄存器端口访问,也就是先往0x****10写指令,然后往0x****1c写1发送

这个write寄存器和上面那个read寄存器比较相似

so,我们先做个实验,将时序中所需要的CS#,SCLK,SI,SO找硬件连出来到示波器

然后在uefi shell中

mm 0x****10 0x6400000 -w 4(意思是往0x2****10写0x6400000,对应0x6这个命令write enable指令)

此时没有信号

然后mm 0x****1c 1 -w 4

示波器触发模式下信号如图:

从上到下分别是clk,cs,si对应时序:

可以看到后面四位是粉色那条线,对应110,也就是0x6

说明操作正确。

四、通过硕飞烧录器来读取修改寄存器来验证操作流程是否正确

可以看到QE处于Status register2上,查手册对应的修改命令为0x1或者0x31

查看status2的命令为0x35

五、完整验证流程

1.通过硕飞烧录器将QE置0

2.在shell下通过命令将QE置1

3.通过硕飞烧录器查看QE是否需要被置1

2步骤具体流程:

2.1通过0x35命令查看QE是否置0

mm 0x****10 0x35402000 -w 4

mm 0x****1c -w 4

可以看到0x2对应的就是QE,现在是置1的

2.2先将QE置1后,通过0x6进入write enable

mm 0x****10 0x6400000 -w 4

mm 0x****1c 1 -w 4

2.3,通过命令0x1置位QE

mm 0x****10 0x1402008 -w 4

mm 0x****1c 0x200 -w 4

这个0x1命令是同时修改status1 &&status2 .有些芯片支持只修改status2的命令

2.4通过硕飞烧录器看是否烧录正确

六、代码

修改的代码路径

这段代码的意思是往x0写0x****10,往w1写0x35402000,然后把w1写到x0对应的地址上

也就是往0x****10 写0x35402000

这个b.ne意思是如果w9不等w0(0x1828a1 这个是一个区别号),就跳转3f,3f意思是后面那个3:,如果是3b,是指前面那个3

具体操作流程参考五、完整验证流程

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QSPI是Quad SPI的缩写,它是一种高速串行外设接口,与SPI(Serial Peripheral Interface)兼容。SPI是一种常见的串行通信协议,用于在芯片之间传输数据。而QSPI则是在SPI的基础上进行了改进,使用了四根数据传输线(SI、SO、HOLD#、WP#)来提供更高的数据传输速率。 因此,QSPI可以与SPI的设备兼容,包括AD5300这样采用多功能三线式串行接口的器件。AD5300能够支持最高30 MHz的时钟速率,并与标准SPI、QSPI、MICROWIRE、DSP接口标准兼容。 在使用QSPI时,可以参考相关的软件编程手册和SPI ROM手册,如GD25LQ128D,以了解QSPI寄存器部分的详细信息和相应的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [qspispi四线模式)](https://blog.csdn.net/fell_sky/article/details/129124950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [da5300 (DA) spi驱动程序](https://download.csdn.net/download/dingfuqing/3944669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值