久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

硬件筆記本
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
作者動態(tài)
Multisim:硬件工程師必備的電路仿真利器
2星期前
不長篇大論,用最少的字,讓你搞懂LDO和開關(guān)電源
2星期前
SPI通信筆記:基礎(chǔ)+動圖+時序圖+總結(jié),一文吃透!
3星期前
收藏!教科書上沒講清楚的MOS管開關(guān)重點,今天全交代
3星期前
MOS管可以并聯(lián),但隨便并聯(lián)等于燒錢
08-10 13:36
工程師都在看

SPI通信筆記:基礎(chǔ)+動圖+時序圖+總結(jié),一文吃透!

大家好,今天咱們來詳細(xì)聊聊SPI接口,文章內(nèi)容有點多,建議先收藏起來再慢慢看。

SPI現(xiàn)在已經(jīng)成為MCU和外圍設(shè)備之間最常用的通信方式了。它是一種同步、全雙工、主從式的通信接口。工作原理其實很直接:主機(jī)產(chǎn)生時鐘信號,從機(jī)跟著這個時鐘同步收發(fā)數(shù)據(jù)。允許雙向傳輸,可以在同一時鐘周期內(nèi)進(jìn)行主從設(shè)備的數(shù)據(jù)交換。

這種設(shè)計讓SPI既簡單又高效,特別適合需要快速傳輸數(shù)據(jù)的場合。不過要注意的是,SPI沒有標(biāo)準(zhǔn)的通信協(xié)議,不同廠家的設(shè)備可能會有差異,所以用的時候一定要仔細(xì)看芯片手冊。

01| 典型應(yīng)用場景

SPI接口的核心優(yōu)勢在于它的簡單性靈活性,典型應(yīng)用場景包括:

1、傳感器數(shù)據(jù)采集(如溫度傳感器、IMU),例如:TMP124芯片,它是由TI推出的工業(yè)級數(shù)字溫度傳感器,主打高精度+SPI接口組合,適合對測溫有嚴(yán)苛要求的場景。

2、存儲器讀寫(Flash、EEPROM),比如小容量的AT25040,常用來存儲配置參數(shù)和校準(zhǔn)數(shù)據(jù)。

3、數(shù)字信號轉(zhuǎn)換(ADC/DAC)。比如通用ADC芯片MCP4921,它是Microchip推出的低成本12位數(shù)字模擬轉(zhuǎn)換器(DAC),主打簡單易用+SPI接口組合,適合需要數(shù)字控制模擬輸出的場景。

4、顯示驅(qū)動(OLED、TFT屏幕),例如咱們常用的0.96寸OLED屏,一般有I2C和SPI兩種接口,雖然SPI多占用兩個IO口,但速度比I2C快很多。

02| SPI的連接方式和工作速度

連接方式

SPI接口可以是3線式或4線式,這里主要介紹常用的4線SPI接口,4線SPI器件有四個信號:

  • 片選(CS):片選信號,低電平有效
  • 時鐘(SPI CLK, SCLK):時鐘信號由主機(jī)產(chǎn)生
  • MOSI:主機(jī)輸出,從機(jī)輸入
  • MISO主機(jī)輸入,從機(jī)輸出

主機(jī)和從機(jī)之間的SPI連接這里要注意一下,主機(jī)和從機(jī)的MOSI和MISO的接線,這個跟串口TX,RX不一樣,很多人容易搞錯,主機(jī)的MISO接從機(jī)的MISO,主機(jī)的MOSI接從機(jī)的MOSI,直連不交叉。那怎么判斷哪個是主機(jī)呢?咱們產(chǎn)生時鐘信號的器件稱為主機(jī)。主機(jī)和從機(jī)之間傳輸?shù)臄?shù)據(jù)與主機(jī)產(chǎn)生的時鐘同步。另外SPI接口只能有一個主機(jī),但可以有一個或多個從機(jī)。關(guān)注公眾號:硬件筆記本來自主機(jī)的片選信號用于選擇從機(jī)。這通常是一個低電平有效信號,拉高時從機(jī)與SPI總線斷開連接。當(dāng)使用多個從機(jī)時,主機(jī)需要為每個從機(jī)提供單獨的片選信號。

