SCLK也可以是 SCK ;
本文将按照以下命名进行讲解 [MISO, MOSI, SCK,NSS]
下图显示了单个主机和单个从机之间的典型SPI连接 。
文章插图
主从连接 时钟频率
SPI总线上的主机必须在通信开始时候配置并生成相应的时钟信号 。在每个SPI时钟周期内,都会发生 全双工数据传输 。
主机在 MOSI 线上发送一位数据,从机读取它,而从机在 MISO 线上发送一位数据,主机读取它 。
就算只进行单向的数据传输,也要保持这样的顺序 。这就意味着无论接收任何数据,必须实际发送一些东西!在这种情况下,我们称其为虚拟数据;
从理论上讲,只要实际可行,时钟速率就可以是您想要的任何速率,当然这个速率受限于每个系统能提供多大的系统时钟频率,以及最大的SPI传输速率 。
时钟极性 CKP/Clock Polarity
除了配置串行时钟速率(频率)外,SPI主设备还需要配置 时钟极性 。
根据硬件制造商的命名规则不同,时钟极性通常写为 CKP或 CPOL 。时钟极性和相位共同决定读取数据的方式,比如信号上升沿读取数据还是信号下降沿读取数据;
CKP可以配置为1或0 。这意味着您可以根据需要将时钟的默认状态(IDLE)设置为高或低 。极性反转可以通过简单的逻辑逆变器实现 。您必须参考设备的数据手册才能正确设置CKP和CKE 。
-
CKP = 0 :时钟空闲 IDLE 为低电平 0 ;
-
CKP = 1 :时钟空闲 IDLE 为高电平 1 ;
除配置串行时钟速率和极性外,SPI主设备还应配置时钟相位(或边沿) 。根据硬件制造商的不同,时钟相位通常写为 CKE或 CPHA;
顾名思义,时钟相位/边沿,也就是采集数据时是在时钟信号的具体相位或者边沿;
-
CKE = 0 :在时钟信号 SCK 的第一个跳变沿采样;
-
CKE = 1 :在时钟信号 SCK 的第二个跳变沿采样;
综上几种情况,下图总结了所有时钟配置组合,并突出显示了实际采样数据的时刻;
其中黑色线为采样数据的时刻;
蓝色线为SCK时钟信号;
具体如下图所示;
文章插图
模式编号
SPI的时钟极性和相位的配置通常称为 SPI模式,所有可能的模式都遵循以下约定;具体如下表所示;
SPI Mode CPOL CPHA 0 [00] 0 0 1 [01] 0 1 2 [10] 1 0 3 [11] 1 1
除此之外,我们还应该仔细检查微控制器数据手册中包含的模式表,以确保一切正常 。
多从机模式
前面说到SPI总线必须有一个主机,可以有多个从机,那么具体连接到SPI总线的方法有以下两种:
第一种方法:多NSS
-
通常,每个从机都需要一条单独的SS线 。
-
如果要和特定的从机进行通讯,可以将相应的 NSS 信号线拉低,并保持其他 NSS 信号线的状态为高电平;如果同时将两个 NSS 信号线拉低,则可能会出现乱码,因为从机可能都试图在同一条 MISO 线上传输数据,最终导致接收数据乱码 。
具体连接方式如下图所示;
文章插图
多NSS连接
第二种方法:菊花链
文章插图
在数字通信世界中,在设备信号(总线信号或中断信号)以串行的方式从一 个设备依次传到下一个设备,不断循环直到数据到达目标设备的方式被称为菊花链 。
-
菊花链的最大缺点是因为是信号串行传输,所以一旦数据链路中的某设备发生故障的时候,它下面优先级较低的设备就不可能得到服务了;
推荐阅读
- 交通事故协议书 交通事故协议书范本
- 工程施工安全责任协议书怎么写 安全施工协议
- 巴萨买哈兰德?巴萨或与哈兰德达成加盟协议
- 加班|《木卫四协议》开发商公开宣传“996”:CEO现已道歉
- 游戏|《木卫四协议》为不跳票狂赶工 一周7天、一天15小时
- 核聚变|从月薪5000到年薪1.2亿美元?假的!博士电视求职被拒并没有翻身
- 尼康d5300好吗?尼康d5300的缺点_1
- 小孩尿臭是怎么回事
- 面试|我工作了1年多就当上了管理,我并没有高兴,而是对未来多了迷茫
- |怎么养紫砂壶