0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

搞懂時(shí)序帶你玩轉(zhuǎn)SPI?

FPGA之家 ? 來(lái)源:玩轉(zhuǎn)嵌入式 ? 作者:玩轉(zhuǎn)嵌入式 ? 2021-05-29 11:29 ? 次閱讀

1、什么是SPI?SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,是 Motorola 公司推出的一種同步串行接口技術(shù),是一種高速、全雙工、同步的通信總線。2、SPI優(yōu)點(diǎn)支持全雙工通信

通信簡(jiǎn)單

數(shù)據(jù)傳輸速率塊

1eda1b7e-bfcf-11eb-9e57-12bb97331649.jpg

3、缺點(diǎn)沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù),所以跟IIC總線協(xié)議比較在數(shù)據(jù)可靠性上有一定的缺陷。

4、特點(diǎn)

(1):高速、同步、全雙工、非差分、總線式

(2):主從機(jī)通信模式5、SPI電路連接

(1):SPI的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,有三線制和四線制之分。信號(hào)線包括SDI(串行數(shù)據(jù)輸入 Serial Digital IN)、SDO(串行數(shù)據(jù)輸出 Serial Digital OUT)、SCLK(時(shí)鐘)、CS(片選)。

(2):SDO/MOSI – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入

(3):SDI/MISO – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出

(4):SCLK – 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生;(5):CS/SS – 從設(shè)備使能信號(hào),由主設(shè)備控制。當(dāng)有多個(gè)從設(shè)備的時(shí)候,因?yàn)槊總€(gè)從設(shè)備上都有一個(gè)片選引腳接入到主設(shè)備機(jī)中,當(dāng)主設(shè)備和某個(gè)從設(shè)備通信時(shí)將需要將從設(shè)備對(duì)應(yīng)的片選引腳電平拉低(一般低有效)。

1ef21878-bfcf-11eb-9e57-12bb97331649.png

6、SPI通信模式分析SPI通信有4種不同的模式,不同的從設(shè)備在出廠時(shí)配置模式已經(jīng)固定, 這是不能改變的,但通信雙方設(shè)備必須工作在同一模式下,所以可以對(duì)主設(shè)備的SPI模式進(jìn)行配置,通過(guò)CPOL(時(shí)鐘極性)和CPHA(時(shí)鐘相位)來(lái)控制主設(shè)備的通信模式。 具體模式具體如下:

:CPOL=0,CPHA=0

Mode1:CPOL=0,CPHA=1

Mode2:CPOL=1,CPHA=0

Mode3:CPOL=1,CPHA=1

模式 CPOL CPHA
Mode0 0 0
Mode1 0 1
Mode2 1 0
Mode3 1 1

時(shí)鐘極性CPOL是用來(lái)配置SCLK電平的有效態(tài)的;

時(shí)鐘相位CPHA是用來(lái)配置數(shù)據(jù)采樣是發(fā)生在第幾個(gè)邊沿的。 CPOL=0表示當(dāng)SCLK=0時(shí)處于空閑態(tài),所以SCLK處于高電平時(shí)有效;

CPOL=1表示當(dāng)SCLK=1時(shí)處于空閑態(tài),所以SCLK處于低電平時(shí)有效;

CPHA=0表示數(shù)據(jù)采樣是在第1個(gè)邊沿,數(shù)據(jù)發(fā)送在第2個(gè)邊沿;

