STM32的SPI相关知识
一、前言
本人使用的是stm32f103的开发板,Flash芯片是W25Q64。本章介绍SPI的相关通讯知识,后续篇章会有SPI实现简单的读写Flash的代码。
二、简介
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、 LCD 等设备与 MCU 间,要求通讯速率较高的场合。
1.SPI物理层
SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、 MOSI、MISO,片选线为SS(也称为NSS、CS)。
①SCK:时钟信号线,用于通讯数据同步 。
②SS:从设备选择信号线,也称为片选线。SPI与I2C协议不同,I2C通过设备地址来寻址,而SPI协议中没有设备地址,他是通过设备的片选信号线来寻址,当主机与设备相连时,即将设备的NSS片选信号线置低电平,即片选有效,所以当置高电平时为结束片选。通常我们通过普通的GPIO,控制高低电平的软件模拟的方式来产生通讯起始和停止信号 ,更方便。
③MOSI:主设备输出/从设备输入。(Master Output, Slave Input)
④MISO:主设备输入/从设备输出。(Master Input,, Slave Output)