news 2026/5/12 17:59:09

SPI总线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SPI总线

SPI总线
SPI总线有四种工作方式,2种时钟极性和2种数据相位。
SPI总线协议不定义数据字节内部位序,位序由应用层根据需要定义。
SPI总线数据帧长度由应用层定义。
2.1 时钟极性配置CPOL
时钟极性配置CPOL决定空闲状态时钟线SCK的电平状态。
空闲状态时钟线SCK电平状态与CPOL值一致。CPOL=0则空闲时SCK为低电平,CPOL=1则空闲时SCK为高电平。
2.2 数据相位配置CPHA
2.2.1 数据相位配置CPHA决定在时钟线SCK的第几个跳变沿第一次采样数据。
(1)如果时钟线SCK跳变沿数字从0开始计算,第一次采样的跳变沿数字与CPHA数字一致。
CPHA=0则在SCK的第0个跳变沿第一次采样,CPHA=1则在SCK的第1个跳变沿第一次采样。
(2)如果时钟线SCK跳变沿数字从1开始计算,第一次采样的跳变沿数字与CPHA数字的大小排列顺序一致。
CPHA=0则在SCK的第1个跳变沿第一次采样,CPHA=1则在SCK的第2个跳变沿第一次采样。
CPHA=0则在SCK的奇数跳变沿采样,CPHA=1则在SCK的偶数跳变沿采样。
2.2.2 如何配置CPHA最好
配置CPHA=1最好。
若配置CPHA=0,则数据发送端必须在时钟信号SCK第一次跳变前把数据放在总线上。
对于主机来说这没有问题,对从机来说就有点困难,因为从机不知数据传输何时开始。
配置CPHA=1,即使没有CS,从机也可以把SCK信号的第一个跳变沿作为数据传输开始的信号。
2.3 片选信号线CS
片选信号CS并不是必须的,CS可以直接接地。
2.3.1 有片选信号CS
CPHA=0时,必须CS信号必须先于时钟信号,即先将CS拉低,延时几十微秒后再开启时钟。
这样从机可以在CS拉低后立即把数据放在总线上,主机可以在SCK的第1个跳变沿读取到正确的数据。
2.3.2 无片选信号CS
若无片选信号CS,最好配置CPHA=1。
即使配置CPHA=0,问题也不大,主机向从机读取数据之前,一般会先写数据,通过命令告诉从机准备哪些数据。
在某些情况下,从机需要主动请求主机读取数据,从机一般会通过IO中断通知主机,并在产生中断时把数据放在总线上。
2.4 SPI总线的使用方式
2.4.1 主机主动向从机读数据
这种情况,若无片选信号CS,必须配置CPHA=1。
由于SPI总线数据传输速度较快,半个SCK周期的数据准备时间对从机来说并不充裕。
2.4.2 主机主动向从机写数据或先写后读数据
主机一般会在时钟信号SCK开始前先把数据放在总线上。
若主机写完数据后还要读数据,需要延时一段时间,给从机留下足够的时间准备数据。
2.4.3 从机主动请求主机读取数据
从机一般会通过IO中断通知主机,若无CS且配置为CPHA=0,从机需要在产生中断的同时把数据放在总线上。
2.5 SPI总线注意事项
要给从机留下充足的时间来准备数据。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 17:59:06

奇点展开原理:一个统一的数学方法论

摘要:本文提出“奇点展开原理”——在数学系统中,当一个计算在奇点处无法确定唯一结果时,其结果应取所有可能值的集合。从这一原理出发,我们推导出展开公理 a/0R,并系统讨论其代数性质、初等函数应用、数学分析扩展、集…

作者头像 李华
网站建设 2026/5/12 17:58:05

八股文随记

字节对齐 规则 成员对齐:结构体第一个成员偏移量为 0,后续成员的起始地址必须是指定对齐大小的整数倍。如果不满足,插入填充字节; 整体对齐:结构体的总大小必须是结构体中最大成员大小的整数倍。如果不够,末…

作者头像 李华
网站建设 2026/5/12 17:51:06

C#基础9泛型

一、 泛型 :允许我们延迟编写数据类型&#xff0c; 直到真正使用时确定类型的一种规范方法本质上也是数据类型泛型&#xff1a;体现多态&#xff0c;与var相似1.可以创建自己的泛型接口、泛型类、泛型方法、泛型集合 &#xff0c;泛型事件和泛型委托2.泛型的格式: 结构<泛…

作者头像 李华