SPI的学习

工作原理

SPI的工作原理基于主从架构。主设备通过四条主要信号线与一个或多个从设备进行通信:

  1. MOSI(主输出,从输入)DI(Master Output Slave Input):主设备发送数据到从设备。
  2. MISO(主输入,从输出)DO(Master Input Slave Output):从设备发送数据到主设备。
  3. SCLK(时钟信号):由主设备生成的时钟信号,用于同步数据传输。
  4. SS(从选择)(Slave Select):选择特定的从设备进行通信。

同步,全双工
支持总线挂载多设备(一主多从) 

在数据传输时,主设备首先激活从设备的SS线,然后通过SCLK发送时钟脉冲,数据在每个时钟脉冲的上升或下降沿被发送和接收。这样,主从设备可以实现高效的全双工通信。

硬件电路

所有SPI设备的SCK、MOSI、MISO分别连在一起
主机另外引出多条SS控制线,分别接到各从机的SS引脚
输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入

SPI时序基本单元 

起始条件:SS从高电平切换到低电平
终止条件:SS从低电平切换到高电平

交换一个字节(模式0
CPOL=0:空闲状态时,SCK为低电平
CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据

SPI时序

发送指令

向SS指定的设备,发送指令(0x06)

SCK下降沿,将数据移出,主机将数据移出到MOSI,MOSI变化电平,要在上升沿前完成变化,SCL上升沿数据采样输入(SCK低电平是变化的时期,高电平是读取时期) 
主机用0x06换来了从机的0xFF

注意:下降沿变化电平,上升沿收集变化的电平

指定地址写

向SS指定的设备,发送写指令(0x02) 
随后在指定地址(Address[23:0])下,写入指定数据(Data)

 

指定地址读

向SS指定的设备,发送读指令(0x03),      随后在指定地址(Address[23:0])下,读取从机数据(Data)

上一篇:GPIO口模拟PWM输出


下一篇:AIGC探索之 NiN:深入神经网络的应用与实现