電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Verilog中Pmod ALS的SPI接口代碼

Verilog中Pmod ALS的SPI接口代碼

2023-06-15 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

在這個項(xiàng)目中,SPI 接口代碼是用 Verilog 編寫的,用于連接來自 Pmod-ALS 的 8 位 ADC8 位二進(jìn)制轉(zhuǎn)換為 BCD 并顯示在 7 段顯示器上。Verilog 代碼是在 Basys 3 板上的 Artix-7 FPGA 上合成的。

關(guān)于我.. 我已經(jīng)開始學(xué)習(xí) Verilog,從硬件的角度思考是非常充實(shí)和令人興奮的。該項(xiàng)目需要更改和改進(jìn),我很高興知道您對此有何看法。

概述

該項(xiàng)目由三個模塊組成,如下所示。

  • spi_interface
  • 雙重涉獵
  • 七段顯示
pYYBAGNsYi-APv2uAACYht8SlTc962.png
圖 1:架構(gòu)
?

模塊組織:

poYBAGNsYjOAcW95AACfbxx8hh4099.png
圖 2:Vivado 中的模塊組織
?

模塊一:SPI接口

(模塊:spi_interface)

Pmod 環(huán)境光傳感器 (ALS) 具有一個帶有高速 SPI 接口的 8 位 ADC(來自 Texas Instruments 的 ADC081S021)。

pYYBAGNsYjeAfB6bAABb4iwbAsM245.png
圖 3:spi_interface
?

由于在硬件上調(diào)試時序非常重要,因此我分配了 3 個 I/O 用于監(jiān)控 Digilent Analog Discovery 上 Pmod ALS 的 CS、SCLK、SDO 線。

注意:即使在仿真中分析和調(diào)試時序(通過測試臺代碼),在邏輯分析儀上連接一些信號也變得非常有必要——在下圖中用藍(lán)色框表示。

poYBAGNsYjqAMiCiAACpx6od2kE382.png
圖 4:模塊__spi_interface_code
?
pYYBAGNsYj2APXnlAAIAXMNYZ6A694.png
圖 5:監(jiān)控信號__spi_interface
?
pYYBAGNsYj-AWCOFAAEgbyLJqZU605.png
圖 6:監(jiān)控信號__SPI_AnalogDiscovery
?

架構(gòu):SPI接口

傳感器規(guī)范描述了以下時序圖,它是 verilog spi_interface 代碼的完整基礎(chǔ)。

這是通過兩個 8 位計(jì)數(shù)器和一個 8 位寄存器實(shí)現(xiàn)的。

reg [7:0] data_counter;         // Free running counter till 20, to time CS 
reg [7:0] clk_div;              // Prescaler 100 MHz FPGA clock to 1.92 MHz SPI Clock
reg [7:0] r_RX_Byte = 8'b0000_0000; // MISO: Received 1 byte of data from PMOD_ALS
poYBAGNsYkGAIyQCAABtVb0H6H8537.png
圖 7:Pmod ALS SPI 時序圖
?

時鐘分頻器(clk_div):從主時鐘(Basys 3 板上的 100 MHz)導(dǎo)出 spi 時鐘(1.92 MHz)。

poYBAGNsYkSAKtwjAABCI6OJaDY288.png
圖 8:spi_interface_code_clock_divider
?

Pmod ALS 上的 ADC 將光強(qiáng)度的模擬值轉(zhuǎn)換為數(shù)字值,然后將其串行化以在 SPI 總線上傳輸。

前 3 位和后 4 位是零和 1 個三態(tài)位。中間的 8 位是數(shù)據(jù)。我們的 verilog 代碼在 spi 時鐘的幫助下同步捕獲這些數(shù)據(jù)。

數(shù)據(jù)計(jì)數(shù)器:data_counter 是一個自由運(yùn)行的計(jì)數(shù)器,由 spi 時鐘計(jì)時。它被調(diào)整為觸發(fā)數(shù)據(jù)讀取和控制從/到 Pmod-SDO 的芯片選擇。

一旦 data_counter 變?yōu)?20,它就會被重置為 0。在 16 時,CS 按照時序圖的要求被拉高。

poYBAGNsYkeAEpTJAABsN66Tc5s357.png
圖 9:spi_interface_code_data_counter
?

注意:CS 可以作為該模塊的輸入,以便頂層應(yīng)用程序可以命令 CS 引腳。

SDO數(shù)據(jù)讀?。喊凑諘r序圖圖 6 將 SDO 數(shù)據(jù)讀取到 8 位寄存器(MSB 在前)。

poYBAGNsYkqABCsPAACEAQkp-Ns399.png
圖 10_spi_interface_code_SDO_data_read
?

模塊 2:雙重涉獵

讀取的 8 位數(shù)據(jù)被轉(zhuǎn)換為三個 4 位 BCD 矢量,以便能夠在 7 段顯示器上的每個十進(jìn)制數(shù)字處驅(qū)動每個 LED。請?jiān)趆ttps://www.nandland.com/vhdl/modules/double-dabble.html閱讀 Russel 的這篇漂亮的文章

我使用了他的 double dabble 算法的 verilog 代碼并納入了這個項(xiàng)目。謝謝拉塞爾:)

poYBAGNsYkyAAazhAACuwS7c1I0415.png
圖 11: 數(shù)據(jù)流__spi_interface 雙涉足 7 seg 顯示
?

模塊三:七段顯示

該模塊將 4 位 BCD 矢量轉(zhuǎn)換為驅(qū)動 Basys 3 板上四個七段顯示器的 LED。

pYYBAGNsYlOAIi3NAAC2bG5xac0756.png
圖 12:seven_segment_display_code
?

有關(guān)七段顯示的詳細(xì)信息,請參閱 Basys 3 參考手冊。https://reference.digilentinc.com/programmable-logic/basys-3/reference-manual

模擬:

請?jiān)?GitHub 存儲庫中找到測試平臺代碼。

所有三個模塊都被實(shí)例化。

poYBAGNsYleAan_fAAB7tTJN9oE814.png
圖 13:tb_code_1
?
pYYBAGNsYlmALg3XAACq-1aSuAk157.png
圖 14:tb_code_2
?

串行數(shù)據(jù)在 SDO 線上傳輸,用于仿真和驗(yàn)證。有待驗(yàn)證雙dabble算法和七段顯示器的陽極/陰極控制是否能正常工作。

結(jié)果:

pYYBAGNsYl2AfjZgAAFrhcVwnPc390.png
?
poYBAGNsYmGAVy9MAAFatrlb7r8749.jpg
?
poYBAGNsYmqASIUTAAMp2pEejgs301.jpg
?

概括

與這個項(xiàng)目一起工作非常有趣。需要改進(jìn)以降低的頻率傳輸數(shù)據(jù)字節(jié)以及在七段顯示模塊中,以便數(shù)據(jù)字節(jié)的所有三位數(shù)字都清楚地顯示在顯示器上。我很高興聽到您對這個項(xiàng)目的想法。

最重要的是特別感謝來自nandland.com的 Russel和來自Simply Embedded的 Greidi Ajalik 。我從你那里學(xué)到了很多東西,并感謝你所做的工作。

感謝您的閱讀!


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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