在AT32微控制器(由雅特力科技推出)中,SPIM(Serial Peripheral Interface Master)和QSPI(Quad-SPI)是两种常用的串行外设接口,用于高速数据传输和外部存储器扩展。以下是它们的功能简介和对比:
全称:Serial Peripheral Interface Master(SPI主机模式)
工作模式:
支持标准4线SPI(SCK、MOSI、MISO、CS)。
可配置为主机(Master)或从机(Slave),但SPIM通常指主机模式。
特点:
支持多主从架构(需硬件CS片选)。
时钟频率可编程(通常高达几十MHz)。
支持全双工或半双工通信。
数据位宽可调(通常8位或16位)。
连接SPI Flash、EEPROM(如W25Q系列)。
驱动SPI接口的显示屏(如OLED、TFT)。
与传感器通信(如加速度计、陀螺仪)。
全称:Quad Serial Peripheral Interface
用途:专为高速访问外部串行存储器(如Flash)设计,支持4线并行传输。
工作模式:
标准SPI模式(1线数据)。
双线(Dual-SPI)和四线(Quad-SPI)模式(2/4线数据并行传输)。
支持XIP(Execute-In-Place)模式(直接从外部Flash运行代码)。
特点:
更高的带宽:4线模式下数据传输速率是标准SPI的4倍。
专用的存储器映射模式(通过AHB总线直接访问外部Flash)。
支持多种指令格式(如地址位宽可调)。
外接QSPI Flash(如W25Q、MX25L等)扩展存储空间。
实现XIP功能(无需将代码加载到内部RAM即可执行)。
高速数据缓存(如图形、固件存储)。
特性 | SPIM(标准SPI) | QSPI |
---|---|---|
数据线数量 | 1线(MOSI/MISO) | 1/2/4线(可配置) |
速率 | 通常≤50MHz | 可达100MHz+(4线模式) |
主要用途 | 通用外设通信 | 专用外部存储器接口 |
XIP支持 | 不支持 | 支持(直接执行外部代码) |
硬件复杂度 | 简单 | 较高(需专用控制器) |
时钟配置:需根据外设要求设置SPIM/QSPI时钟分频。
引脚复用:注意QSPI的IO可能与其他功能复用,需正确映射。
DMA支持:两者通常支持DMA传输以减少CPU开销。
库函数:雅特力提供HAL库或LL库简化初始化流程(如at32_spim_init()
、at32_qspi_memory_mapped_mode()
)。
// 初始化QSPI为存储器映射模式 QSPI_InitTypeDef qspi_init; qspi_init.ClockPrescaler = 2; // 分频系数 qspi_init.FlashSize = 24; // Flash地址位宽(24位) HAL_QSPI_Init(&qspi_init); // 启用XIP后,可直接读取外部Flash地址(如0x90000000)
c
// 配置SPIM为主机 SPI_InitTypeDef spi_init; spi_init.Mode = SPI_MODE_MASTER; spi_init.DataSize = SPI_DATASIZE_8BIT; HAL_SPI_Init(&spi_init); // 发送读取命令 HAL_SPI_TransmitReceive(&hspi, tx_data, rx_data, length, timeout);
SPIM:适合通用外设通信,灵活性高。
QSPI:专为高速存储器设计,支持XIP,适合大容量数据存储或代码执行。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。