SPI接 口 STM32F10xxx参考手册
23 串行外设接口(SPI)
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和
STM32F103xx微控制器。
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。
互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列。
23.1 SPI简介
在大容量产品和互联型产品上,SPI接口可以配置为支持SPI协议或者支持I2S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式。 在小容量和中容量产品上,不支持I2S音频协议。
串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。
它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。
I2S也是一种3引脚的同步串行接口通讯协议。它支持四种音频标准,包括飞利浦I2S标准,MSB和LSB对齐标准,以及PCM标准。它在半双工通讯中,可以工作在主和从2种模式下。当它作为主设备时,通过接口向外部的从设备提供时钟信号。
警告:由于SPI3/I2S3的部分引脚与JTAG引脚共享(SPI3_NSS/I2S3_WS与JTDI,
SPI3_SCK/I2S3_CK与JTDO),因此这些引脚不受IO控制器控制,他们(在每次复位后) 被默认保留为JTAG用途。如果用户想把引脚配置给SPI3/I2S3,必须(在调试时)关闭JTAG并切换至SWD接口,或者(在标准应用时)同时关闭JTAG和SWD接口。详见第8.3.5节:JTAG/SWD复用功能重映射。
23.2
SPI和I2S主要特征
●3线全双工同步传输
●带或不带第三根双向数据线的双线单工同步传输 ●8或16位传输帧格式选择 ●主或从操作 ●支持多主模式
●8个主模式波特率预分频系数(最大为fPCLK/2) ● 从模式频率(最大为fPCLK/2) ●主模式和从模式的快速通信
●主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变 ●可编程的时钟极性和相位
●可编程的数据顺序,MSB在前或LSB在前 ●可触发中断的专用发送和接收标志
●SPI总线忙状态标志
●支持可靠通信的硬件CRC
─ 在发送模式下,CRC值可以被作为最后一个字节发送
23.2.1 SPI特征
457/754
SPI接口
─ 在全双工模式中对接收到的最后一个字节自动进行CRC校验 ●可触发中断的主模式故障、过载以及CRC错误标志
●支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求
STM32F10xxx参考手册
23.2.2 I2S功能
●单工通信(仅发送或接收) ●主或者从操作
●8位线性可编程预分频器,获得精确的音频采样频率(8KHz到96kHz) ●数据格式可以是16位,24位或者32位
●音频信道固定数据包帧为16位(16位数据帧)或32位(16、24或32位数据帧) ●可编程的时钟极性(稳定态)
●从发送模式下的下溢标志位和主/从接收模式下的溢出标志位 ●16位数据寄存器用来发送和接收,在通道两端各有一个寄存器 ●支持的I2S协议:
─ I2S飞利浦标准
─ MSB对齐标准(左对齐) ─ LSB对齐标准(右对齐)
─ PCM标准(16位通道帧上带长或短帧同步或者16位数据帧扩展为32位通道帧) ●数据方向总是MSB在先
●发送和接收都具有DMA能力
●主时钟可以输出到外部音频设备,比率固定为256xFs(Fs为音频采样频率)
●在互联型产品中,两个I2S模块(I2S2和I2S3)有一个专用的PLL(PLL3),产生更加精准得时钟
458/754
SPI接 口
STM32F10xxx参考手册
23.3 SPI功能描述
SPI的方框图见下图。 图209 SPI框图
23.3.1 概述
通常SPI通过4个引脚与外部器件相连:
●MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。 ●MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。 ●SCK:串口时钟,作为主设备的输出,从设备的输入
●NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片 选
引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS引脚可以由主设备的一个标准I/O引脚来驱动。一旦被使能(SSOE位),NSS引脚也可以作为 输出引脚,并在SPI处于主模式时拉低;此时,所有的SPI设备,如果它们的NSS引脚连接 到主设备的NSS引脚,则会检测到低电平,如果它们被设置为NSS硬件模式,就会自动进 入从设备状态。当配置为主设备、NSS配置为输入引脚(MSTR=1,SSOE=0)时,如果NSS被拉低,则这个SPI设备进入主模式失败状态:即MSTR位被自动清除,此设备进入从模式 (参见)
下图是一个单主和单从设备互连的例子。
459/754
SPI接口
图210 单主和单从应用
STM32F10xxx参考手册
1.这里NSS引脚设置为输入
MOSI脚相互连接,MISO脚相互连接。这样,数据在主和从之间串行地传输(MSB位在前)。 通信总是由主设备发起。主设备通过MOSI脚把数据发送给从设备,从设备通过MISO引脚回传数据。这意味全双工通信的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设备通过SCK脚提供。
从选择(NSS)脚管理
有2种NSS模式:
● 软件NSS模式:可以通过设置SPI_CR1寄存器的SSM位来使能这种模式(见图211)。在
这种 模式下NSS引脚可以用作它用,而内部NSS信号电平可以通过写SPI_CR1的SSI位来驱动
● 硬件NSS模式,分两种情况:
─ NSS输出被使能:当STM32F10xxx工作为主SPI,并且NSS输出已经通过SPI_CR2
寄存 器的SSOE位使能,这时NSS引脚被拉低,所有NSS引脚与这个主SPI的NSS引脚相连并 配置为硬件NSS的SPI设备,将自动变成从SPI设备。 当一个SPI设备需 要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主 设备;如果它不能拉低NSS,这意味着总线上有另外一个主设备在通信,这时将产生一个 硬件失败错误
t)。 ─ (HardFaulNSS输出被关闭:允许操作于多主环境。
图211 硬件/软件的从选择管理
111
2016-08-09 09:13:27
-------------------------------------------- 在理解下啊
时钟信号的相位和极性
SPI_CR寄存器的CPOL和CPHA位,能够组合成四种可能的时序关系。CPOL(时钟极性)位控制在没有数据传输时时钟的空闲状态电平,此位对主模式和从模式下的设备都有效。如果CPOL被清’0’,SCK引脚在空闲状态保持低电平;如果CPOL被置’1’,SCK引脚在空闲状态保持高电平。
如果CPHA(时钟相位)位被置’1’,SCK时钟的第二个边沿(CPOL位为0时就是下降沿,CPOL位为’1’时就是上升沿)进行数据位的采样,数据在第二个时钟边沿被锁存。如果CPHA位被清’0’,SCK时钟的第一边沿(CPOL位为’0’时就是下降沿,CPOL位为’1’时就是上升沿)进行
460/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本
SPI接口
数据位采样,数据在第一个时钟边沿被锁存。
STM32F10xxx参考手册
461/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本