Raspberry Pi幾乎可以用于任何用途。從家庭媒體中心到自定義的復古游戲設置,可以肯定地說Pi和類似的單板計算機正變得無處不在。
當您開始嘗試在Raspberry Pi上使用GPIO引腳時,事情將會變得更多。有趣。我們已經介紹了所有這些引腳的功能,所以現在讓我們看看如何在Pi上啟用SPI和I2C協議,以及為什么要這么做。
Raspberry Pi上的SPI是什么?
在深入研究之前,讓我們簡要介紹一下這兩種協議的作用。
SPI (或串行外圍接口)允許Pi等微控制器與一次可容納100個外圍組件。微控制器充當所有“從屬”組件的“主”,并可以與它們進行高速通信。此圖概述了一個簡單的SPI連接:
《圖id =“ attachment_760970” aria- describeby =“ caption-attachment-760970” class =“ wp-caption aligncenter”》
圖片來源:Cburnett/wikipedia.org
如果這是您第一次閱讀有關SPI看起來似乎很嚇人,但要堅持下去! SCLK 是主機設置的時鐘速度,它確定設備之間共享信息的速度。
在時鐘的每個周期(或“滴答”),兩個主機從站發送和接收一位信息。這就是 MOSI (主輸出從動輸入)和 MISO (主輸入從動輸出)引腳的作用。
SS 或從選擇引腳(在Pi上標記為CE0或CE1)用于告訴從設備在任何給定時間與主設備進行通信(或不與之通信)。在大多數情況下,每個從設備都需要自己的SS引腳,但可以共享SCLK,MOSI和MISO引腳。
某些設備可以通過“菊花鏈式”共享一個SS引腳,從而保持使用的總引腳數減少到四個,再加上兩個用于電源和地。 SPI以極快的速度而聞名,通常用于移位寄存器或ADC(模擬到數字轉換器)以在設備之間傳遞數據。
增強型初創公司YouTube頻道具有易于遵循的SPI入門知識,可以解釋協議進一步:
如何在Raspberry Pi上啟用SPI
要在Raspberry Pi上啟用SPI,請在終端上輸入以下內容打開 raspi-config :
sudo raspi-config
導航至接口選項,然后在以下菜單上選擇 P4 SPI啟用/禁用SPI內核模塊的自動加載 。在窗口提示符下選擇是。現已啟用SPI!
或者,您可以從/boot/config.txt 文件啟用SPI。打開終端窗口,然后輸入:
sudo nano /boot/config.txt
查找讀為#dtparam = spi = on 的行,并刪除#符號。不管您以哪種方式啟用SPI,都將重新啟動Pi并啟用SPI。
在Raspberry Pi上使用SPI可以做什么?
盡管有數百個使用許多不同SPI的不同項目,外設,一個不錯的入門項目是對自己的RFID讀取器進行編程。
我們在帶Arduino的DIY智能鎖和RFID教程中使用了MFRC-522讀取器。要獲得Raspberry Pi風味的RFID簡介,請查看piddlerintheroot的深入的Instructable。
這種設置也不僅僅適用于愛好電子產品。在我們最好的Raspberry Pi項目集合中,我們采用了使用Raspberry Pi和RFID運行的全尺寸MES系統,作為歐洲大規模工廠運營的一部分。
Raspberry Pi上的I2C是什么?
I2C是菲利普斯電子公司(Phillips Electronics)創建的通信協議,該協議在基于微控制器的愛好項目中已得到廣泛使用。原因很明顯-它僅使用兩根線,而不是SPI的最少四根線。用戶制作的庫也很好地支持它。 Raspberry Pi上有許多旨在與I2C一起使用的組件。雖然它比SPI慢,但對于大多數日常使用而言仍然可以足夠快地工作。
與SPI一樣,該協議具有 master 設備,例如Pi和從設備設備,例如屏幕,移位寄存器或電機驅動器。
設備之間的第一個連接是 SCL (串行時鐘)由主機設置以同步數據傳輸。第二行是 SDA (串行數據),它在I2C總線上的所有設備之間來回傳輸數據。
主設備開始與 start通信位和一個7位十六進制地址。這必須與從屬設備匹配,以便它們進行通信。這就是用兩根導線可以使用的設備數量。
然后,主設備在接收之前指定它是要讀取還是寫入( R/W )從設備確認或 ACK 。
YouTuber增強型初創企業再次提供了易于理解的I2C深入了解:
如何啟用Raspberry Pi上的I2C
還可以通過 raspi-config 菜單在Pi上啟用I2C。打開終端并輸入:
sudo raspi-config
使用箭頭鍵選擇接口選項,然后選擇 P5 I2C啟用/禁用自動加載I2C內核模塊。確認要啟用該協議,然后會看到一個確認屏幕。
與SPI一樣,您也可以通過修改配置來啟用I2C。 txt文件。打開終端并輸入:
sudo nano /boot/config.txt
修改# dtparam = i2c_arm = on ,刪除#符號。
重新啟動您的Pi,I2C即可使用!
您可以在Raspberry Pi上使用I2C做什么?
I2C非常適合需要大量輸出的任何項目。 LCD屏幕的典型用途是使用,最多需要16個引腳。 I2C將其減少到只有兩個用于通訊,兩個用于電源和地。
許多LCD屏幕都附帶一個 I2C“背包” ,這使它們的安裝更加簡單,
TheRaspberryPiGuy上有詳細的YouTube教程,介紹如何在Raspberry Pi上通過I2C設置和使用LCD屏幕。
使用SPI和I2C節省引腳!
Raspberry Pi上的SPI和I2C肯定不是完整的業余電子產品初學者,但也沒什么可擔心的。
在開始潛水之前,它會遵循我們的Raspberry Pi入門指南學習基礎知識是一個好主意。
責任編輯:wv
-
SPI
+關注
關注
17文章
1701瀏覽量
91345 -
I2C
+關注
關注
28文章
1482瀏覽量
123359 -
樹莓派
+關注
關注
116文章
1699瀏覽量
105537
發布評論請先 登錄
相關推薦
評論