大俠好,阿Q來也,今天是第二次和各位見面,請各位大俠多多關照。今天給各位大俠帶來一篇項目開發(fā)經(jīng)驗分享“基于JESD204B的LMK04821芯片項目開發(fā)”第二篇,這是本人實打實的項目開發(fā)經(jīng)驗,希望可以給有需要的大俠提供一些參考學習作用。
以后機會多多,慢慢分享一些項目開發(fā)以及學習方面的內(nèi)容,歡迎各位大俠一起切磋交流。
204B實戰(zhàn)應用-LMK04821代碼詳解(二)
一、 SPI協(xié)議
通過閱讀LMK04821數(shù)據(jù)手冊,我們可以從中知道,可以通過SPI協(xié)議對LMK04821進行寄存器的配置工作,進而實現(xiàn)我們設計所需要的功能。
SPI協(xié)議部分,咱們可以用3線,或者4線,在本次設計中,使用3線。關于SPI的時序部分,這兒就不再贅述,手冊里面都有詳細的描述。
圖1
二、 SPI寄存器配置模塊設計
圖2
如圖2所示,就是配置LMK04821存器的單元,信號定義如下:
1、cfg_clk:系統(tǒng)時鐘;
2、cfg_rst:系統(tǒng)復位;
3、通過VIO控制的信號,這組信號存在的目的在于方便檢測自己配置寄存器的正確性。
vio_cfg_en:配置寄存器使能信號;
vio_cfg_wr:配置寄存器讀寫使能,0寫1讀;
vio_cfg_addr:配置的寄存器地址;
vio_cfg_wdata:寄存器中配置的值;
addr_118_data:預留信號,模塊中沒有用;
我們在配置LMK04821寄存器時,要驗證配置寄存器操作是否正確,就要有寫有讀,在對應的寄存器內(nèi)寫入對應的數(shù)值,然后進行讀操作,觀察正確性。本次設計是在vivado環(huán)境下進行設計,通過添加VIO的IP核,來控制讀寫操作。同時,添加ILA配合VIO來進行讀寫數(shù)據(jù)操作的觀測。別的開發(fā)環(huán)境下思路一樣。
該組信號僅在回讀寄存器時使用,目的是為了驗證寄存器讀寫正確性。
圖3
4、lmk_rst:LMK04821復位信號,用于復位LMK04821,直接和LMK04821芯片相連;
5、3線制SPI信號:
lmk_spi_csn:片選;
lmk_spi_sdio:數(shù)據(jù);
lmk_spi_clk:時鐘;
6、可編程管教:主要和LMK04821內(nèi)部的PLL相關,本次設計中默認為0;
lmk_clk_sel0 :sel0;
lmk_clk_sel1 :sel1;
三、 SPI數(shù)據(jù)buffer定義
在本次設計中,SPI配置數(shù)據(jù)buffer,data_reg為24bit,r_w占1bit,箭頭1所指包含W1、W2以及地址位占13bit,具體見SPI時序圖;箭頭2所指數(shù)據(jù)位8bit。
圖4
根據(jù)圖5我們可以知道,要配置LMK04821我們需要配置126個寄存器,這126個寄存器來源參見第一章實戰(zhàn)記錄。
其中,126個寄存器包含必須要配的寄存器、一些無關緊要的寄存器、以及功能實現(xiàn)所需要的寄存器等,有些寄存器需要配置多次。
圖5
四、 SPI時序實現(xiàn)
設計中,我們需要按照順序配置126個寄存器,也就是說SPI要執(zhí)行126次。因此,在代碼實現(xiàn)過程中,注意寄存器配置的順序,并且保證每個寄存器都準確無誤的配置完成,才能進行下一個寄存器的配置。如果在設計中,要求LMK004821實現(xiàn)不同的功能,當配置的寄存器個數(shù)不一致時,在v文件中更改圖6所示的參數(shù)即可。
圖6
下一篇,將詳細介紹jesd_204B IP核應用的相關知識,各位大俠,盡請關注。
原文標題:FPGA項目開發(fā):204B實戰(zhàn)應用-LMK04821代碼詳解(二)
文章出處:【微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602025 -
芯片
+關注
關注
454文章
50460瀏覽量
421971
發(fā)布評論請先 登錄
相關推薦
評論