发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印
[其他]

灵动MM32 MCU哪款芯片有QSPI接口?QSPI接口是干什么用的?

[复制链接]
1842|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
poison0|  楼主 | 2023-4-18 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 poison0 于 2023-4-18 16:21 编辑

#申请原创# @21ic小管家  @21ic小可爱


灵动MM32 MCU系列中,据我了解查询,暂时可知.以下芯片具有QSPI接口:
MM32F103x8/4xC/2xx
MM32L3xx
MM32L4xx
MM32W0xx
MM32F327x/2xx
MM32F031xx (部分型号)
MM32F031x6/x8
MM32F031x4
MM32F327xx
MM32F328xx
MM32F369xx
MM32L073xx (部分型号)

灵动MM32 MCU芯片的QSPI(Quad SPI)接口是一种高速串行接口,用于连接外部闪存器件。



QSPI接口可以通过四个数据线(SPI数据线、片选线、时钟线)实现高速数据传输,支持SPI、Dual SPI和Quad SPI等多种传输模式。

QSPI接口可以提供高速的闪存存储访问能力,是许多嵌入式系统和应用中常用的外设接口之一。



在灵动MM32 MCU中,通过QSPI接口连接外部闪存器件,可以实现以下功能:

1.存储代码和数据:将代码和数据存储在外部闪存器件中,可以有效地扩展MCU的存储容量。

QSPI接口可以连接外部闪存器件,将代码和数据存储在闪存器件中。

这样可以扩展MCU的存储容量,并且外部闪存器件的高速读取能力可以提供快速的启动和运行能力,从而提高系统的响应速度。

QSPI接口连接外部闪存器件也可以用于存储无线通信模块的固件和参数配置等信息,从而提高无线通信模块的灵活性和可扩展性。

2.快速启动和运行:外部闪存器件的高速读取能力可以提供快速的启动和运行能力,从而提高系统的响应速度。

3.备份和恢复数据:通过将数据存储在外部闪存器件中,可以实现数据的备份和恢复功能,提高系统的可靠性。QSPI接口连接外部闪存器件可以实现数据的备份和恢复功能,提高系统的可靠性。当系统出现故障时,可以从外部闪存器件中恢复数据,避免数据丢失。

4.更新程序和固件:通过外部闪存器件可以方便地更新程序和固件,使系统具有更强的灵活性和可扩展性。通过QSPI接口连接外部闪存器件,可以方便地更新产品固件,实现在线升级和修复等功能。这对于许多产品来说非常重要,因为可以避免大规模召回和重新生产。

综上所述,大致QSPI接口是干什么用的大家应该也明白了一些。



我举个例子,怎么使用这个接口:、

1.连接QSPI外部闪存器件
我需要将QSPI接口连接到一个外部闪存器件,

例如Winbond W25Q128JV。

连接QSPI外部闪存器件的步骤包括:
连接QSPI时钟线、
QSPI数据线、
QSPI片选线、
QSPI数据输入/输出线。

2.配置QSPI外设:
需要在灵动MM32 MCU中配置QSPI外设,以实现与外部闪存器件的通信。
配置QSPI外设需要设置以下参数:
SPI传输模式、
SPI时钟频率、
SPI数据位数、
SPI极性和相位等参数。


3.编写应用代码:
可以使用MCU的开发环境(如Keil或IAR)编写应用程序代码,以利用QSPI外设与外部闪存器件通信。

在应用代码中,我可以使用QSPI读取和写入指令来读取和写入外部闪存器件中的数据。

用于读取外部闪存器件中的数据相关代码:
#include "mm32.h"
#include "mm32_qspi.h"

int main()
{
    /* 初始化QSPI外设 */
    QSPI_StructInit(&QSPI_InitStructure);
    QSPI_InitStructure.QSPI_Mode = QSPI_Mode_Master;
    QSPI_InitStructure.QSPI_Prescaler = 2;
    QSPI_InitStructure.QSPI_ClkMode = QSPI_ClkMode_0;
    QSPI_InitStructure.QSPI_Direction = QSPI_Direction_2Lines_FullDuplex;
    QSPI_InitStructure.QSPI_NSS = QSPI_NSS_Soft;
    QSPI_InitStructure.QSPI_BaudRatePrescaler = QSPI_BaudRatePrescaler_4;
    QSPI_Init(&QSPI_InitStructure);

    /* 读取数据 */
    uint32_t addr = 0x000000;
    uint8_t buf[128];
    QSPI_Read(addr, buf, 128);

    /* 处理数据 */
    // TODO: 处理读取到的数据

    return 0;
}

4.实现应用功能:
最后,我可以实现具体的应用功能,例如存储和读取数据,更新固件等。
例如,可以使用QSPI接口从外部闪存器件中读取固件,并将固件加载到MCU中,实现固件更新的功能。

简单说就是可以首先需要初始化QSPI外设,并设置相关参数。、

然后使用QSPI_Read函数从外部闪存器件中读取数据。

利用灵动MM32 MCU芯片的QSPI接口可以实现各种应用功能。

只需要根据具体的需求和系统设计,选择合适的外部闪存器件和QSPI参数,来实现高速和可靠的数据传输和存储即可!~


感谢观看,写作不易,请勿盗转,如有文本问题欢迎指正,交流。




使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2023-08-25
理由:恭喜通过原创审核!期待您更多的原创作品~

沙发
chenqianqian| | 2023-4-20 19:48 | 只看该作者
QSPI速率很快啊

使用特权

评论回复
板凳
Bowclad| | 2023-6-8 22:21 | 只看该作者
QSPI和普通SPI有什么区别啊?

使用特权

评论回复
地板
LLGTR| | 2023-6-12 16:26 | 只看该作者
这里的QSPI有地址映射功能嘛?

使用特权

评论回复
5
朝生| | 2023-6-12 16:27 | 只看该作者
LLGTR 发表于 2023-6-12 16:26
这里的QSPI有地址映射功能嘛?

QSPI就是普通SPI的四倍通信速率~

使用特权

评论回复
6
软核硬核| | 2023-6-12 16:27 | 只看该作者
看来支持QSPI的也不少,就是不知道速度怎么样

使用特权

评论回复
7
guijial511| | 2023-6-12 19:20 | 只看该作者
QSPI接口用来控制串行nand flash或者nor flash。

使用特权

评论回复
发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

626

帖子

2

粉丝