STM32(十三)SPI-读写串行flash

Posted yuanqiangfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32(十三)SPI-读写串行flash相关的知识,希望对你有一定的参考价值。

1、SPI协议简介

  • 摩托罗拉提出的通讯协议,即外围设备接口
  • 是一种高速全双工的通讯总线
  • 被广泛用于ADC、LCD等设备与MCU间要求通讯速率较高的场合

2、SPI物理层

技术图片

SPI通讯使用3条总线及片选线,3条总线分别为SCK、MOSI、MISO,片选线为SS,它们的作用如下:

(1) SS ( Slave Select): 从设备选择信号线,常称为片选信号线,也称为NSS、CS,以下用NSS表示。当有多个SPI从设备与SPI主机相连时,设备的其它信号线SCK、MOSI及MISO同时并联到相同的SPI总线上,即无论有多少个从设备,都共同只使用这3条总线;而每个从设备都有独立的这一- 条NSS信号线,本信号线独占主机的-一个引脚,即有多少个从设备,就有多少条片选信号线。2C协议中通过设备地址来寻址、选中总线上的某个设备并与其进行通讯;而SPI协议中没有设备地址,它使用NSS信号线来寻址,当主机要选择从设备时,把该从设备的NSS信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行SPI 通讯。所以SPI通讯以NSS线置低电平为开始信号,以NSS线被拉高作为结束信号。

(2) SCK (Serial Clock):时钟信号线,用于通讯数据同步。它由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,如STM32的SPI时钟频率最大为fopc/2,两个设备之间通讯时,通讯速率受限于低速设备。

(3) MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。

(4) MISO(Master Input,Slave Output):主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。

以上是关于STM32(十三)SPI-读写串行flash的主要内容,如果未能解决你的问题,请参考以下文章

STM32学习笔记(16)——(SPI续)读写串行Flash

stm32的spi读写只能在一个函数里完成吗?

STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)

STM32入门开发: 介绍SPI总线读写W25Q64(FLASH)(硬件+模拟时序)

STM32入门开发: 介绍SPI总线读写W25Q64(FLASH)(硬件+模拟时序)

SPI—读写串行 FLASH