工作速度

SPI速度的典型范圍:1 MHz至100 MHz(4 Mbps至400 Mbps),具體速率取決于器件等級:

消費級IC:1-10 MHz(4-40 Mbps)工業(yè)級器件:10-25 MHz(40-100 Mbps)但咱們在實際應(yīng)用中,會受限于外設(shè)支持(如Flash芯片可達(dá)80 MHz,傳感器通常8 MHz)

這里再插一句,對比I2C來說,I2C速度就低太多了:標(biāo)準(zhǔn)模式100Kbps,高速模式5Mbps(理論值),但是I2C會少占用兩個IO口,所以I2C速度勝在省引腳,SPI贏在速度快。

03| 數(shù)據(jù)傳輸

SPI的數(shù)據(jù)傳輸,整個過程是這樣的:

首先,作為主控的設(shè)備要產(chǎn)生時鐘信號(SCLK),這個信號就像通信的節(jié)拍器。同時,主機(jī)要通過拉低片選信號(CS)來選中要通信的從設(shè)備,這個CS信號通常是低電平有效,所以主機(jī)要給它一個邏輯0。

SPI最厲害的地方在于它是全雙工的,這意味著主機(jī)可以通過MOSI線往外發(fā)送數(shù)據(jù)的同時,從設(shè)備也能通過MISO線往主機(jī)發(fā)送數(shù)據(jù),兩邊是同時進(jìn)行的。具體來說,主機(jī)把數(shù)據(jù)一位一位地放到MOSI線上移出去,同時又在MISO線上一位一位地收數(shù)據(jù)。

所有這些數(shù)據(jù)的發(fā)送和接收都是嚴(yán)格跟著時鐘信號的邊沿走的,你可以選擇在時鐘的上升沿或者下降沿來采樣數(shù)據(jù)。至于每次通信要傳多少位數(shù)據(jù),這個得看具體器件的規(guī)格書,不同芯片的要求可能不一樣。

咱們來看兩張動圖

這個過程中要注意三點:

1、是時鐘必須由主機(jī)產(chǎn)生;

2、CS信號要提前拉低選中從機(jī);

3、數(shù)據(jù)的收發(fā)是同步進(jìn)行的,不是先發(fā)后收或者先收后發(fā)。這種設(shè)計讓SPI既簡單又高效,特別適合需要快速傳輸數(shù)據(jù)的場合。

04| 工作模式

SPI有4種工作模式,主要通過CPOL和CPHA兩個參數(shù)來配置:

如下是SPI模式0的時序圖。

傳輸?shù)拈_始和結(jié)束用綠色虛線表示;采樣邊沿用橙色虛線表示;移位邊沿用藍(lán)色虛線表示。當(dāng)然,這些圖形僅供參考。要成功進(jìn)行SPI通信,必須參閱器件的數(shù)據(jù)手冊并確保滿足器件的時序規(guī)格。

如下是SPI模式1的時序圖。此時:

時鐘極性為0,表示時鐘信號的空閑狀態(tài)為低電平;

時鐘相位為1,表示數(shù)據(jù)在下降沿采樣(由橙色虛線顯示),并且數(shù)據(jù)在時鐘信號的上升沿移出(由藍(lán)色虛線顯示)。

如下是SPI模式2的時序圖。此時:

時鐘極性為1,表示時鐘信號的空閑狀態(tài)為高電平。

時鐘相位為1,表示數(shù)據(jù)在下降沿采樣(由橙色虛線顯示),并且數(shù)據(jù)在時鐘信號的上升沿移出(由藍(lán)色虛線顯示)。

如下是SPI模式3的時序圖。此時:

時鐘極性為1,表示時鐘信號的空閑狀態(tài)為高電平。

