1.概述
Apollo4BlueLite芯片的MSPI(Multi-Serial Peripheral Interface)总线是一种高性能的串行通信接口,用于在芯片内部连接各种外设设备,例如存储器、传感器和其他外部模块。
与常规SPI(Serial Peripheral Interface)总线相比,MSPI总线具有以下几个异同点:
(1)数据传输速度:MSPI总线支持更高的数据传输速率,因为它使用了高速时钟和多通道传输机制。相比之下,常规SPI总线的数据传输速度较低。
(2)灵活性:MSPI总线采用了灵活的多通道传输机制,可以同时传输多个数据通道。这意味着可以在同一时钟周期内进行多个设备的读写操作,从而提高了总线的效率和响应速度。而常规SPI总线只能在一个时钟周期内传输一个数据通道。
(3)电源效率:由于MSPI总线支持更高的数据传输速率,它可以在更短的时间内完成数据传输,从而减少了总线的工作时间,降低了功耗和能耗。常规SPI总线的传输速率较低,需要更多的时间完成数据传输。
在使用场景方面,MSPI总线适用于需要高速数据传输和低功耗要求的应用。例如,它可以用于高性能存储器读写操作、数据采集和传感器控制等领域。相比之下,常规SPI总线更适用于传输速率要求不高、设备数量较少的应用,例如显示屏控制、简单外设控制等。
总之,Apollo4BlueLite芯片的MSPI总线相比常规SPI总线具有更高的传输速率、更高的灵活性和更低的功耗,适用于高性能和低功耗要求的应用场景。
2. MSPI框图
3.MSPI特性
(1)该接口支持1/2/4/8/16位传输
(2)支持用于显示的DCX信号
(3)支持XiP
(4)支持DMA传输
(5)支持命令队列
(6)接口时钟频率最高可达96 MHz(SDR模式)或48 MHz(DDR模式)
(7)支持全部四种SPI CPOL/CPHA模式
4.功能概览
Apollo4BlueLite有3组MSPI,其中MSPI0和MSPI1的最大时钟速率为96 MHz,而MSPI2的最大时钟速率为48 MHz,因此SDR模式限于48 MHz或更低,DDR模式限于24 MHz或更低。可以以串行、双路、四路和八路模式进行传输。MSPI0还支持用于更高吞吐量的十六进制(16位)模式。
MSPI模块具有统一的16个条目FIFO(32位宽),用于传输和接收数据。为了确保事务不会因系统或软件延迟而丢失,MSPI控制器在操作期间如果TX FIFO为空或RX FIFO已满,将暂停时钟(从而暂停总线上的传输)。一旦FIFO条件被清除,它将自动恢复。
(1)传输格式
MSPI传输通常由传输1字节的指令、1-4字节的地址(可选)和1字节到64KB的写入或读取数据组成。
(2)传输模式和引脚配置
串行模式:
-
- MOSI(Master Out Slave In):用于主设备发送数据。
- MISO(Master In Slave Out):用于主设备接收数据。
- SCLK(Serial Clock):用于同步数据传输的时钟信号。
- CS(Chip Select):用于选择从设备的引脚。在串行模式下,CS通常由主设备控制。
双线模式:
-
- IO0(Data 0):用于数据传输。
- IO1(Data 1):用于数据传输。
- SCLK(Serial Clock):用于同步数据传输的时钟信号。
- CS(Chip Select):用于选择从设备的引脚。
四线模式:
-
- IO0(Data 0):用于数据传输。
- IO1(Data 1):用于数据传输。
- IO2(Data 2):用于数据传输。
- IO3(Data 3):用于数据传输。
- SCLK(Serial Clock):用于同步数据传输的时钟信号。
- CS(Chip Select):用于选择从设备的引脚。
(3)寄存器配置
Apollo4BlueLite有3组独立的MSPI配置寄存器,寄存器详细信息可以查看Apollo4BlueLite官方文档。
Instance 0 Address: | 0x40060000 |
Instance 1 Address: | 0x40061000 |
Instance 2 Address: | 0x40062000 |
(4)访问方式
MSPI接口可以通过CPU直接访问,也可以使用DMA进行数据传输。