呐咯密密 发表于 2024-2-26 10:11

AT32的SPIM和QSPI功能简介

雅特力的AT32,部分型号比如AT32F403/403A/413/407等,支持SPIM功能,最大支持16MB地址空间,起始地址0x08400000,占据bank3。它的作用就是把外部SPI FLASH映射到MCU的地址空间中,大大简化SPI FLASH的访问速度和便捷性。比较可惜的是SPIM接口只支持SPI FLASH,不支持PSRAM。SPIM接口使用的管脚如下,注意这些管脚并不是某个特定的SPI接口,是专有的。幸运的是这些管脚都在PA和PB端口,小到QFN-32的AT32F413都能用。
[*]NSS:PA8
[*]SCK:PB1
[*]IO0:PA11,可以映射到PB10
[*]IO1:PA12,可以映射到PB11
[*]IO2:PB7
[*]IO3:PB6
其它注意事项:
[*]只允许32位操作
[*]使能GPIOA和GPIOB的时钟
[*]AFIO_MAP2使能SPIM
[*]设置FLASH_SELECT选择FLASH类型
[*]使用KEY解锁SPIM,然后检查是否解锁成功
加密密钥地址0x1FFFF820-0x1FFFF82F,共16个字节,128位,全部为0xFF表示不加密。FLASH_DA为加密分界区,0x08400000到0x08400000+FLASH_DA为加密区,剩下的为明文区。SPIM运行频率为 AHB的一半,200M主频,SCLK就是100M了,配合4线SPI,理论速度有50MB/s,也非常快了。参考文档:AN0042_AT32_SPIM_Application_Note_ZH.pdfSPIM不支持PSRAM的遗憾在AT32F435得到了解决。AT32F435上升级到双QSPI,支持地址映射,可以连接SPI FLASH和PSRAM。QSPI1的管脚分配:
[*]QSPI1_IO3:PA1,PB3,PC5,PD13,PF6,PG14
[*]QSPI1_IO2:PA15,PE2,PC4,PC8,PF7,PG9
[*]QSPI1_IO1:PA7,PB10,PF9,PH3
[*]QSPI1_IO0:PA6,PB0,PB11,PC9,PF8,PH2
[*]QSPI1_SCK:PB1,PB2,PD3,PF10
[*]QSPI1_CS:PB6,PB9,PB10,PC11,PG6
QSPI2的管脚分配:
[*]QSPI2_IO3:PA3,PE10,PG11
[*]QSPI2_IO2:PA5,PE9,PG10
[*]QSPI2_IO1:PB7,PC3,PE8,PG12
[*]QSPI2_IO0:PB0,PE7
[*]QSPI2_SCK:PB1,PG13
[*]QSPI2_CS:PB8,PG8
从管脚分配来看,由于PA和PB都影射了两个QSPI的管脚,因此LQFP-48这样的小封装也能使用QSPI接口。两个QSPI接口,一个外扩SPI FLASH,一个外扩PSRAM,从此MCU上存储空间不再是事儿。

eefas 发表于 2024-3-1 20:52

SPI和QSPI都是用于高速数据通信的同步串行接口,但它们在数据传输速率和硬件支持方面有所不同。

hearstnorman323 发表于 2024-3-1 21:50

QSPI是一种四线式串行外设接口,它比传统的SPI接口更快,并且支持更大的存储容量。QSPI接口通常用于与高速、大容量存储器进行通信,如Flash存储器、SRAM等。基于雅特力提供的BSP(板级支持包),开发者可以利用QSPI接口进行命令端口的配置及操作,也可以进行XIP(eXecute In Place)端口的配置及操作。XIP端口允许微控制器直接从外部ROM或RAM执行代码,这在一些需要大量非易失性存储空间的应用中非常有用。

uytyu 发表于 2024-3-2 02:23

QSPI是Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛。在SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列串行外围接口协议(即QSPI协议)。QSPI是一种专用的通信接口,连接单、双或四(条数据线)SPI FLASH存储器。AT32也支持QSPI功能,可以实现与外部QSPI设备的高速通信。

phoenixwhite 发表于 2024-3-2 08:20

AT32F435系列支持双QSPI接口,进一步增强了对外部存储器的扩展能力。

qiufengsd 发表于 2024-3-2 17:29

能够将外部SPI Flash或PSRAM直接映射到MCU的地址空间中,实现如同内部RAM一样的访问速度。

robincotton 发表于 2024-3-2 19:26

SPIM是一种标准的SPI接口,而QSPI是一种高速、全双工的接口,适用于高速数据传输场景。

