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
具体操作流程参考五、完整验证流程
qspi(spi四线模式)相关推荐
- SPI FLASH 二线/四线模式
SPI通讯常用到的被分为四种通讯方式1)单线模式,2)标准模式,3)双线模式,4)四线模式,各自的应用场景不同. SPI单线通讯模式 SPI单线模式是将原来的两根数据线改成一根,通讯方式变成了半双工的 ...
- 【QSPI】 什么是QSPI SPI和QSPI异同
什么是SPI SPI 协议是摩托罗拉公司开发的协议,SPI 的英文全称为 serial Perripheral Interface,翻译过来 就是"串行外围设备接口",属于一种高速 ...
- (68)SPI工作模式有哪些?分为几种极性模式。
1.1 SPI工作模式有哪些?分为几种极性模式. 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)SPI工作模式有哪些?分为几种极性模式.: 5)结束语. 1.1.2 本 ...
- stm32 spi从模式配置解答
你是不是和我一样过,被这个spi 从模式 整过,我真是逼了狗.做个分享,希望对你有帮助. 目标:stm32(战舰) 和 stm32(迷你)的spi对传(战舰做从,迷你做主) 结果:对传成功 代码不写, ...
- 联芯 1860平台 icn6211 mipi to RGB 转换芯片 调试 和 st7789 LCD调试spi 9bit 模式
关键字:联芯科技,LC1860,LC186x,Chipone Technology,icn6211,mipi bridge,mipi to RGB,mipi转换芯片,RGB666,st7789,st7 ...
- MSP432的SPI通信模式
目录 2.3 MSP432的SPI通信模式 2.3.1 SPI的主机模式 2.3.2 SPI的从机模式 2.3.3 串行时钟控制 2.3.3 SPI中断 2.3.4 SPI模式--eUSCI寄存器 2 ...
- 基于TI SYSBIOS GIO 接口封装的SPI DMA模式
基于TI SYSBIOS GIO 接口封装的SPI DMA模式 硬件:TMS320C6748 (创龙开发板) bsp: bios_6_37_03_30 注意: DMA模式需要先使能EMDA3 TC/C ...
- SPI通信模式是什么?
1. 术语 CKPOL 极性, CKPOL (Clock Polarity) = CPOL = POL = Polarity = (时钟)极性 CKPHA 相位 CKPHA (Clock Phase) ...
- QSPI 几种模式理解
NOR FLASH 和NAND FLASH 区别: Nor Flash :写入和擦除的速度低:结构复杂,成本高:存储容量较小:一般用于存储Bootloader以及操作系统或者程序代码,可以在芯片内部直 ...
最新文章
- Bzoj1123 Blockade
- 支付宝支付 订单参数异常,请重新下单后再发起付款
- stl-vector
- python函数映射教学,Python 序列与映射的解包操作
- Android骨架屏实现方案
- 怎么给vue定义全局方法
- AI框架中图层IR的分析
- 怎么修改兼容模式html,HTML5中怎么调兼容性?
- pythonATM,购物车项目实战1,项目说明
- 新手引导 自定义遮罩 点击穿透
- testlink xml转excel
- 网银爬虫系统(爬取网银流水,爬取网银余额)难点分析
- 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
- python逐行读取xls文件
- SCCM 2012 R2部署,安装SCCM(四)
- 使用wangeditor遇到的坑,插入视频只显示音频
- C++ 中的线程库和 lamber 表达式
- OpenGL圆柱面绘制贴图
- VB.net中字符串转16进制,string转byte,串口发送文本直接转16进制数据
- springboot宠物医院管理系统
热门文章
- 什么是Web1.0、2.0、3.0?
- 2018秋招历程之28所
- 计算机网络 - chunk协议
- 最小二乘法曲线拟合 C语言实现
- exe停止运行C语言,处理win7应用程序已停止“异常代码c0000005”的方法
- c oracle帮助文档下载,Oracle 19c 官方文档——Concepts
- Python进阶(五)浅谈python匿名函数
- User’s Guide
- STM32之 W25Q128闪存(SPI协议)驱动代码(程序稳定,清晰明了)
- u-boot-2012.04.01移植到TQ2440