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

共1条 1/1 1 跳转至

【STCAi8051U】QSPI命令格式

专家
2025-09-17 18:22:38     打赏

QSPI 通过命令与 Flash 通信每条命令包括指令、地址、交替字节、空指令和数据这五个阶段。任一阶段均可跳过,但至少要包含指令、地址、交替字节或数据阶段之一。

nCS 在每条指令开始前下降到低电平,在每条指令完成后再次上升为高电平。

图片1.png

一、指令段

这一阶段,将在 QSPI_CCR1 寄存器的 INSTRUCTION 字段中配置的一条 8 位指令发送到 Flash,指定待执行操作的类型。

尽管大多数 Flash 从 IO0/SO 信号(单线 SPI 模式)只能以一次 1 位的方式接收指令,但指令阶段可选择一次发送 2 位(在双线 SPI 模式中通过 IO0 / IO1)或一次发送 4 位(在四线 SPI 模式中通过 IO0 / IO1 / IO2 / IO3)。这可通过 QSPI_CCR2 寄存器中的 IMODE[1:0]字段进行配置。

若 IMODE = 00,则跳过指令阶段,命令序列从地址阶段(如果存在)开始。


二、地址段

在地址阶段,将 1~4 字节地址发送到 Flash,指示操作地址。待发送的地址字节数在 QSPI_CCR2寄存器的 ADSIZE[1:0]字段中进行配置。在间接模式和自动轮询模式下,待发送的地址字节在QSPI_AR1~QSPI_AR4 寄存器的 ADDRESS[31:0]中指定。

地址阶段可一次发送 1 位(在单线 SPI 模式中通过 SO)、2 位(在双线 SPI 模式中通过 IO0 / IO1)或 4 位(在四线 SPI 模式中通过 IO0 / IO1 / IO2 / IO3)。这可通过 QSPI_CCR2 寄存器中的ADMODE[1:0]字段进行配置。若 ADMODE = 00,则跳过地址阶段,命令序列直接进入下一阶段(如果存在)。



三、交替字节段(复用字节段)

在交替字节阶段,将 1 字节发送到 Flash,一般用于控制操作模式。待发送的交替字节数在QSPI_CCR3寄存器的ABSIZE[1:0]字段中进行配置。待发送的字节在QSPI_ABR寄存器中指定。

交替字节阶段可一次发送 1 位(在单线 SPI 模式中通过 S0)、2 位(在双线 SPI 模式中通过 IO0/ IO1)或 4 位(在四线 SPI 模式中通过 IO0 / IO1 / IO2 / IO3)。这可通过 QSPI_CCR2 寄存器中的 ABMODE[1:0]字段进行配置。若 ABMODE = 00,则跳过交替字节阶段,命令序列直接进入下一阶段(如果存在)。

交替字节阶段存在仅需发送单个半字节而不是一个全字节的情况,比如采用双线模式并且仅使用两个周期发送交替字节时。在这种情况下,固件可采用四线模式(ABMODE = 11)并发送一个字节,方法是 ALTERNATE 的 Bit7 和 Bit3 置“1”(I03 保持高电平)且 Bit6 和 Bit2 置“0”(I02 线保持低电平)。此时,半字节的高 2 位存放在 ALTERNATE 的 Bit4 和 Bit3,低 2 位存放在位 1 和 0 中。例如,如果半字节 2(0010)通过 IO0/IO1 发送,则 ALTERNATE 应设置为 0x8A(1000_1010)。


四、空周期段

在空周期阶段,给定的 1-31 个周期内不发送或不接收任何数据,目的是当采用更高的时钟频率时,给 Flash 留出准备数据阶段的时间。这一阶段中给定的周期数在 QSPI_CCR3 寄存器的DCYC[4:0]字段中指定。在 SDR 模式下,持续时间被指定为一定个数的全时钟周期。

若 DCYC 为零,则跳过空指令周期阶段,命令序列直接进入数据阶段(如果存在)。

空指令周期阶段的操作模式由 DMODE 确定。

为确保数据信号从输出模式转变为输入模式有足够的“周转”时间,使用双线和四线模式从Flash 接收数据时,至少需要指定一个空指令周期。


五、数据段

在数据阶段,可从 Flash 接收或向其发送任意数量的字节。

在间接模式和自动轮询模式下,待发送/接收的字节数在 QSPI_DLR 寄存器中指定。

在间接写入模式下,发送到 Flash 的数据必须写入 QSPI_DR 寄存器。在间接读取模式下,通过读取 QSPI_DR 寄存器获得从 Flash 接收的数据。

数据阶段可一次发送/接收 1 位(在单线 SPI 模式中通过 SO)、2 位(在双线 SPI 模式中通过IO0 / IO1)或 4 位(在四线 SPI 模式中通过 IO0 / IO1 / IO2 / IO3)。这可通过 QSPI_CCR2 寄存器中的 ABMODE[1:0]字段进行配置。

若 DMODE = 00,则跳过数据阶段,命令序列在拉高 nCS 时立即完成。这一配置仅可用于仅间接写入模式。





关键词: 菜鸟学单片机     QSPI命令格式     STCAi8051    

共1条 1/1 1 跳转至

回复

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