CPHA=1表示數(shù)據(jù)采樣是在第2個(gè)邊沿,數(shù)據(jù)發(fā)送在第1個(gè)邊沿; SPI主模塊和與之通信的外設(shè)通信時(shí),兩者的時(shí)鐘相位和極性應(yīng)該保持一致。7、SPI 時(shí)序詳解CPOL=0,CPHA=0:此時(shí)空閑態(tài)時(shí),SCLK處于低電平,數(shù)據(jù)采樣是在第1個(gè)邊沿,也就是SCLK由低電平到高電平的跳變,所以數(shù)據(jù)采樣是在上升沿,數(shù)據(jù)發(fā)送是在下降沿。 CPOL=0,CPHA=1:此時(shí)空閑態(tài)時(shí),SCLK處于低電平,數(shù)據(jù)發(fā)送是在第1個(gè)邊沿,也就是SCLK由低電平到高電平的跳變,所以數(shù)據(jù)采樣是在下降沿,數(shù)據(jù)發(fā)送是在上升沿。 CPOL=1,CPHA=0:此時(shí)空閑態(tài)時(shí),SCLK處于高電平,數(shù)據(jù)采集是在第1個(gè)邊沿,也就是SCLK由高電平到低電平的跳變,所以數(shù)據(jù)采集是在下降沿,數(shù)據(jù)發(fā)送是在上升沿。 CPOL=1,CPHA=1:此時(shí)空閑態(tài)時(shí),SCLK處于高電平,數(shù)據(jù)發(fā)送是在第1個(gè)邊沿,也就是SCLK由高電平到低電平的跳變,所以數(shù)據(jù)采集是在上升沿,數(shù)據(jù)發(fā)送是在下降沿。

注意:SPI主設(shè)備能夠控制時(shí)鐘信號(hào),因?yàn)镾PI通信并不像UART或者IIC通信那樣有專門的通信周期、通信起始信號(hào)、通信結(jié)束信號(hào);所以SPI協(xié)議只能通過(guò)控制時(shí)鐘信號(hào)線,在沒有數(shù)據(jù)交流的時(shí)候,時(shí)鐘線要么是保持高電平,要么是保持低電平。 例如:工作在模式0這種時(shí)序(CPOL=0,CPHA=0),如下:

1f2a0814-bfcf-11eb-9e57-12bb97331649.png

我們來(lái)關(guān)注SCK的第一個(gè)時(shí)鐘周期,在時(shí)鐘的前沿采樣數(shù)據(jù)(上升沿,第一個(gè)時(shí)鐘沿),在時(shí)鐘的后沿輸出數(shù)據(jù)(下降沿,第二個(gè)時(shí)鐘沿)。首先來(lái)看主器件,主器件的輸出口(MOSI)輸出的數(shù)據(jù)bit1,在時(shí)鐘的前沿被從器件采樣,那主器件是在何時(shí)刻輸出bit1的呢?bit1的輸出時(shí)刻實(shí)際上在SCK信號(hào)有效以前,比SCK的上升沿還要早半個(gè)時(shí)鐘周期。

bit1的輸出時(shí)刻與SSEL信號(hào)沒有關(guān)系。再來(lái)看從器件,主器件的輸入口MISO同樣是在時(shí)鐘的前沿采樣從器件輸出的bit1的,那從器件又是在何時(shí)刻輸出bit1的呢。從器件是在SSEL信號(hào)有效后,立即輸出bit1,盡管此時(shí)SCK信號(hào)還沒有起效。 從這張圖就可以很清楚的看出主從器件的bit1是怎樣輸出的。

1f5a253a-bfcf-11eb-9e57-12bb97331649.png

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1786

    瀏覽量

    94981
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    306

    瀏覽量

    39277
  • SCK
    SCK
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    16372
  • miso
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    5579