時鐘相位為0,表示數(shù)據(jù)在上升沿采樣(由橙色虛線顯示),并且數(shù)據(jù)在時鐘信號的下降沿移出(由藍(lán)色虛線顯示)。

05| 多從機(jī)配置

咱們的多個從機(jī)可與單個SPI主機(jī)一起使用。從機(jī)可以采用常規(guī)模式連接,或采用菊花鏈模式連接。

常規(guī)SPI模式:

在咱們SPI常規(guī)連接模式下,咱們主機(jī)必須為每個從設(shè)備單獨配備一個片選信號線(CS)。當(dāng)主機(jī)將某個從機(jī)的CS信號拉低時,這個從機(jī)就被選中,此時MOSI和MISO線上的時鐘和數(shù)據(jù)信號就可以和這個特定的從機(jī)進(jìn)行通信。關(guān)注公眾號:硬件筆記本

這里有個重要限制:同一時間只能有一個從機(jī)的CS信號被拉低,如果同時拉低多個CS信號,會導(dǎo)致多個從機(jī)同時在MISO線上返回數(shù)據(jù),造成數(shù)據(jù)沖突,主機(jī)就無法分辨這些數(shù)據(jù)到底來自哪個從機(jī)。

隨著系統(tǒng)連接的從機(jī)數(shù)量增多,主機(jī)需要提供的片選線數(shù)量也會相應(yīng)增加。比如連接8個從機(jī)就需要8根獨立的CS線,這會快速占用主機(jī)的IO口資源,從而限制了系統(tǒng)能夠支持的從機(jī)數(shù)量。為了解決這個問題,可以采用一些擴(kuò)展技術(shù),比如使用多路復(fù)用器(MUX)來產(chǎn)生片選信號。不過這種方案會增加一些硬件復(fù)雜度,需要額外添加多路復(fù)用器芯片。

菊花鏈模式:

在SPI菊花鏈連接方式下,所有從設(shè)備共享同一個片選信號(CS),從一個從機(jī)傳播到下一個從機(jī)。具體工作過程是:主機(jī)發(fā)出時鐘信號(SCLK)后,數(shù)據(jù)首先傳輸?shù)降谝粋€從機(jī),第一個從機(jī)將數(shù)據(jù)提供給第二個從機(jī),這樣依次傳遞下去。所有從機(jī)都使用同一個時鐘信號進(jìn)行同步。

這種連接方式的特點是數(shù)據(jù)傳輸需要更多的時鐘周期。如下圖,如在一個8位數(shù)據(jù)寬度的系統(tǒng)中,如果要讓第三個從機(jī)收到數(shù)據(jù),就需要24個時鐘脈沖(3個從機(jī)×8位),而在常規(guī)SPI模式下只需要8個時鐘脈沖。這是因為數(shù)據(jù)需要依次通過每個從機(jī),每個從機(jī)都會對數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)發(fā)。

菊花鏈配置:數(shù)據(jù)傳播

需要注意的是,不是所有SPI設(shè)備都支持菊花鏈模式。在使用這種連接方式前,必須仔細(xì)查看所用芯片的技術(shù)手冊,確認(rèn)其是否支持菊花鏈功能。有些芯片可能只支持常規(guī)的獨立片選模式。此外,菊花鏈模式雖然節(jié)省了片選信號線,但會降低通信效率,因此要根據(jù)實際應(yīng)用需求權(quán)衡選擇。

06| 總結(jié)

SPI接口雖然簡單,但在實際應(yīng)用中需要注意很多細(xì)節(jié):

1、接線要正確(直連不交叉);

2、模式要匹配(看器件手冊);

3、多從機(jī)時要合理選擇連接方式。

記住這些要點,就能用好SPI接口啦!如果遇到問題,最靠譜的辦法就是查閱器件的數(shù)據(jù)手冊。

如果這篇文章對你有幫助,別忘了點贊、收藏,并分享給更多需要的人!

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 3
收藏 3
關(guān)注 268
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