一.什麼是SPI?
1.SPI是一般爲4線的總線協議,有時也可以是三條線(單向傳輸)
2. 四線分別爲MISO(主設備數據輸入) ,MOSI(主設備數據輸出),SCK(時鐘),CS(片選)
有必要了解一下它的英文全稱
(1) MISO - Master input SlaveOutput(主設備數據輸入,從設備數據輸出)
(2)MOSI - Master Output Slave Input (主設備數據輸出,從設備數據輸入)
(3)SCLK - Serial Clock 時鐘信號,由主設備產生
(4)CS -Chip Select 從設備使能信號,由主設備控制
更爲直觀的示意圖如下:
通俗的說,由於是8位的數據寄存器,所以當經過8個時鐘,數據將從主設備移位寄存器中的數據轉到從設備移位寄存器中,同理 從設備中的數據將轉到主設備中
二.上SPI的時序
說SPI,時序圖肯定要掌握一下
首先要理解一下,圖中的幾個名字,CPOL,CPHA ,NCC,至於MISO ,MOSI 我就不多說了,(不懂的看一下上面的圖)
CPOL 其全稱爲 ,Clock polarity 翻譯爲 時鐘極性(高電平,或低電平)
CPHA 其全稱爲 ,Clock phase,翻譯爲 時鐘相位
看到我把字母標紅了嗎,大寫的符號就是由其組成的,這樣就好記很多了。所以顧名思義,你可以看出來他和時鐘信號有關,他們之間組成4種模式
我就不解釋太多,直接上圖解釋
當CPOL = 0 ,CPHA = 1,CPOL =0 意思是當時鍾空閒的時候,時鐘爲低電平,CPHA =1 ,意思是在時鐘的第二個沿的時候,做數據移位操作,當然這時CS肯定是使能的。 如下圖所示:
當CPOL = 1,CPHA = 0,CPOL = 1 意思是當時鍾空閒的時候,時鐘爲高電平 ,CPHA = 0 意思是 在時鐘第一個沿的做數據移位 ,發送出去,如下圖所示:
接下來兩幅圖,以此類推 ,CPOL ,CPHA 分別爲多少 ,自己看看有沒有看懂
第一幅
第二幅
評論區留言一下你的答案,看看我說明白了沒(PS:別偷看上面的整圖 - -)