大家好,这里是大话硬件。
在参考手册里面出现了LPSPI和FlexSPI这两个词。
之前学习的STM32或者SPI协议上都是SPI,在一些芯片厂家的规格书里面倒是见到过Dual SPI还有Quad SPI,怎么这里冒出来一个FlexSPI,到底是什么意思?
经典SPI协议也被称为标准SPI协议(Standard SPI)或单线SPI协议(Single SPI),单线是指该SPI协议中使用单根数据线MOSI进行发送数据,单根数据线MISO进行接收数据。
拓扑图有下面三种:(1)单连接法
(2)并联接法
(3)菊花链接法
很显然上面的接法在速率上有较大的限制,为了为了适应更高速率的通讯需求,发展出来了其他名称的SPI协议——Dual/Quad/Octal SPI协议。
Single&Dual SPI
Quad SPI
Octal SPI
LPSPI是一种低功耗串行外围设备接口(SPI)模块,它支持作为主设备和/或从设备的SPI总线的有效接口。 LPSPI可以在停止模式下继续运行,只要有适当时钟,并且可以通过FIFO寄存器访问的DMA来降低CPU开销。
LPSPI因为具备低功耗的功能,架构上明显要比传统的SPI复杂,下面是STM32的SPI框图。
FlexSPI的内部框图
这里的Flex是灵活的意思,就是NXP的跨界MCU的SPI接口支持多种功能,有2个SPI控制器通道,最多接入4个外设,每个通道支持单/双/四/八模式数据传输(1/2/4/8双向数据线)。
下面是对这些特性的描述
Single/Dual/Quad/Octal模式的传输(即1/2/4/8根数据线的传输)。
支持SDR/DDR通讯模式,即单倍速率传输(Single Data Rate)和双倍速率传输(Dual Data Rate)都支持;
支持控制SPI接口的串行NOR/NAND Flash设备、HyperBus协议设备以及FPGA设备。
支持把存储器地址映射至通过AHB总线读写;
支持使用DMA进行访问,从而减少CPU的介入;
支持以下多种模式以适配不同的功耗状态:模块关闭模式(Module Disable mode)、打盹儿模式(Doze mode)、停止模式(Stop mode)以及正常模式(Normal mode);
只能说这个FlexSPI控制器的确比较厉害,扩展功能非常多!
说明一下.SPI协议中数据传输模式,SDR模式是单倍速率SignalData Rate,只能在时钟的单边沿进行数据传输,DDR模式是双倍速率Dual Data Rate,能在时钟的上升沿和下降沿都进行数据传输。这些功能都是标准SPI扩展出来的功能。
关注我,让我成为你的专属小太阳吧
224
