SPI協議是一個 4 線、全雙工的串口協議。根據串口時鐘SCLK的相位SCPH和極性SCPOL的不一樣,有 4 種組合。
CPOL CPHA
MODE0 0 0
MODE1 0 1
MODE2 1 0
MODE3 1 1
CPOL: SPI空閒時的時鐘信號電平(1:高電平, 0:低電平)
CPHA: SPI在時鐘第幾個邊沿採樣(1:第二個邊沿開始, 0:第一個邊沿開始)
MODE0和MODE3最經常使用。
一、在主設備處於不使能或者空閒的狀態下,主設備輸出的從設備選擇信號CS保持高電平。
二、時鐘極性SCPOL參數決定串口時鐘SCLK 在無效的狀態下是高電平仍是低電平:
(1)SCPOL=0,串口時鐘(sclk)在無效的狀態下保持低電平。
(2)SCPOL=1,串口時鐘( sclk)在無效的狀態下保持高電平。
三、時鐘相位SCPH參數決定在第幾個時鐘變化邊沿開始採樣數據:
(1) SCPH=0時在第一個時鐘變化沿開始發送數據。
(2) SCPH=1時在第二個時鐘變化沿採樣輸入數據。
四、SPI 協議時序圖
圖中 CS、 SCLK 對於主設備 SPI 爲輸出; spi_tx 爲輸出, spi_rx 爲輸入。
圖 1 是 SCPOL=0,SCPH=0 的 SPI 協議時序圖。
圖 2 是 SCPOL=0,SCPH=1 的 SPI 協議時序圖。
圖 3 是 SCPOL=1,SCPH=0 的 SPI 協議時序圖。
圖 4 是 SCPOL=1,SCPH=1 的 SPI 協議時序圖。
文章轉載自:https://blog.csdn.net/qwaszx523/article/details/70224879