電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>如何通過SPI使用Raspberry PI零與FPGA通信

如何通過SPI使用Raspberry PI零與FPGA通信

2023-06-13 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

概述

目標是使用 Raspberry PI 零(或 2W)和 RealTime Linux 補丁運行飛行計算機的 BaseFlight 修改版本。其中一個問題是生成 OneShot 協(xié)議以從 BaseFlight 控制 ESC(電機控制器)。那么,為什么不使用 FPGA 來生成 OneShot 信號,而不是使用 PI 上的資源來生成信號。

Buildroot 用于創(chuàng)建帶有實時補丁 Linux 內(nèi)核的發(fā)行版。(如果您需要有關如何操作的更多信息,請告訴我)

該項目不詳細介紹如何逐步創(chuàng)建 Vivado 項目和使用 iverlog 驗證設計。請在下面評論您想要更多詳細信息,我會添加它。

如何與FPGA通信

PI有SPI、TTL串口、I2C、USB。該協(xié)議需要快速和簡單,因此選擇 SPI 作為物理傳輸。下一個問題是如何向FPGA發(fā)送簡單的讀寫命令并進行處理。此外,如果有一種方法可以添加功能/外設,那就太好了。

FPGA通信設計

為了簡單起見,讓我們使用硬件總線,它有一個定義的方式來訪問不同的內(nèi)存塊,例如:

  • 地址即32位:訪問不同的寄存器或設備
  • 數(shù)據(jù)總線讀寫寄存器

Wishbone是為本設計選擇的簡單總線。 AXI Lite 本來可以用的,也許下次吧。AXI用于ARM處理器,規(guī)格詳細,例子多。

下圖是FPGA系統(tǒng)的基本框圖:

poYBAGSAhNeAP806AAAxojbPQdM528.png
基本圖
?

FPGA代碼和外部庫

下面提供了代碼。

SPI 接口來自這里。Wishbone 庫來自這里MUX 是使用 wishbone 庫中的 python 腳本生成的。

復雜性在于 Wishbone 庫的使用方式,它使用兩個 AXIS 端口,一個傳輸端口和一個接收端口。需要創(chuàng)建膠合邏輯以連接 SPI 接口和叉骨 AXIS 接口。

控制 LED 的示例

一種簡單的測試方法是不使用 MUX 并將 LED 外圍設備直接連接到 Wishbone 庫。如下所示:

pYYBAGSAhNqATkgmAAD44-A01no836.png
Vivado 圖
?

映射 FPGA 引腳

隨板提供的約束文件被修改為映射 SPI 引腳、MISO、MOSI、CLK 和 CLK。此外,四個 LED 與 RGB LED 一起映射。

使用PI測試FPGA

spidev0.1 即 SPI0 MISO、SPI0 MOSI、SPI0 CLK 和 CE1 連接到 FPGA。

下面展示的是如何使用終端發(fā)送SPI字節(jié)序列來讀寫字節(jié)流。這是一個例子:

# printf '\xA2\x1\x2\x3\x0\x0\x4\x11\x22\x33\x44\0' | spi-pipe -m 0 -s 1000000 -d /dev/spidev0.1 | hexdump -C
00000000  44 44 a4 01 02 03 00 00  04 04 04 04              |DD..........|
0000000c
#

0xA2:是寫命令字節(jié)

0x01020300 是要寫入的地址

0x0004 是要寫入的字節(jié)數(shù)

0x44332211 是要寫入的字節(jié)(注意字節(jié)是顛倒的)

讀書:

# printf '\xA1\x1\x2\x3\x0\x0\x4\x0\x0\x0\x0\0\0' | spi-pipe -m 0 -s 100000 -d /dev/spidev0.1 | hexdump -C
00000000  04 04 a3 01 02 03 00 00  04 11 22 33 44           |.........."3D|
0000000d
#

返回的是,0x04,0x04 是兩個字節(jié),是垃圾。接下來的字節(jié)是回復:

0xA3 是對讀取的回復

0x01020300是地址

0x00 0x04 是長度

0x44332211 是寫入的數(shù)據(jù)

使用 iverlog 進行單元測試

有幾個測試平臺,用于驗證 pwm 解碼的 tb_pwmdecoder_wb.v 應該使用 100Mhz 時鐘。tb_spiwishbone.v 將 SPI 數(shù)據(jù)發(fā)送到讀寫寄存器。

證實

下面顯示的是顯示寫命令序列的邏輯分析儀軌跡。在項目中有一個 python 腳本可以通過 spidev 設置 LED。SPI 頻率為 3.2Mhz。在 PI 上下載ledTester.py并發(fā)出以下命令。

# python ledTester.py

該腳本將盡快編寫命令。從跟蹤中,命令以 2.6Khz 的速率發(fā)送。

pYYBAGSAhN6ACHexAAFkQTpXIhM893.png
?
poYBAGSAhOeAIPvGAAGf3WUvE2w664.png
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費