belindagraham 发表于 2024-3-2 22:48

QSPI接口通常用于高速数据传输,如闪存和RAM存储器。四线接口允许更高的数据传输速率和更高效的传输,尤其是在同时进行读写操作时。

uytyu 发表于 2024-3-3 09:05

在AT32 MCU中,SPIM接口是一种专门针对外部SPI Flash**体进行优化的接口。它允许MCU通过SPI协议访问外部SPI Flash存储器,以实现大容量数据存储或执行代码。AT32F435系列的SPIM功能得到增强,能够支持更灵活的地址映射,解决了之前不支持PSRAM的问题。

tifmill 发表于 2024-3-3 11:13

QSPI则是SPI接口的增强版本,除了传统的单线双向数据传输之外,还支持四线制的全双工通信,可以显著提高数据传输速率。AT32 MCU中的QSPI支持更高的吞吐量和更复杂的功能,如地址映射和高速访问外部SPI Flash和PSRAM。

hilahope 发表于 2024-3-3 13:06

AT32的SPIM功能特别适合需要通过SPI接口快速访问外部存储器的应用,而QSPI则提供了一种更高效的数据通信方式,适用于数据量较大的传输需求。

robincotton 发表于 2024-3-3 14:57

SPIM和QSPI都是AT32提供的串行外设接口,用于与外部设备进行通信。

kmzuaz 发表于 2024-3-3 16:58

SPI接口通常包括以下几个引脚:
SCLK(串行时钟):用于同步数据传输。
MOSI(主设备数据输出,从设备数据输入):用于发送和接收数据。
MISO(主设备数据输入,从设备数据输出):用于发送和接收数据。
SS(从设备选择):用于选择特定的从设备。

bestwell 发表于 2024-3-3 18:50

QSPI是SPI(Serial Peripheral Interface)的一种变体,它在标准的SPI基础上增加了两条数据线,使得总共有四条双向数据线。这种修改允许在一个时钟周期内传输更多的数据,从而提升了数据传输的速度。QSPI通常用于需要高速数据交换的场景,如内存扩展等应用。

hilahope 发表于 2024-3-3 22:44

SPIM是一种全双工、同步、串行通信接口,用于与外部SPI从设备进行通信。SPIM支持主模式(Master Mode)和从模式(Slave Mode)。在主模式下,AT32作为主设备,通过SCK(串行时钟)、MOSI(主输出从输入)和MISO(主输入从输出)引脚与从设备进行通信。SPIM还支持多种通信模式,如模式0(CPOL=0,CPHA=0)、模式1(CPOL=0,CPHA=1)、模式2(CPOL=1,CPHA=0)和模式3(CPOL=1,CPHA=1)。

bartonalfred 发表于 2024-3-4 11:11

具体到AT32系列的MCU,它们可能具有SPI和QSPI接口,但具体的功能和特性可能因型号而异。在选择和使用AT32系列的MCU时,你应该参考特定型号的数据手册,以了解其SPI和QSPI接口的详细信息,包括支持的特性(如支持的数据位宽、时钟速率、模式选择等),以及如何配置和使用这些接口。

fengm 发表于 2024-3-4 15:42

根据实际应用需求选择合适的SPIM或QSPI设备,并确保其与AT32的兼容性。

mmbs 发表于 2024-3-5 09:34

AT32的BSP中,有两个例程operate_spim和run_in_spim演示了如何使用SPIM。用户程序可以通过简单的初始化和解锁步骤来访问SPIM存储区,并执行读、编程及擦除操作。

uytyu 发表于 2024-3-5 11:34

支持将外部SPI FLASH直接映射到AT32的地址空间。这意味着对SPIM映射的地址进行操作就如同访问内部存储器一样快速便捷。部分型号如AT32F403/403A/413/407等提供此功能,支持最大16MB的地址空间,起始地址为0x08400000,并且占据bank3。该接口专用于SPI FLASH,不支持PSRAM。使用的管脚不是特定的SPI接口,而是专有的管脚,包括NSS、SCK以及IO0至IO3等。值得注意的是,SPIM接口只支持32位操作。

loutin 发表于 2024-3-5 13:37

QSPI(Quad SPI)是一种高速的SPI接口,相比于传统的4线制SPI(2根单向数据线),QSPI有6根线,其中4根为数据线。理论上,QSPI的传输速度是传统4线制SPI的4倍,但实际上可能达不到这个速度,因为需要去除命令字节。QSPI不仅可以用于高速数据传输,还可以扩展MCU的FLASH用于运行程序。
页: [1] 2
查看完整版本: AT32的SPIM和QSPI功能简介