SPI 協(xié)議簡(jiǎn)介
SPI是單master多slave的總線協(xié)議,全雙工通信。如下圖所示,一個(gè)master可以控制多個(gè)slave,通過(guò)ss信號(hào)選擇需要控制的slave,ss低電平有效。
數(shù)據(jù)傳輸要遵循如下時(shí)序要求(下圖是以收發(fā)數(shù)據(jù)位數(shù)為8作為示例)。其中SCK為SCLK,由master發(fā)出,SS為Slave片選信號(hào)。其中CPOL,CPHA為模式選擇。master與slave的模式需要一致。MISO(單bit)為slave的輸出數(shù)據(jù)線,master的輸入數(shù)據(jù)線(未選中的slave的MISO為高阻態(tài));MOSI(單bit)為master的輸出數(shù)據(jù)線,slave的輸入數(shù)據(jù)線。數(shù)據(jù)都是先發(fā)低位。
當(dāng)CPOL=0,CPHA=0時(shí):空閑時(shí),SCLK為低電平;master和slave,在SCLK上升沿采集數(shù)據(jù),下降沿發(fā)出數(shù)據(jù)。并在第一個(gè)SCLK上升沿之前,數(shù)據(jù)的第一bit必須送上數(shù)據(jù)線。
當(dāng)CPOL=0,CPHA=1時(shí):空閑時(shí),SCLK為低電平;master和slave,在SCLK上升沿發(fā)出數(shù)據(jù),下降沿采集數(shù)據(jù)。
當(dāng)CPOL=1,CPHA=0時(shí):空閑時(shí),SCLK為高電平;master和slave,在SCLK上升沿發(fā)出數(shù)據(jù),下降沿采集數(shù)據(jù)。并在第一個(gè)SCLK下降沿之前,數(shù)據(jù)的第一bit必須送上數(shù)據(jù)線。
當(dāng)CPOL=1,CPHA=1時(shí):空閑時(shí),SCLK為高電平;master和slave,在SCLK上升沿采集數(shù)據(jù),下降沿發(fā)出數(shù)據(jù)。
設(shè)計(jì)概述
本次提供了一個(gè)master接口與slave接口的參考設(shè)計(jì)。并且要求clk的時(shí)鐘頻率最好為SCLK時(shí)鐘頻率的三倍以上。當(dāng)SCLK為clk的奇數(shù)倍分頻時(shí)需要考慮誤差積累問(wèn)題。
SPI_master_if(SPI master接口驅(qū)動(dòng))的信號(hào)端口說(shuō)明如下表:
SPI_slave_if(SPI slave接口驅(qū)動(dòng))的信號(hào)端口說(shuō)明如下表:
并且還提供了一個(gè)簡(jiǎn)單的TB(SPI_tb.sv)。大家可以跑跑仿真。
目前此設(shè)計(jì)只是做了功能仿真,并未上板與其他SPI設(shè)備進(jìn)行實(shí)測(cè),如有問(wèn)題,希望大家給予反饋。
-
仿真
+關(guān)注
關(guān)注
50文章
4087瀏覽量
133651 -
SPI
+關(guān)注
關(guān)注
17文章
1707瀏覽量
91642 -
驅(qū)動(dòng)電路
+關(guān)注
關(guān)注
153文章
1530瀏覽量
108544
原文標(biāo)題:SPI 接口驅(qū)動(dòng)電路設(shè)計(jì)
文章出處:【微信號(hào):LF-FPGA,微信公眾號(hào):小魚FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論