stm32(十六)SPI总结

SPI(Serial Peripheral interface):是由 Motorola 公司开发的串行外围设备接口,是一种高速的,全双工,同步
的通信总线。主要应用在 EEPROM, FLASH,实时时钟, AD 转换器,还有数字信号处理器和数字信号解码器
等器件。

数据传输通过 MOSI 线,在时钟的上升沿或者下降沿时改变数据,在紧接着的下降沿或上升沿时被读取,
SPI 通讯协议规定传输的数据位为 8 位,传输顺序是高位在前,低位在后


SPI 通讯和 IIC 总线对比
1. 通讯速度: IIC 总线最快速度为 3.4M; SPI 总线最大速度为 25M。
2. 通讯方式: IIC 总线是半双工通讯; SPI 是全双工通讯
3. 硬件接口: IIC 总线是两线接口; SPIO 是 4 线接口(不含地线)
4. 主从通讯: IIC 总线是通过地址寻址方式进行主从通讯, SPI 总线是通过片选信号进行主从通讯。
5. 通讯方式: IIC 每发送一个字节数据之后会存在一个应答位; SPI 每发送一个字节数据之后,就会收到一个数据的回复。

SPI 有四种传输方式:上升沿、下降沿、前沿、后沿。根据外设工作要求,其输出串行同步时钟极性(CPOL)
和相位可以进行配置。 SPI 主模块和与之通信的外设备时钟相位和极性应该一致,具体选择哪一种时序由我
们要驱动的器件来决定的。 SPI 只有主模式和从模式之分,没有读和写的说法。
1. 时钟极性(CPOL)
SPI 总线的时钟极性(CPOL) 决定了总线空闲状态时, 时钟线的电平状态。
1) CPOL = 0:串行同步时钟线的空闲状态为低电平,下降沿数据改变。
2) CPOL = 1:串行同步时钟线的空闲状态位高电平,上升沿数据改变。
2. 时钟相位(CPHA)
SPI 总线的时钟相位(CPHA) 决定数据线上第 1 个数据位的改变时刻。
1) CPHA = 0:在串行同步时钟的第一个跳变边沿数据改变
2) CPHA = 1:在串行同步时钟的第二个跳变边沿数据改变

 STM32F40x SPI 模块特性
1. 由 SPI 模块中 SCLK、 MOSI 和 MISO 三线组成全双工同步传输。
2. 支持 SPI 四线制同步半双工传输模式。
3. 支持传输数据帧格式为 8 位数据或 16 位数据。
4. 可以通过软件设置 SPI 模块为主机模式或从机模式。
5. 支持多主机工作模式,但是在同一时间内只能有 1 个主机在工作。
6. 可以对 SPI 的时钟源进行分频,并做为作为主机时的通讯速度(最大值为 fPCLK/2)。
7. 作为从机时,接收数据的最大速率为 fPCLK/2。
8. 在主模式和从模式都可实现快速通信。
9. 在主模式和从模式都可通过硬件或软件对片选管脚(NSS) 进行管理。
10. 可以使用软件对 SPI 的通讯时序(时钟极性和时钟相位)进行选择。
11. 可以对 SPI 数据传输顺序进行选择为最先移位 MSB 或 LSB。
12. SPI 模块的中断源为: 发送和接收标志、主模式故障、数据上溢以及 CRC 错误标志。
13. SPI 模块可以利用总线忙状态标志来判断 SPI 是否在空闲状态。
14. SPI 模块支持 Motorola 模式和 TI 模式,默认为 Motorola 模式
15. SPI 具有硬件 CRC 校验功能,可以在发送数据的最后一个字节发送 CRC 校验值和根据收到的最后一个字
节自动进行 CRC 错误校验。
16. SPI 可以利用 DMA 功能对数据进行每次 1 字节发送和接收。

SPI从器件管理
    STM32的SPI通信既可以作为主机也可以作为从机,对于主模式和从模式都可通过硬件或软件来进行管理;实现动态切换主/从操作
    硬件管理:通过NSS管脚的电平来决定主机还是从机
    软件管理:通过寄存器的SSI位的值来决定是主机还是从机
硬件从器件管理
    通过管脚的电平来决定SPI控制器是作为主机还是作为从机
    SSM清0,禁止软件从管理,NSS引脚的电平用于决定是主机模式还是从机模式;NSS接高电平则是主机模式,NSS接低电平则是从机模式
软件从器件管理
    SSM置1,使能软件从器件管理,SSI的值用于决定是主机模式还是从机模式;SSI置1则是主机模式,SSI清零则是从机模式


W25Q64 是一个具有 SPI 通讯接口,大小为 8M(Byte) 的 Flash 芯片。 W25Q64 内部把 8M 大存储区分为 128块(Block),每块大小为 64K 字节, 而每块又分为 16 个扇区(Sector),每个扇区的大小为 4K 字节,每个扇区中包含 16 页,每页 256 个字节。并且 Flash 芯片内的数据只能由 1 变 0,不能由 0 变 1。

1. W25Q64 SPI 数据传输时序
W25Q64 支持 SPI 数据传输时序模式 0(CPOL = 0、 CPHA = 0) 和模式 3(CPOL = 1、 CPHA = 1),模式 0 和模
式 3 主要区别是当 SPI 主机硬件接口处于空闲状态时, SCLK 的电平状态是高电平或者是低电平。对于模式 0
来说, SCLK 处于低电平;对于模式 3 来说, SCLK 处于高电平。不过,在这两种模式下,芯片都是在 SCLK 的
上升沿采集输入数据,下降沿输出数据。
2. W25Q64 数据格式
W25Q64 数据格式为数据长度 8 位大小,先发高位,再发低位。
3. W25Q64 传输速度
W25Q64 在标准模式下支持 80M bit/s 速度,快速模式下支持 160M bit/s 速度,高速模式下支持 320M bit/s
速度。

你可能感兴趣的:(stm32)