原文標(biāo)題:SPI怎么玩?搞懂時(shí)序,運(yùn)用自如

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何讓SPI額外發(fā)出一個(gè)時(shí)鐘?

    現(xiàn)將2個(gè)ADC芯片進(jìn)行菊花鏈?zhǔn)竭B接,手冊(cè)上給的時(shí)序圖中,兩個(gè)芯片讀數(shù)中間需要額外插入一個(gè)時(shí)鐘時(shí)序,要怎樣控制SPI輸出單個(gè)時(shí)鐘。還是說(shuō)只能去用IO口模擬時(shí)序。IO口模擬的話速率又不如
    發(fā)表于 06-13 07:30

    ADuM3151/ADuM3152/ADuM3153用于SPI的3.75 kV、7通道、SPI隔離器、數(shù)字隔離器技術(shù)手冊(cè)

    變壓器技術(shù),在CLK、MO/SI、MI/SO和SSSPI總線信號(hào)中具有低傳播延遲特性,可支持最高17 MHz的SPI時(shí)鐘速率。這些通道在工作時(shí)具有14 ns傳播延遲和1 ns抖動(dòng),以針對(duì)SPI優(yōu)化時(shí)序。
    的頭像 發(fā)表于 06-04 11:23 ?176次閱讀
    ADuM3151/ADuM3152/ADuM3153用于<b class='flag-5'>SPI</b>的3.75 kV、7通道、<b class='flag-5'>SPI</b>隔離器、數(shù)字隔離器技術(shù)手冊(cè)

    零死角玩轉(zhuǎn)STM32——中級(jí)篇

    本文共4冊(cè),由于資料內(nèi)存過(guò)大,分開上傳,有需要的朋友可以去主頁(yè)搜索下載哦~ 《零死角玩轉(zhuǎn) STM32》系列教程由初級(jí)篇、中級(jí)篇、高級(jí)篇、系統(tǒng)篇、四個(gè)部分組成,更適合初學(xué)者,步步為營(yíng),從入門到精通
    發(fā)表于 05-21 13:56

    【CW32模塊使用】0.96寸SPI單色屏

    硬件SPI與軟件SPI相比,硬件SPI是靠硬件上面的SPI控制器,所有的時(shí)鐘邊緣采樣,時(shí)鐘發(fā)生,還有時(shí)序控制,都是由硬件完成的。它降低了CP
    的頭像 發(fā)表于 03-29 17:29 ?2258次閱讀
    【CW32模塊使用】0.96寸<b class='flag-5'>SPI</b>單色屏

    TLC1543怎么直接用SPI接口控制,不需要模擬時(shí)序

    自己在做SST51與TLC1543的連接,而SST51集成SPI接口,想咨詢TLC1543怎么直接用SPI接口控制,不需要模擬時(shí)序。請(qǐng)指教,謝謝
    發(fā)表于 02-11 07:49

    ADS1118 spi通信時(shí)序的問題誰(shuí)來(lái)解答一下

    我用ADS1118做4路單端模擬信號(hào)的采集,按照DATASHEET 上的SPI時(shí)序從SDI引腳輸入4BYTE的數(shù)據(jù)(配置字發(fā)送2次),SDO引腳一直保持為高電平。請(qǐng)問這是何種原因?望解答。 請(qǐng)問
    發(fā)表于 01-20 08:40

    LPC1768用仿SPI時(shí)序去驅(qū)動(dòng)ADS1248,轉(zhuǎn)換不對(duì)是哪里的問題?

    我以前用LPC1758仿SPI時(shí)序驅(qū)動(dòng)ADS1248,沒有問題,轉(zhuǎn)換正確;近來(lái)我用LPC1768也是用仿SPI時(shí)序去驅(qū)動(dòng)ADS1248,但是轉(zhuǎn)換不對(duì)。發(fā)現(xiàn)/DRDY信號(hào)為一個(gè)10
    發(fā)表于 01-10 06:42

    把DAC8803的LDAC管腳接地,其他SPI時(shí)序正常,DAC可以正常工作嗎?

    請(qǐng)問一下,如果把DAC8803 的LDAC管腳接地,其他SPI時(shí)序正常,DAC可以正常工作嗎?如果能正常工作應(yīng)該如何操作? 我現(xiàn)在是把LDAC管腳一直接地,時(shí)序按數(shù)據(jù)手冊(cè)上的時(shí)序操作
    發(fā)表于 01-06 06:55

    DAC7568按數(shù)據(jù)手冊(cè)上要求的SPI時(shí)序不能配置,內(nèi)部參考是否也沒有輸出,為什么?

    按數(shù)據(jù)手冊(cè)上要求的SPI時(shí)序不能配置,內(nèi)部參考是否也沒有輸出,手冊(cè)上面介紹的操作有沒有順序要求,沒有給出來(lái)。試了上面所有寫操作也沒有輸出輸入您的問題
    發(fā)表于 12-31 06:21

    KeyStone架構(gòu)串行外設(shè)接口(SPI)手冊(cè)

    )、MOSI(主設(shè)備輸出從設(shè)備輸入線)、MISO(主設(shè)備輸入從設(shè)備輸出線)和CS/SS(片選線)。SPI協(xié)議支持主從模式,其中主設(shè)備生成時(shí)鐘信號(hào)并控制數(shù)據(jù)傳輸?shù)?b class='flag-5'>時(shí)序,而從設(shè)備響應(yīng)主設(shè)備的請(qǐng)求。這種協(xié)議廣泛應(yīng)用于嵌入式系統(tǒng)中,因?yàn)樗?jiǎn)單、高效,并且能夠支持多種不同的數(shù)據(jù)速率
    發(fā)表于 12-16 10:33 ?0次下載

    ADS9224R使用SPI常規(guī)模式,讀數(shù)據(jù)無(wú)返回,請(qǐng)問具體的讀數(shù)據(jù)的時(shí)序應(yīng)該是怎樣的?

    使用SPI常規(guī)模式,讀數(shù)據(jù)無(wú)返回,請(qǐng)問具體的讀數(shù)據(jù)的時(shí)序應(yīng)該是怎樣的?我的操作是常規(guī)模式使用zone 1,拉高CONVST后再拉低,然后等待READY變高,拉低CS,進(jìn)行數(shù)據(jù)的讀取,讀取不到數(shù)據(jù)
    發(fā)表于 11-28 06:11

    請(qǐng)問下DAC1282的SPI時(shí)序是CPOL=0,CPHA=0嗎?

    請(qǐng)問下DAC1282的SPI時(shí)序是CPOL=0,CPHA=0嗎?還有就是此芯片通訊不是全雙工的嗎?寫寄存器的操作碼Figure 49. 顯示是0100XXXX,但是文字描述卻是0010XXXX,到底是哪個(gè)為準(zhǔn)?,F(xiàn)在調(diào)試就是SPI
    發(fā)表于 11-26 06:44

    瀚海微SD NAND之SD 協(xié)議(42)SPI總線時(shí)序

    SPI總線時(shí)序圖 所有時(shí)序圖使用以下原理圖和縮寫: 所有定時(shí)值的定義如表所示。 主機(jī)在收到卡響應(yīng)后,應(yīng)保持時(shí)鐘運(yùn)行至少NcR時(shí)鐘周期。此限制適用于命令和數(shù)據(jù)響應(yīng)令牌。 命令/響應(yīng) 主機(jī)對(duì)卡的命令響應(yīng)
    的頭像 發(fā)表于 10-21 10:19 ?672次閱讀
    瀚海微SD NAND之SD 協(xié)議(42)<b class='flag-5'>SPI</b>總線<b class='flag-5'>時(shí)序</b>

    玩轉(zhuǎn)TI MSP430 LaunchPad

    電子發(fā)燒友網(wǎng)站提供《玩轉(zhuǎn)TI MSP430 LaunchPad.pdf》資料免費(fèi)下載
    發(fā)表于 08-30 10:51 ?0次下載
    <b class='flag-5'>玩轉(zhuǎn)</b>TI MSP430 LaunchPad

    電源時(shí)序器的原理及使用方法是什么

    電源時(shí)序器是一種用于控制多個(gè)電源設(shè)備按照一定順序開啟或關(guān)閉的電子設(shè)備。它廣泛應(yīng)用于音響、舞臺(tái)燈光、電視廣播、工業(yè)自動(dòng)化等領(lǐng)域。本文將介紹電源時(shí)序器的原理及使用方法。 一、電源時(shí)序器的原理 電源
    的頭像 發(fā)表于 07-08 14:16 ?4228次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品