Bootstrap

SPI

1. SPI介绍

1) 串行外围设备接口Serial Peripheral Interface),是Motorola公司推出的三线同步通信接口。

2) 特点:高速、全双工、同步通信     四根管脚利于PCB布局节省空间

① 同步:有同步时钟

② 异步:无同步时钟,同行有起始位和终止位来同步传输数据(字符与字         符之间之间的时间间隔可变,不需严格限制时间关系)

③ 主从通讯:采用主从模式(Master Slave)架构;支持多slave模式应        用,一般仅支持单Master。

 

3) 组成(4根线):CS(片选)、SCLK(时钟)、MOSI(主机发送/从机接收)、MISO(主机接收/从机发送)构成。

4) 工作模式:4种,时钟信号的相位与极性,使用广泛的是SPI0,SPI3

如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。 

5) 用途:EEPROM、FLASH、实时时钟、AD转换等

2. STM32_103-SPI

1) 特点:可以当主机或从机工作,可以同时发送或接收串行数据;提供频率可编程时钟;冲突保护-写冲突保护、总线竞争保护。

2) STM32板上的SPI控制器---作为主机---控制---外扩FALSH-W25Q6。

3) 结构图:

 

原理:两个移位寄存器在同步时钟信号下进行移位,互换数据(先发高位)

内部环形结构

 

4) 物理层连接

PA5  :   SCK       -- 输出    : 复用推挽

PA6  :   MISO    ---输入    : 浮空输入

PA7  :   MOSI    ---输出    : 复用推挽

PB0 :   CS         --输出    : 推挽输出 --I/O引脚直接驱动

原理图:

 

5) SPI主模式配置步骤

① 设置 BR[2:0] 位以定义串行时钟波特率(参见 SPI_CR1 寄存器)。

② 选择 CPOL 和 CPHA 位,以定义数据传输和串行时钟之间的关系

③ 设置 DFF 位,以定义 8 或 16 位数据帧格式

④ 配置 SPI_CR1 寄存器中的 LSBFIRST 位以定义帧格式

⑤ 如果 NSS 引脚配置成输入,在 NSS 硬件模式下, NSS 引脚在整个  字节发送序列期间都连接到高电平信号;在 NSS 软件模式下,将   SPI_CR1 寄存器中的 SSM 和 SSI 位置1。如果 NSS 引脚配置成输 出,只应将 SSOE 位置 1。

⑥   SPI_CR2 中的 FRF 位置 1,以选择 TI 协议进行串行通信。

⑦  MSTR 和 SPE 位必须置 1

;