测试环境
操作系统:Windows10
综合仿真:Vivado 2018.3
芯片验证:Zynq7010
SPI模式
极性:CPOL 相位:CPHA
Mode0 CPOL=0, CPHA=0
Mode1 CPOL=0, CPHA=1
Mode2 CPOL=1, CPHA=0
Mode3 CPOL=1, CPHA=1
时钟极性CPOL: SPI空闲时,时钟信号SCLK的电平(1:空闲时高电平; 0:空闲时低电平)
时钟相位CPHA: SPI在SCLK第几个边沿采样数据(0:第一个边沿; 1:第二个边沿)
SPI时序分析
如下图,这是四种模式下的SPI时序,图中四种模式共用MISO:
从图中可以看出,MISO数据采样和MOSI数据输出都发生在同一时刻,只是它们的时钟不同。而仔细观察,4种模式都可以通过一种时钟变换得来,这里以模式3时钟为参考:
模式0时钟:对模式3时钟反相并移相半个周期
模式1时钟:对模式3时钟反相