YTM32的同步串行通信外设SPI外设详解(Master Part)
文章目录
Introduction
Features
- 支持配置SCLK的极性和相位
- 动态可配置的通信帧尺寸。SPI定义片选信号硬件保持生效期间的数据位流被称为SPI的通信帧。
- 使用FIFO管理发送和接收的数据,分别对应发送FIFO和接收FIFO。
- 支持单线模式,即仅发送和仅接收。实际上,SPI的发送数据信号线和接收数据信号线是相互独立的,对软件使用来说这个功能同正常使用交换数据模式(同步数据模式)没啥区别。
- 支持主机模式和从机模式。
- 可以产生触发信号送至DMA控制器,以支持DMA传输。
- 支持多路片选。这个SPI模块引出了四根片选线,
PCS[3..0],但在一个时刻做多仅能选中一路片选信号。但实际应用场景非常受限。
SPI外设的电路系统有框图,如图x所示。

引脚信号
SPI通信外设同外界交互的信号线包括:
- 时钟线
SCK - 输出串行数据线
SOUT - 输入串行数据线
SIN - 每个SPI外设实例都有自己的四根片选信号线
PCS[3..0]
这四根片选信号线将由软件配置SPI外设模块的寄存器SPI_TXCFG[PCS],选择其中一个作为本数据帧的片选信号。
片选信号线PCS在Master和Slave模式下的数据数据方向是不同的:
- 若为Master模式,
PCS为输出信号。可配置使用SPI外设自动控制。 - 若为Slave模式,
PCS为输入信号,仅当被选中后才能从接收来自总线上的数据。
时钟源
以YTM32B1LE05微控制器芯片为例,SPI外设的时钟源来来自于IPC,访问SPI外设寄存器的时钟信号来自于SLOW_BUS_CLK,如图x所示。

图中说明,SPI模块的外设功能时钟是可选的。如图x所示。SPI模块的外设功能时钟,将用于驱动SPI外设工作,产生通信波特率等。

其它不常用功能
- 支持SOUT和SIN引脚信号交换,为电路设计提供更宽的容错性,
SPI_CTRL[PINCFG] - SPI在正常情况下使用SCLK信号对串行数据流进行采样(获得数字信息),也可以使用SCLK再延后一点的时间点进行采样,
SPI_CTRL[SPDEN]
Pricinple & Mechinism
在SPI传输的过程中,Master模式是提供通信时钟的一方,先发数据再收数据;Slave使用SPI总线上的时钟信号同步数据,先收数据再发数据。SPI的Master模式和Slave模式,相当于是SPI模块的两个影子分身,使用同一个SPI外设时,二者只能选其一。虽然大部分的电路功能都是复用的,但在具体的使用场景中,针对不同的工作模式,表现出来的行为模式也各自不同。
基于FIFO的命令和数据管理机制
YTM的SPI外设的设计中,将SPI通信属性分类为收发器外设相关和通信帧相关两类:
- 收发器外设相关的属性,例如波特率、中断模式等等,配置好之后,在整个通信过程中基本就不再改动了。这类配置大多被安置在
SPI_CTRL以及专门的配置时钟波形参数的SPI_CLK寄存器中。 - 通信帧相关的属性,例如帧数据长度,本帧结束后是否放开片选线等,是可能随着每一帧发生发生变化的。这类配置大多被安置在
SPI_TXCFG寄存器中。SPI_TXCFG寄存器可以以常规访问寄存器的方式读写(必须是32位写操作),但实际上,SPI外设会自动将用户写入SPI_TXCFG寄存器的命令字送入发送FIFO中,或者更确切地说,向SPI_TXCFG寄存器写数,将会立即作用于发送FIFO的工作方式。
YTM的SPI外设将SPI的通信过程看做是通信帧的过程:
- 每次要发送数据流时,首先需要先向发送FIFO写入命令字(写
SPI_TXCFG寄存器),SPI外设会识别本次写入的命令字,自动配置好发送FIFO的工作模式。然后用户需要向发送FIFO写即将要发送的数据字(写SPI_DATA

本文详细介绍了YTM32的同步串行通信外设SPI外设(Master Part)。先阐述其特性、引脚信号、时钟源等,接着说明基于FIFO的命令和数据管理机制、接收数据匹配功能,还给出应用信息,最后对移位器、从机使用及多PCS引脚打开方式进行思考。
最低0.47元/天 解锁文章
658

被折叠的 条评论
为什么被折叠?



