硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6028|回复: 3
收起左侧

[SPI/QSPI] STM32H7的QSPI间接模式,查询模式和内存映射区别

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2020-11-1 10:27:10 | 显示全部楼层 |阅读模式
间接模式:
这里所谓的间接模式是指寄存器方式访问外设,就跟我们操作串口外设一样。间接模式主要用于以下场合:
(1)用于读取,写入,擦除和配置QSPI Flash。
(2)如果不需要AHB总线访问 QSPI Flash(在内存映射模式用)。
(3)CPU或者DMA通过QSPI数据寄存器执行所有操作。

在间接模式下,所有操作均通过QSPI寄存器执行,含读取和写入操作都由软件管理。 QSPI接口类似于经典的SPI接口。传输的数据通过数据寄存器与FIFO。在在此模式下,可以从大容量的外部Flash读取数据或向外部Flash写入数据,可以支持到4GB容量。
如果进行擦除或编程操作,则必须使用间接模式,并且所有操作必须由软件处理。在这种情况下,建议使用状态轮询模式,然后轮询闪存内部的状态寄存器以了解何时编程或擦除操作完成。


状态轮询模式
在以下情况下使用状态轮询模式:
(1)读取QSPI Flash状态寄存器。
(2)在操作结束时自动轮询状态寄存器。
可以自动轮询内存中的指定寄存器并减轻CPU负担,例如检查擦除操作何时完成。QSPI也支持定期查询QSPI Flash,并且可以屏蔽返回的数据位,将所选位与所需值进行比较,结果比较可以通过下面两种方式处理:
(1)AND与操作模式:如果所有选定位都匹配,则产生中断。
(2)OR或操作模式:如果所选位之一匹配,则产生中断

发生匹配时,QSPI可以自动停止。

内存映射模式
在以下情况下使用内存映射模式:
(1)用于阅读操作。
(2)像使用内部Flash一样使用外部QSPI Flash, 任何AHB总线主控都可以自主读取数据。
(2)用于从外部QSPI Flash执行代码。

QSPI接口能够管理多达256 MB的内存,在内存映射模式下地址范围是0x9000 0000到0x9FFF FFFF。



回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2021-3-16 11:37:37 | 显示全部楼层
请教一下如何从内存映射模式返回到间接模式呢,因为在内存映射模式下我又想写FLASH
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2021-3-16 11:50:59 | 显示全部楼层
请教一下如何才能从内存映射模式返回间接模式呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
 楼主| 发表于 2021-3-16 17:03:34 | 显示全部楼层
sniper15 发表于 2021-3-16 11:50
请教一下如何才能从内存映射模式返回间接模式呢

重新配置QSPI即可
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 08:49 , Processed in 0.154344 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表