協議類基礎——SPI
注意:有的開發板可能沒有自帶SPI
本篇隨便找了一個SPI的晶片手冊
相關引腳
MCU或SOC上的SPI相關引腳如下
M——master
O——output
I——input
S——slave(從屬)
某SPI晶片
對應如下
接線
- SPICLK(時鐘訊號)——CSerial Clock)
由使用SPI傳送資料的開發板給出時鐘訊號 - SPIMOSI(SPI OUTPUT)——D(Serial Data Input)
開發板的傳送端接上SPI晶片的接收端 - SPIMISO(SPI INPUT)——Q(Serial Data Input)
開發板的輸出接上SPI晶片的輸入 - GPIO——Chip Selecct
隨便一個GPIO設定成輸出,連線SPI晶片上的片選引腳
SPI匯流排允許多個裝置接入,那麼怎麼分辨不同的裝置——片選引腳
片選引腳為低電平,則選定裝置 - Write Protect防寫
當電平為低時,不允許寫入該晶片,只能讀 - HOLD暫停所有操作
低電平有效
如果不想用防寫和暫停,直接把這兩根接到電源,一直給高電平就可以了
SPI協議
讀
對於這一款晶片,地址的A8在第一個位元組的bit3,其他晶片不一定是這樣的格式
這款晶片記憶體是512位元組,需要9個地址位,其他的一般是8個
因為是讀,所以要先寫入地址,告訴SPI晶片要讀的位置
然後SPI晶片將這個地址裡的資料給到讀它的裝置
片選引腳
- 不使用時是高電平
- 給與低電平後,裝置開始工作
Clock
- SPI晶片被選中時,晶片的時鐘不斷髮送脈衝
每來一個時鐘,傳送一個位的資料
D(serial data input)
- 第一個位元組
第0到2個位元組是0
第三個位元組是的地址的第9位
bit4和5是0
bit6和7是11,表示讀 - 第二個位元組
地址的剩餘8位
Q(serial data input)
- SPI晶片接收到兩個位元組的訊號後,知道了要讀的地址
在第三個位元組的時序,將次地址的資訊傳送給讀取的裝置
寫
和讀差不多
只是SPI晶片不用返回資料給連線的MCU
D(serial data input)
- 第一個位元組
最後兩位是10,表示寫
其餘和上面一樣 - 第二個位元組
傳送要寫的地址 - 第三個位元組
傳送要寫入的資料
SPI控制器
例如2440
2440傳送的時鐘一定要滿足外接的SPI晶片
如這款SPI的晶片,能接受的最大達的頻率是5MHz
↑有相應的暫存器可以設定時鐘的頻率
2440最大能傳送25MHz的時鐘,但SPI只能接受5MHz的頻率,所以要配置
相關文章
- SPI協議協議
- SPI協議詳解協議
- HTTP協議基礎HTTP協議
- 15. SPI通訊協議協議
- SPI通訊協議筆記協議筆記
- javaweb基礎--HTTP協議JavaWebHTTP協議
- WEB基礎及HTTP協議WebHTTP協議
- Web基礎與HTTP協議WebHTTP協議
- Flash驅動控制--晶片擦除(SPI協議)晶片協議
- TCP/IP網路協議基礎TCP協議
- 網路協議基礎知識協議
- 前端基礎之HTTP協議介紹前端HTTP協議
- PHP基礎知識——PHP偽協議PHP協議
- HTTP 協議類HTTP協議
- python爬蟲基礎與http協議Python爬蟲HTTP協議
- 談談網路協議 – 基礎知識協議
- HTTP協議基礎及發展歷史HTTP協議
- ENSP上各種基礎協議的配置協議
- 新手入門AMF協議基礎全解協議
- 重識TCP/IP協議族與HTTP基礎TCP協議HTTP
- 前端基礎重點回顧2: HTTP協議前端HTTP協議
- 網路通訊協議基礎(ISIS)——入門協議
- Dubbo(一)-SPI 機制之javaSPI基礎Java
- Java基礎系列-SPI你認識嗎Java
- 帶你瞭解動態路由協議OSPF基礎路由協議
- JavaWeb第五講 Web核心基礎之HTTP協議JavaWebHTTP協議
- 小白學習安全測試(一)——Http協議基礎HTTP協議
- 嵌入式audio基礎(二)傳輸協議協議
- 開源協議的分類協議
- runtime 註冊類,協議協議
- 各類路由協議配置方法路由協議
- 指南:動態路由協議OSPF基礎,OSPF報文,LSA路由協議
- 基礎篇-http協議《http 簡介、url詳解、request》HTTP協議
- Swift 面向協議程式設計 基礎篇 (一) 介紹Swift協議程式設計
- 網路基礎與協議入門——(2)TCP協議重點協議TCP
- 網路基礎與協議入門——(1)HTTP協議重點協議HTTP
- SPI通訊協議 的移位暫存器資料交換過程協議
- 第20課 SPI協議詳解及裸機程式開發分析協議