詳解SPI中的極性CPOL和相位CPHA

2021-09-09 06:42:50 字數 2341 閱讀 9024

spi由於介面相對簡單(只需要4根線),用途算是比較廣泛,主要應用在 eeprom,flash,實時時鐘,ad轉換器,還有數字訊號處理器和數碼訊號解碼器之間。即乙個spi的master通過spi與乙個從裝置,即上述的那些flash,adc等,進行通訊。而主從裝置之間通過spi進行通訊,首先要保證兩者之間時鐘sclk要一致,互相要商量好了,要匹配,否則,就沒法正常通訊了,即保證時序上的一致才可正常訊。而這裡的spi中的時鐘和相位,指的就是sclk時鐘的特性,即保證主從裝置兩者的時鐘的特性一致了,以保證兩者可以正常實現spi通訊。

spi的極性polarity和相位phase,最常見的寫法是cpol和cpha,不過也有一些其他寫法,簡單總結如下:

(1) ckpol (clock polarity) = cpol = pol = polarity = (時鐘)極性

(2) ckpha (clock phase)   = cpha = pha = phase = (時鐘)相位

(3) sck=sclk=spi的時鐘

(4) edge=邊沿,即時鐘電平變化的時刻,即上公升沿(rising edge)或者下降沿(falling edge)

對於乙個時鐘週期內,有兩個edge,分別稱為:

(1)leading edge=前乙個邊沿=第乙個邊沿,對於開始電壓是1,那麼就是1變成0的時候,對於開始電壓是0,那麼就是0變成1的時候;

(2)trailing edge=後乙個邊沿=第二個邊沿,對於開始電壓是1,那麼就是0變成1的時候(即在第一次1變成0之後,才可能有後面的0變成1),對於開始電壓是0,那麼就是1變成0的時候;

本博文採用如下用法:

極性=cpol

相位=cpha

sclk=時鐘

第乙個邊沿和第二個邊沿

cpol和cpha,分別都可以是0或時1,對應的四種組合就是:

下面詳細介紹。

cpol極性

先說什麼是sclk時鐘的空閒時刻,其就是當sclk在傳送8個bit位元資料之前和之後的狀態,於此對應的,sclk在傳送資料的時候,就是正常的工作的時候,有效active的時刻了。其英文精簡解釋為:clock polarity = idle state of sck。

spi的cpol,表示當sclk空閒idle的時候,其電平的值是低電平0還是高電平1:

cpol=0,時鐘空閒idle時候的電平是低電平,所以當sclk有效的時候,就是高電平,就是所謂的active-high;

cpol=1,時鐘空閒idle時候的電平是高電平,所以當sclk有效的時候,就是低電平,就是所謂的active-low;

從上圖中可以看出,(cpol=0)的sck 波形,它有(傳輸)8 個脈衝,而在脈衝傳輸前和完成後都保持在【低電平狀態】。此時的狀態就是時鐘的空閒狀態或無效狀態,因為此時沒有脈衝,也就不會有資料傳輸。同理得出,(cpol=)1 的圖,時鐘的空閒狀態或無效狀態時sck 是保持【高電平的】。

cpha相位

首先說明一點,capture strobe = latch = read = sample,都是表示資料取樣,資料有效的時刻。相位,對應著資料取樣是在第幾個邊沿(edge),是第乙個邊沿還是第二個邊沿,0對應著第乙個邊沿,1對應著第二個邊沿。

對於:cpha=0,表示第乙個邊沿:

對於cpol=0,idle時候的是低電平,第乙個邊沿就是從低變到高,所以是上公升沿;

對於cpol=1,idle時候的是高電平,第乙個邊沿就是從高變到低,所以是下降沿;

cpha=1,表示第二個邊沿:

對於cpol=0,idle時候的是低電平,第二個邊沿就是從高變到低,所以是下降沿;

對於cpol=1,idle時候的是高電平,第乙個邊沿就是從低變到高,所以是上公升沿;

我們看上面的圖,發現資料 si 是對應 sck 的第乙個時鐘沿,再仔細看,資料是在sck的第乙個時鐘邊沿保持穩定【資料被取樣捕獲】,在下乙個邊沿改變【sck 的下降沿資料改變】因此我們得出結論:該系列flash 是【資料在第乙個時鐘沿被取樣捕獲】或【資料在spck 起始邊沿捕獲,在spck 下乙個邊沿改變】

如何判斷cpol和cpha

如果起始的sclk的電平是0,那麼cpol=0,如果是1,那麼cpol=1,然後看資料取樣時刻,即時序圖資料線上的資料那個矩形區域的中間所對應的位置,對應到上面sclk時鐘的位置,對應著是第乙個邊沿或是第二個邊沿,即cpha是0或1。(對應的是上公升沿還是還是下降沿,要根據對應的cpol的值,才能確定)。

(1)如何判斷cpol:sclk的空閒時候的電壓,是0還是1,決定了cpol是0還是1;

(2)如何判斷cpha:而資料取樣時刻對應著的sclk的電平,是第乙個邊沿還是第二個邊沿,對應著cpha為0還是1。

sclk的極性,相位,邊沿之間的內在邏輯

最後來看一下s3c2440的spi的cpol和cpha,結合前面講的理論知識,下面的圖就很好理解啦!

詳解SPI中的極性CPOL和相位CPHA

spi由於介面相對簡單 只需要4根線 用途算是比較廣泛,主要應用在 eeprom,flash,實時時鐘,ad轉換器,還有數字訊號處理器和數碼訊號解碼器之間。即乙個spi的master通過spi與乙個從裝置,即上述的那些flash,adc等,進行通訊。而主從裝置之間通過spi進行通訊,首先要保證兩者之...

詳解SPI中的極性CPOL和相位CPHA

spi由於介面相對簡單 只需要4根線 用途算是比較廣泛,主要應用在 eeprom,flash,實時時鐘,ad轉換器,還有數字訊號處理器和數碼訊號解碼器之間。即乙個spi的master通過spi與乙個從裝置,即上述的那些flash,adc等,進行通訊。而主從裝置之間通過spi進行通訊,首先要保證兩者之...

詳解SPI中的極性CPOL和相位CPHA

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!spi由於介面相對簡單 只需要4根線 用途算是比較廣泛,主要應用在 eeprom,flash,實時時鐘,ad轉換器,還有數字訊號處理器和數碼訊號解碼器之間。即乙個spi的master通過spi與乙個從裝置,即上述的那些flash,adc等,進行通訊...