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

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

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

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

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

1、什么是SPI?SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,是 Motorola 公司推出的一種同步串行接口技術(shù),是一種高速、全雙工、同步的通信總線。2、SPI優(yōu)點(diǎ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的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,有三線制和四線制之分。信號線包括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í)鐘信號,由主設(shè)備產(chǎn)生;(5):CS/SS – 從設(shè)備使能信號,由主設(shè)備控制。當(dāng)有多個從設(shè)備的時(shí)候,因?yàn)槊總€從設(shè)備上都有一個片選引腳接入到主設(shè)備機(jī)中,當(dāng)主設(shè)備和某個從設(shè)備通信時(shí)將需要將從設(shè)備對應(yīng)的片選引腳電平拉低(一般低有效)。

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

6、SPI通信模式分析SPI通信有4種不同的模式,不同的從設(shè)備在出廠時(shí)配置模式已經(jīng)固定, 這是不能改變的,但通信雙方設(shè)備必須工作在同一模式下,所以可以對主設(shè)備的SPI模式進(jìn)行配置,通過CPOL(時(shí)鐘極性)和CPHA(時(shí)鐘相位)來控制主設(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是用來配置SCLK電平的有效態(tài)的;

時(shí)鐘相位CPHA是用來配置數(shù)據(jù)采樣是發(fā)生在第幾個邊沿的。 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個邊沿,數(shù)據(jù)發(fā)送在第2個邊沿;

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

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

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

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

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

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

編輯:jq

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

    關(guān)注

    17

    文章

    1688

    瀏覽量

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

    關(guān)注

    11

    文章

    298

    瀏覽量

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

    關(guān)注

    0

    文章

    7

    瀏覽量

    16075
  • miso
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    5402

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    瀚海微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ī)對卡的命令響應(yīng)
    的頭像 發(fā)表于 10-21 10:19 ?176次閱讀
    瀚海微SD NAND之SD 協(xié)議(42)<b class='flag-5'>SPI</b>總線<b class='flag-5'>時(shí)序</b>

    搞懂通信協(xié)議?先來看一篇SPI熱熱身

    SPI是串行外設(shè)接口(SerialPeripheralInterface)的縮寫,它是一種同步串行通信接口,用于微控制器和外圍設(shè)備(如傳感器、SD卡、其他微控制器等)之間的通信。SPI接口通常
    的頭像 發(fā)表于 05-12 08:10 ?1510次閱讀
    想<b class='flag-5'>搞懂</b>通信協(xié)議?先來看一篇<b class='flag-5'>SPI</b>熱熱身

    天線設(shè)計(jì)攻略簡要概述 帶你玩轉(zhuǎn)PCB和WIFI

    給大家分享干貨啦!天線設(shè)計(jì)全攻略,帶你玩轉(zhuǎn)PCB和WIFI
    的頭像 發(fā)表于 05-08 14:42 ?1435次閱讀
    天線設(shè)計(jì)攻略簡要概述 <b class='flag-5'>帶你</b><b class='flag-5'>玩轉(zhuǎn)</b>PCB和WIFI

    PCB阻抗設(shè)計(jì)12問,輕松帶你搞懂阻抗!

    阻抗,工程師們都接觸過,但能把阻抗說清楚的工程師少之又少。阻抗看似簡單,實(shí)則難以言表。下面我們用快問快答的方式,輕松幫你搞懂阻抗!01問:什么是阻抗?答:在有電阻、電感和電容的電路里,對交流電所起
    的頭像 發(fā)表于 01-05 10:44 ?1831次閱讀
    PCB阻抗設(shè)計(jì)12問,輕松<b class='flag-5'>帶你</b><b class='flag-5'>搞懂</b>阻抗!

    PCB阻抗設(shè)計(jì)12問,輕松帶你搞懂阻抗!

    阻抗,工程師們都接觸過,但能把阻抗說清楚的工程師少之又少。阻抗看似簡單,實(shí)則難以言表。 ? 下面我們用快問快答的方式,輕松幫你搞懂阻抗! 0 1 ?? 問:什么是阻抗? ? 答:在有電阻、電感和電容
    的頭像 發(fā)表于 01-03 08:40 ?1103次閱讀
    PCB阻抗設(shè)計(jì)12問,輕松<b class='flag-5'>帶你</b><b class='flag-5'>搞懂</b>阻抗!

    ADXL355模擬SPI時(shí)序,MISO讀取的老是高電平的原因?

    有沒有大佬幫忙看一下,這ADXL355模擬SPI時(shí)序,MISO讀取的老是高電平,是不是這個取出程序的時(shí)序有問題啊 uint8_t SPI_ReadWrite1Byte(uint8_t
    發(fā)表于 12-27 07:38

    AD7193如何通過spi時(shí)序圖來進(jìn)行模擬spi的通信編程?

    本人準(zhǔn)備應(yīng)用AD7193,現(xiàn)在一直無法實(shí)現(xiàn)AD7193 的spi通信,請問如何通過spi時(shí)序圖來進(jìn)行模擬spi的通信編程?
    發(fā)表于 12-21 07:36

    FPGA通過SPI對ADC配置簡介(三)3線SPI配置時(shí)序分析

    AD9249的SPI控制模塊包含4根信號線,即CSB1、CSB2、SDIO以及SCLK。但CSB1、CSB2可以一起由CSB來控制,實(shí)際上就是3線SPI。
    的頭像 發(fā)表于 12-12 10:47 ?2311次閱讀
    FPGA通過<b class='flag-5'>SPI</b>對ADC配置簡介(三)3線<b class='flag-5'>SPI</b>配置<b class='flag-5'>時(shí)序</b>分析

    FPGA通過SPI對ADC配置簡介(二)-4線SPI配置時(shí)序分析

    本篇將以德州儀器(TI)的高速ADC芯片—ads52j90為例,進(jìn)行ADC的4線SPI配置時(shí)序介紹與分析。
    的頭像 發(fā)表于 12-11 09:05 ?1724次閱讀
    FPGA通過<b class='flag-5'>SPI</b>對ADC配置簡介(二)-4線<b class='flag-5'>SPI</b>配置<b class='flag-5'>時(shí)序</b>分析

    電源時(shí)序規(guī)格:電源導(dǎo)通時(shí)的時(shí)序工作

    電源時(shí)序規(guī)格:電源導(dǎo)通時(shí)的時(shí)序工作
    的頭像 發(fā)表于 12-08 18:21 ?765次閱讀
    電源<b class='flag-5'>時(shí)序</b>規(guī)格:電源導(dǎo)通時(shí)的<b class='flag-5'>時(shí)序</b>工作

    AD9945與STM32之間通過SPI通信,通信時(shí)序怎么寫?

    我最近做一個CCD的項(xiàng)目,需要用到AD9945,因?yàn)樗念l率高,但是AD9945怎么與STM32F103外部引腳連接,他輸出的12位并行數(shù)據(jù)接到哪里?還有AD9945與STM32之間通過SPI通信,通信時(shí)序怎么寫?時(shí)序圖如下:
    發(fā)表于 12-05 08:28

    在AD7134的SPI控制時(shí)序中,STATUS是什么意思?

    在AD7134的SPI控制時(shí)序中,這個 STATUS在手冊中沒有介紹,只介紹數(shù)據(jù)接口的標(biāo)頭,如下圖所示: 工程師能不能解釋一下?
    發(fā)表于 11-30 07:44

    網(wǎng)絡(luò)華佗 | iMaster NCE-FabricInsight帶你玩轉(zhuǎn)網(wǎng)絡(luò)“迷宮”

    “閱讀原文”,了解更多華為數(shù)據(jù)通信資訊! 原文標(biāo)題:網(wǎng)絡(luò)華佗 | iMaster NCE-FabricInsight帶你玩轉(zhuǎn)網(wǎng)絡(luò)“迷宮” 文章出處:【微信公眾號:華為數(shù)據(jù)通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
    的頭像 發(fā)表于 11-29 18:15 ?523次閱讀
    網(wǎng)絡(luò)華佗 | iMaster NCE-FabricInsight<b class='flag-5'>帶你</b><b class='flag-5'>玩轉(zhuǎn)</b>網(wǎng)絡(luò)“迷宮”

    了解這些就可以搞懂 IGBT

    了解這些就可以搞懂 IGBT
    的頭像 發(fā)表于 11-24 15:47 ?2884次閱讀
    了解這些就可以<b class='flag-5'>搞懂</b> IGBT

    搞懂什么是電容器的等效串聯(lián)電阻

    搞懂什么是電容器的等效串聯(lián)電阻
    的頭像 發(fā)表于 11-23 16:14 ?1791次閱讀
    <b class='flag-5'>搞懂</b>什么是電容器的等效串聯(lián)電阻