IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F7--->QSPI -> 正文阅读

[嵌入式]STM32F7--->QSPI

QSPI即Quad SPI(四线SPI),几种SPI的区别详见参考

QSPI 介绍

工作模式

  • QSPI是一种专用的通信接口,可连接单、双或四(条数据线)SPI FLASH存储器。STM32F7具有QSPI接口,并且支持三种工作模式:
    1. 间接模式
      ?使用QSPI执行全部操作
    2. 状态轮询模式
      ?周期性读取外部FLASH状态寄存器,当标志位置1时会产生中断
    3. 内存映射模式
      ?外部FLASH映射到微控制器地址空间,从而系统将其视作内部存储器

QSPI特点

  • 支持三种工作模式
  • 支持双闪存模式,可以并行方位两个FLASH,可同时发送/接收8位数据
  • 支持SDR(单倍率)和DDR(双倍率)模式————(这部分不理解后面用到再解释)
  • 间接模式和内存映射模式,可编程操作码,可编程帧格式
  • 集成FIFO(先进先出的 双口缓存器),用于发送和接收
  • 允许8/16/32位的数据访问
  • 间接模式的操作可使用DMA通道
  • 在达到FIFO阈值、超时、操作完成及访问发生错误时产生中断

F7的QSPI闪存映射模式接口框图

请添加图片描述

  • 如图为STM32F7的QSPI闪存模式的系统框图,QSPI通过6根线与SPI芯片连接,包括:4根数据线(IO0~3)、一根时钟线(CLK)和1根片选线(nCS)。普通的SPI只有一根数据项(MOSI),而QSPI有4根数据项,速率至少提升了4倍,大大提升了通信效率。

QSPI命令序列(与FLASH的通信)

  • QSPI通过命令序列FLASH通信,每条命令包括:指令、地址、交替字节、空指令、数据,这五个阶段任一阶段均可跳过,但至少要包含指令、地址、交替字节或数据阶段之一
  • 在这里插入图片描述
    nCS在每条指令开始前下降,每条指令完成后上升。有图可见工5个阶段,其中交替字(复用)节阶段一般用不到,可以省略(通过设置 ABMODE[1:0]=00 )。如下逐一分析

指令阶段

  • 此阶段通过 QUADSPI _CCR[7: 寄存器的 INSTRUCTION 字段指定一个 8 位指令发送到FLASH 。注意,指令阶段,一般是通过 IO0 单线发送,但是也可以配置为双线 四线发送指令,可以通过 QUADSPI _CCR[9: 寄存器的 IMODE[1:0] 这两个位进行配置,如 IMODE[1:0]=00则表示无需发送指令。

地址阶段

  • 此阶段可以发送 1~4 字节地址给 FLASH 芯片,指示要操作的地址。地址字节长度由QUADSPI _CCR[13: 寄存器的 ADSIZE[1:0] 字段指定, 0~3 表示 1~4 字节地址长度。在间接模式和轮询模式下,待发送的地址由 QUADSPI _AR 寄存器指定。地址阶段同样可以以单线 双线四线模式发送,通过 QUADSPI _CCR[11: 寄存器的 ADMODE[1:0] 这两个位进行配置,如ADMODE [1:0]=00 ,则表示无需发送地址。

交替字节(复用字节)阶段

  • 此阶段可以发送1~4 字节数据给 FLASH 芯片,一般用于控制操作模式。待发送的交替字节数由 QUADSPI_CCR[17:16] 寄存器的 ABSIZE[1:0] 位配置。待发送的数据由 QUADSPI_ABR寄存器中指定。交替字节同样可以以单线 双线 四线模式发送,通过 QUADSPI_CCR[15:14] 寄存器的 ABMODE[1:0] 这两个位配置, AB MODE[1:0]=00 ,则跳过交替字节阶段。

空指令周期阶在空指令周期阶段,在给定的

  • 1~31 个周期内不发送或接收任何数据,目的是当采用更高的时钟频率时,给 FLASH 芯片留出准备数据阶段的时间。这一阶段中给定的周期数由QUADSPI_CCR[22:18] 寄存器的 DCYC[4:0] 位配置。 若 DCYC 为零,则跳过空指令周期阶段。

数据阶段

  • 此阶段可以从FLASH 读取 写入任意字节数量的数据。在间接模式和自动轮询模式下,待发送 接收的字节数由 QUADSPI_DLR 寄存器指定。 在间接写入模式下,发送到 FLASH 的数据必须写入 QUADSPI_DR 寄存器。在间接读取模式下,通过读取 QUADSPI_DR 寄存器获得从FLASH 接收的数据。数据阶段同样可以以单线 双线 四线模式发送,通过 QUADSPI _CCR[25:寄存器的 DMODE [1:0] 这两个位进行配置,如 DMODE [1:0]=00 ,则表示无数据。

间接模式

  • 在间接模式下,通过写入QUADSPI 寄存器来触发命令,通过读写数据寄存器来传输数据。

  • 当FMODE=00 (QUADSPI_CCR[27:26]) 时, QUADSPI 处于间接写入模式,在数据阶段,将数据写入数据寄存器 (QUADSPI_ DR),即可写入数据到 FLASH 。

  • 当FMODE=01 时, QUADSPI 处于间接读取模式,在数据阶段,读取 QUADSPI_DR 寄存器,即可读取 FLASH 里面的数据。

  • 读写字节数由数据长度寄存器 (QUADSPI_ DLR)指定。当 QUADSPI_DLR=0xFFFFFFFF 时,则数据长度视为未定义, QUADSPI 将持续传输数据,直到到达 FLASH 结尾( FLASH 容量由QUADSPI_DCR[20:16] 寄存器的 FSIZE[4:0] 位定义)。如果不传输任何数据,则 DMODE[1:0](QUADSPI_CCR[25:24] 应设置为 00 。

  • 当发送或接收的字节数(数据量)达到编程设定值时,如果TCIE=1 ,则 TCF 置 1 并产生中断。在数据量不确定的情况下,将根据 FSIZE[4:0] 定义的 FLASH 大小,在达到外部 SPI FLASH的 限制时, TCF 置 1 。

  • 在间接模式下有三种触发命令启动的方式,即:

    1. 当不需要发送地址(ADMODE[1:0]==00)和数据(DMODE[1:0]==00)时,对INSTRUCTION[7:0] (QUADSPI_CCR[7:0] )执行写入操作。
    2. 当需要发送地址(ADMODE[1:0]!=00),但不需要发送数据(DMODE[1:0]==00),对ADDRESS[31:0] (QUADSPI_AR)执行写入操作。
    3. 当需要发送地址(ADMODE[1:0]!=00)和数据(DMODE[1:0]!=00)时 ,对 DATA[31:0] (QUADSPI_DR)执行写入操作。

    如果命令启动,BUSY 位( QUADSPI_SR 的第 5 位)将自动置 1

QSPI的使用

QSPI初始化步骤

1.开启QSPI接口和相关时钟,设置IO的复用功能

2.设置QSPI相关参数

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:05:12  更:2021-09-01 12:06:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:37:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码