SPI時序分析

2021-07-05 05:34:09 字數 954 閱讀 3403

spi介面在模式0下輸出第一位資料的時刻

spi介面有四種不同的資料傳輸時序,取決於cpol和cphl這兩位的組合。圖1中表現了這四種時序,時序與cpol、cphl的關係也可以從圖中看出。

圖1cpol是用來決定sck時鐘訊號空閒時的電平,cpol=0,空閒電平為低電平,cpol=1時,空閒電平為高電平。cpha是用來決定取樣時刻的,cpha=0,在每個週期的第乙個時鐘沿取樣,cpha=1,在每個週期的第二個時鐘沿取樣。

由於我使用的器件工作在模式0這種時序(cpol=0,cpha=0),所以將圖1簡化為圖2,只關注模式0的時序。

我們來關注sck的第乙個時鐘週期,在時鐘的前沿取樣資料(上公升沿,第乙個時鐘沿),在時鐘的後沿輸出資料(下降沿,第二個時鐘沿)。首先來看主器件,主器件的輸出口(mosi)輸出的資料bit1,在時鐘的前沿被從器件取樣,那主器件是在何時刻輸出bit1的呢?bit1的輸出時刻實際上在sck訊號有效以前,比 sck的上公升沿還要早半個時鐘週期。bit1的輸出時刻與ssel訊號沒有關係。再來看從器件,主器件的輸入口miso同樣是在時鐘的前沿取樣從器件輸出的bit1的,那從器件又是在何時刻輸出bit1的呢。從器件是在ssel訊號有效後,立即輸出bit1,儘管此時sck訊號還沒有起效。關於上面的主器件和從器件輸出bit1位的時刻,可以從圖3、4中得到驗證。

注意圖3中,cs訊號有效後(低電平有效,注意cs下降沿后發生的情況),故意用延時程式延時了一段時間,之後再向資料暫存器寫入了要傳送的資料,來觀察主器件輸出bit1的情況(mosi)。可以看出,bit1(值為1)是在sck訊號有效之前的半個時鐘週期的時刻開始輸出的(與cs訊號無關),到了sck的第乙個時鐘週期的上公升沿正好被從器件取樣。

圖4中,注意看cs和miso訊號。我們可以看出,cs訊號有效後,從器件立刻輸出了bit1(值為1)。通常我們進行的spi操作都是16位的。圖5記錄了第乙個位元組和第二個位元組間的相互銜接的過程。第乙個位元組的最後一位在sck的上公升沿被取樣,隨後的sck下降沿,從器件就輸出了第二個位元組的第一位。

SPI時序詳解

spi匯流排是motorola公司推出的三線同步介面,同步序列3線方式進行通訊 一條時鐘線sck,一條資料輸入線mosi,一條資料輸出線miso 用於 cpu與各種外圍器件進行全雙工 同步序列通訊。spi主要特點有 可以同時發出和接收序列資料 可以當作主機或從機工作 提供頻率可程式設計時鐘 傳送結束...

SPI時序詳解

spi匯流排是motorola公司推出的三線同步介面,同步序列3線方式進行通訊 一條時鐘線sck,一條資料輸入線mosi,一條資料輸出線miso 用於 cpu與各種外圍器件進行全雙工 同步序列通訊。spi主要特點有 可以同時發出和接收序列資料 可以當作主機或從機工作 提供頻率可程式設計時鐘 傳送結束...

SPI時序詳解

spi匯流排是motorola公司推出的三線同步介面,同步序列3線方式進行通訊 一條時鐘線sck,一條資料輸入線mosi,一條資料輸出線miso 用於 cpu與各種外圍器件進行全雙工 同步序列通訊。spi主要特點有 可以同時發出和接收序列資料 可以當作主機或從機工作 提供頻率可程式設計時鐘 傳送結束...