SPI协议是一个 4 线、全双工的串口协议。根据串口时钟SCLK的相位SCPH和极性SCPOL的不同,有 4 种组合。1、在主设备处于不使能或者空闲的状态下,主设备输出的从设备选择信号CS保持高电平。
2、时钟极性SCPOL参数决定串口时钟SCLK 在无效的状态下是高电平还是低电平: (1)SCPOL=0,串口时钟(sclk)在无效的状态下保持低电平。 (2)SCPOL=1,串口时钟( sclk)在无效的状态下保持高电平。
3、时钟相位SCPH参数决定在第几个时钟变化边沿开始采样数据: (1) SCPH=0时在第一个时钟变化沿开始发送数据。 (2) SCPH=1时在第二个时钟变化沿采样输入数据。
4、SPI 协议时序图图 1 是 SCPOL=0,SCPH=0 的 SPI 协议时序图。
图 2 是 SCPOL=0,SCPH=1 的 SPI 协议时序图。
图 3 是 SCPOL=1,SCPH=0 的 SPI 协议时序图。
图 4 是 SCPOL=1,SCPH=1 的 SPI 协议时序图。
图中 CS、 SCLK 对于主设备 SPI 为输出; spi_tx 为输出, spi_rx 为输入。
图1
图2
图3
图4