前言
SPI(Serial Peripheral Interface)是一种常见的串行通信协议,用于在微控制器和外部设备之间进行高速数据传输。在 MicroPython 中,SPI 协议的实现被封装在 machine.SPI 模块中,使得用户可以轻松地使用 SPI 接口进行通信。SPI 协议通常由一个主设备和一个或多个从设备组成,通过时钟信号和数据线实现全双工通信。此外,SPI 控制器结构是指在硬件层面上负责实现 SPI 协议的电路和组件,通常包括控制寄存器、数据寄存器、时钟发生器等。
一、SPI 程序层次
1.1 硬件原理图
以 SPI 接口的 Flash 为例,它跟主控的连接图如下:
其中DI为SPI设备发给主控的。SCK为时钟(所以SPI协议是一种同步协议)
主控发出。DO为主控发送给SPI设备的,CS为片选引脚,我们可以通过CS片选引脚来选中不同的SPI设备,可以实现一主多从。