打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
怎么看懂时序图?spi协议4种模式时序剖析案例!
西北望msm66g9f
>《培训》
2021.07.11
关注
全文约
1252
字,阅读大约需要
5
分钟
我做产品的时候,最怕就是做IIC和SPI的通信。
这两种协议时序哪怕是延时时间有误差,都有可能导致通信不上。
出现问题的时候,如果没设备也很难排查问题到底出在哪里。
有时候这个产品写好的时序程序,换一个单片机用同一个程序移植过去就不行了。
而且很多公司都没有设备可以调试这些协议,大多数时候都是完全靠蒙。
今天就拿新手比较头痛的SPI来进行时序图的分析和讲解,看不懂你打我!
我记得第一次SPI通讯的时候,完全是照抄网络上的程序,因为芯片手册的时序图看起来太可怕了,根本看不懂。
后面各种模拟时序写多了,才有了经验,然后
用经验去理解数据手册以及网络上的教程
。
很多新手看各种数据手册和教程被吓到了,其实很多时候不是你的问题,而是数据手册和教程写的太学术化了。
举个例子,就像SPI协议用
CPOL
和
CPHA
真值表来选择不同的模式。
因为在很多
SPI
接口芯片的数据手册根本没提
CPOL
和
CPHA
这两个东西,那要怎么知道芯片的通讯模式?
其实是要我们自己根据芯片手册的时序图去分析模式的,而不会直接告诉你是用的哪个模式。
所以在看时序之前,我们先要了解
CPOL
和
CPHA
到底有啥区别。
CPHA
是
用来控制数据
是在
第一个跳变沿
还是
第二个跳变沿采集的
。
通过上图可以看到:
CPHA=0
的时候,数据是在第一个跳变沿的时候就会被采集
。
CPHA=1
的时候,数据是在第二个跳变沿的时候才会被采集
。
那问题来了,到底是上升沿还是下降沿采集?
这个就由
CPOL
来决定了:
CPOL=0
的时候是上升沿采集。
CPOL=1
的时候是下降沿采集
。
除此以外,
CPOL
还决定了我们时钟线
SCLK
空闲时的状态。
CPOL=0
的时候表示
SCLK
在空闲时为低电平。
CPOL=1
的时候表示
SCLK
在空闲时为高电平
。
Ok
,明白了这个,
我们再分析
4
种模式的时序图
。
1.
模式
0(CPOL=0 CPOL=0)
CPOL = 0
:时钟线空闲时是低电平,第
1
个跳变沿是上升沿,第
2
个跳变沿是下降沿
CPHA = 0
:数据在第
1
个跳变沿(上升沿)采样
时序图如下:
2.
模式
1(CPOL=0 CPOL=1)
CPOL = 0
:空闲时是低电平,第
1
个跳变沿是上升沿,第
2
个跳变沿是下降沿
CPHA = 1
:数据在第
2
个跳变沿(下降沿)采样
时序图如下:
3.
模式
2(CPOL=1 CPOL=0)
CPOL = 1
:空闲时是高电平,第
1
个跳变沿是下降沿,第
2
个跳变沿是上升沿
CPHA = 0
:数据在第
1
个跳变沿(下降沿)采样
时序图如下:
4.
模式
3(CPOL=1 CPOL=1)
CPOL = 1
:空闲时是高电平,第
1
个跳变沿是下降沿,第
2
个跳变沿是上升沿
CPHA = 1
:数据在第
2
个跳变沿(上升沿)采样
时序图如下:
这样看是不是对
4
种模式的区别比较清晰了?
下面,我们再拿
OLED
的驱动芯片
SSD1306
的时序图来作为实战讲解。
SSD1306
的
4
线
SPI
通讯时序如下:
从这个时序图可以看出几个关键点:
1.
在发送数据之前,要把
CS
引脚拉低。
2.
D/C
一般是用来控制发送命令还是数据的。
3.
数据在第二个
SCLK
跳变开始传输。
4.
数据在
SCLK
上升沿的时候进行传输,每次发送一个
Bit
,高位在前。
所以,由这个时序图可以判断出来,用的是
SPI
模式
3
的通讯方式。
知道这个之后,你就知道单片机的硬件
SPI
模式要怎么配置了
(
下图以
STM32
为例
)
。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
SPI时序初步认识
spi协议时序图和四种模式实际应用详解
SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)
基于51的SPI通讯原理及协议详解
SPI
51入门系列教程| 协议协议(SPI篇)
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×