SPI四种模式

经常忘记SPI4种工作模式,学了忘了,现在记下方便以后查阅。
在芯片资料上极性和相位一般表示为CPOL(Clock POLarity)和CPHA(Clock PHAse), 极性和相位组合成4种工作模式。

 CPOLCPHA
MODE000
MODE101
MODE210
MODE311

CPOL: SPI空闲时的时钟信号电平(1:高电平, 0:低电平)
CPHA: SPI在时钟第几个边沿采样(1:第二个边沿开始, 0:第一个边沿开始)
MODE0和MODE3最常用。

### SPI通信协议的四种模式配置 SPI(串行外设接口)总线支持四种不同的工作模式,这些模式由时钟极性相位设置决定。每种模式定义了数据采样时刻以及移位寄存器何时更新。 #### 模式0 (CPOL=0, CPHA=0) 在这种模式下,当未选通时,SCK信号处于低电平;第一个边沿为上升沿,在此之后主机发送的第一个数据位被从机接收并处理[^1]。 #### 模式1 (CPOL=0, CPHA=1) 对于这种模式而言,同样地,空闲状态下的SCK保持在低位,但是数据会在第二个边沿即下降沿被捕获,这意味着相对于模式0来说有一个半周期延迟的数据传输发生。 #### 模式2 (CPOL=1, CPHA=0) 这里的情况正好相反——默认情况下SCK高电平,并且首次转移发生在首个下降沿上,这使得它成为某些特定硬件设计中的首选选项之一。 #### 模式3 (CPOL=1, CPHA=1) 最后一种情况是两者均为激活态(高低),意味着即使是在非活动期间也维持着高水平脉冲序列,而实际的信息交换则会跟随随后到来的那个上升前沿完成。 为了正确配置SPI设备之间的连接,必须确保主控端受控端都设定相同的参数组合来匹配所期望使用的具体操作方式。通常可以在初始化阶段通过软件编程或者硬件跳线的方式来实现这一点。 ```c // 设置SPI模式的例子(C代码片段) void spi_set_mode(uint8_t mode){ switch(mode){ case 0:// Mode 0 CPOL=0, CPHA=0 // 配置代码... break; case 1:// Mode 1 CPOL=0, CPHA=1 // 配置代码... break; case 2:// Mode 2 CPOL=1, CPHA=0 // 配置代码... break; case 3:// Mode 3 CPOL=1, CPHA=1 // 配置代码... break; default: // 错误处理 break; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值