这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【STCAi8051U】QSPI的用法

共1条 1/1 1 跳转至

【STCAi8051U】QSPI的用法

专家
2025-09-19 14:07:25     打赏

使用 FMODE[1:0](QSPI_CCR4)选择操作模式。

一、间接模式的操作步骤

FMODE 编程为 00 可选择间接写入模式,将数据发送到 Flash。

FMODE 编程为 01 可选择间接读取模式,读取 Flash 中的数据。

QSPI 用于间接模式时,采用以下方式构建帧:

    · 在 QSPI_DLR 中指定待读取或写入的字节数

    · 在 QSPI_CCR 中指定帧格式、模式和指令代码

    · 在 QSPI_ABR 中指定要在地址阶段后立即发送的可选交替字节

    · 在 QSPI_AR 中指定目标地址

    · 通过 QSPI_DR 从 FIFO 读取数据/向 FIFO 写入数据

在写入控制寄存器(QSPI_CR)时,用户可指定以下设置:

    · 使能位(EN)设置为“1”

    · 超时计数器使能位(TCEN)

    · FIFO 阈值(FTRHES),以指示 FTF 标志在何时置 1

    · 中断使能

    · 自动轮询模式参数:匹配模式和停止模式(在 FMODE = 11 时有效)

    · 时钟预分频器

在写入通信配置寄存器(QSPI_CCRn)时,用户指定以下参数:

    · 通过 INSTRUCTION 位指定指令字节

    · 通过 IMODE 位指定指令发送方式(1/2/4 线)

    · 通过 ADMODE 位指定地址发送方式(无/1/2/4 线)

    · 通过 ADSIZE 位指定地址长度(8/16/24/32 位)

    · 通过 ABMODE 位指定交替字节发送方式(无/1/2/4 线)

    · 通过 ABSIZE 位指定交替字节数(1/2/3/4)

    · 通过 DCYC 位指定空指令的周期数

    · 通过 DMODE 位指定数据发送/接收方式(无/1/2/4 线)

如果无需为某个命令更新地址寄存器(QSPI_ARn)与数据寄存器(QSPI_DR),则在写入QSPI_CCR1 时,该命令序列便立即启动。在 ADMODE 和 DMODE 应为 00 时,或在间接读取模式(FMODE = 01)下仅 ADMODE = 00 时,便属于此情况。在需要地址(ADMODE 不为 00),但无需写入数据寄存器(FMODE = 01 或 DMODE = 00)时,通过写入 QSPI_AR 更新地址后,

命令序列便立即启动。在数据传输(FMODE = 00 并且 DMODE ! = 00)中,通过 QSPI_DR 写入 FIFO 触发通道启动。

二、状态标志轮询模式

将 FMODE 字段(QSPI_CCR4)设置为 10,使能状态标志轮询模式在此模式下,将发送编程的帧并周期性检素数据。

每帧中读取的最大数据量为 4 字节。如果 QSPI_DLR 请求更多的数据,则忽略多余的部分并仅读取 4 个字节。

在 QSPI_PISR 寄存器中指定周期性。

在检索到状态数据后,可在内部进行处理,以达到以下目的:

    · 将状态匹配标志位置 1,如果使能,还将产生中断

    · 自动停止周期性检索状态字节

接收到的值可通过存储于 QSPI_PSMKR 中的值进行屏蔽,并与存储在 QSPI_PSMAR 中的值进行或运算或与运算。

若是存在匹配,则状态匹配标志置 1,并且在使能了中断的情况下还将产生中断;如果 AMPS位置 1,则 QSPI 自动停止。

在任何情况下,最新的检索值都在 QSPI_DR 中可用。





关键词: 菜鸟学单片机     STCAi8051U     QSPI用法    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]