分析测试百科网

搜索

喜欢作者

微信支付微信支付
×

SPI续篇:注意事项与实现(一)

2020.10.05
头像

王辉

致力于为分析测试行业奉献终身

SPI总线有四种工作方式(SPI0, SPI1, SPI2, SPI3),其中使用的最为广泛的是SPI0和SPI3方式。

image.png

时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA 是用来配置数据采样是在第几个边沿:

CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时

CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时

CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿

CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿

image.png

如上图,乃SPI四种模式的时序图:

CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。

CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

长舒一口气,终于将SPI介绍完了。

首先确定了单片机A(Master MCU1)为主模式,单片机B(Slave MCU1)为从模式。各自也配置好了SLCK,MOSI,MISO和SCK的io引脚。选择了默认的SPI0模式。原理图如下:

image.png

按图连接好后,进行了“试音”阶段。单片机A发送1—10的数字给了单片机B;单片机B收到后,用流水灯作为回应。

①:数据发送程序(主机仅发送)

#define    uchar  unsigned char

#define uint  unsigned int

#define ulong unsigned long


互联网
仪器推荐
文章推荐