SPI協議類似於I2C差別在於是全雙工的,正常有四條線:CLK、MISO、MOSI、SS
先來看這四條線的作用吧
時鐘訊號線,I2C一樣用於數據同步,由Master(主機)產生,不同的設備支持的速度都不太一樣,以STM32的SPI來說最快的速度Fpclk/2,兩個裝置的通訊速度取決於較低的那一方。
顧名思義主機輸入從機輸出,MCU為接收資料
顧名思義主機輸出從機輸入,MCU為發送Data
從機選擇線也可以稱為NSS或著CS,有並聯幾個從機就有幾個SS,不管有多少從機連接MCU設備都只會共用以上三條線,SS腳拉Low來選擇當下要跟哪個從機做通訊,所以SS拉高是做為結束信號。
看下圖應該會更好理解,SS為選擇設備的線這樣就不需要像I2C先傳呼叫地址了
先來看看SPI的時序圖吧
可以看到SS訊號為起始信號,SPI有四種模式正緣或是負緣採樣,還有雙數位邊沿採樣或著是奇數邊緣採樣,今天剛看懂不是說很了解,明天會再詳細說明。