ADRV9009 与 zcu102搭建ADI的no os项目
近期忙完手頭的活,難得有時間繼續研究一下自己感興趣的事情。一直想著把上半年項目采購的一套軟件無線電的平臺搭建起來(ZCU102+ADRV909),近期做了幾個實驗,就把自己做的一點進展與大家分享。希望能給感興趣的朋友帶來一點幫助,也請有經驗的大神們指點指點。廢話不多說,直接進入正題。。。。。。
萬里長征第一步,先把系統搭建起來吧!我是參考我之前搭建 的AD9361+zedboard的no os 項目搭建起來,鏈接:windows 下AD9361的 no-os master 工程搭建_Bronceyang的博客-CSDN博客?其實ADI公司提供的這些no os 開源項目的搭建套路是一樣的。舉一反三就行了。
一、搭建工程需要的文件
需要下載的東西:
HDL:https ://github.com/analogdevicesinc/hdl/releases
No OS:https://github.com/analogdevicesinc/no-OS
注意:下載的hdl版本要和自己的vivado版本配套,我這次用的是vivado2019.2.
下載網速比較慢的話。可以從我的資源里面下載。
Windows編譯環境需要安裝Cygwin ,注意安裝過程中要一定選make 庫。
參考博客:https://blog.csdn.net/u010356768/article/details/90756742
二、HDL部分搭建
我使用的vivado版本為2019.2,大家根據自己的實際情況選擇自己的版本。
三條命令:
1. export PATH=$PATH:/cygdrive/e/install_tool/xilinx/Vivado/2019.2/bin 2. cd /cygdrive/e/ADRV9009_pro/hdl-master/projects/adrv9009/zcu102 3. make1.配置環境,新增環境變量,并檢查
2.切換到文件目錄,make一下就ok了,需要等待一段時間,十多分鐘。
make成功之后,ls查看可以看到多了很多文件。
切換帶Windows文件目錄下可以看到如下,用vivado2019.2 打開adrv9009_zcu102.xpr
?打開block design 可以看到搭建了起來的框圖,在軟件界面右上可以看到bit文件也已經生成了。
對部分放大可以看到如下
?
?
?三、軟件部分的搭建
在Vivado編譯環境下,導出.xas文件,并在vitis 中根據.xas為平臺搭建應用程序工程。
回到no-os-master文件,進入一下目錄,打開READE文件,文件讓我們根據自己的硬件平臺是xilinx還是altera選擇復制需要用到的文件。
# Additional required source files:#ifdef ALTERA_PLATFORMcp ../../../include/axi_io.h devices/adi_hal/cp ../../../include/error.h devices/adi_hal/cp ../../../include/spi.h devices/adi_hal/cp ../../../include/gpio.h devices/adi_hal/cp ../../../include/delay.h devices/adi_hal/cp ../../../drivers/spi/spi.c devices/adi_hal/cp ../../../drivers/platform/altera/axi_io.c devices/adi_hal/cp ../../../drivers/platform/altera/altera_spi.c devices/adi_hal/cp ../../../drivers/platform/altera/spi_extra.h devices/adi_hal/cp ../../../drivers/platform/altera/gpio.c devices/adi_hal/cp ../../../drivers/platform/altera/gpio_extra.h devices/adi_hal/cp ../../../drivers/platform/altera/delay.c devices/adi_hal/cp ../../../drivers/axi_core/axi_adc_core/axi_adc_core.c devices/adi_hal/cp ../../../drivers/axi_core/axi_adc_core/axi_adc_core.h devices/adi_hal/cp ../../../drivers/axi_core/axi_dac_core/axi_dac_core.c devices/adi_hal/cp ../../../drivers/axi_core/axi_dac_core/axi_dac_core.h devices/adi_hal/cp ../../../drivers/axi_core/axi_dmac/axi_dmac.c devices/adi_hal/cp ../../../drivers/axi_core/axi_dmac/axi_dmac.h devices/adi_hal/cp ../../../drivers/axi_core/clk_altera_a10_fpll/clk_altera_a10_fpll.c devices/adi_hal/cp ../../../drivers/axi_core/clk_altera_a10_fpll/clk_altera_a10_fpll.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/altera_a10_atx_pll.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/altera_a10_atx_pll.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/altera_a10_cdr_pll.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/altera_a10_cdr_pll.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/altera_adxcvr.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/altera_adxcvr.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_rx.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_rx.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_tx.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_tx.h devices/adi_hal/cp ../../../drivers/frequency/ad9528/ad9528.h devices/adi_hal/cp ../../../drivers/frequency/ad9528/ad9528.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_agc.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_cals.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_error.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_gpio.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_hal.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_jesd204.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_radioctrl.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_rx.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_tx.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_user.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_agc.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_agc_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm_macros.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_cals.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_cals_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_error.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_error_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_gpio.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_gpio_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_hal.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_jesd204.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_jesd204_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_radioctrl.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_radioctrl_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_reg_addr_macros.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_rx.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_rx_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_tx.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_tx_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_user.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_version.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/firmware/talise_arm_binary.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/firmware/talise_stream_binary.h devices/adi_hal/cp ../../../util/util.c devices/adi_hal/cp ../../../include/util.h devices/adi_hal/ #elsecp ../../../include/axi_io.h devices/adi_hal/cp ../../../include/error.h devices/adi_hal/cp ../../../include/spi.h devices/adi_hal/cp ../../../include/gpio.h devices/adi_hal/cp ../../../include/delay.h devices/adi_hal/ cp ../../../drivers/spi/spi.c devices/adi_hal/cp ../../../drivers/platform/xilinx/axi_io.c devices/adi_hal/cp ../../../drivers/platform/xilinx/xilinx_spi.c devices/adi_hal/cp ../../../drivers/platform/xilinx/spi_extra.h devices/adi_hal/cp ../../../drivers/platform/xilinx/gpio.c devices/adi_hal/cp ../../../drivers/platform/xilinx/gpio_extra.h devices/adi_hal/cp ../../../drivers/platform/xilinx/delay.c devices/adi_hal/cp ../../../drivers/axi_core/axi_adc_core/axi_adc_core.c devices/adi_hal/cp ../../../drivers/axi_core/axi_adc_core/axi_adc_core.h devices/adi_hal/cp ../../../drivers/axi_core/axi_dac_core/axi_dac_core.c devices/adi_hal/cp ../../../drivers/axi_core/axi_dac_core/axi_dac_core.h devices/adi_hal/cp ../../../drivers/axi_core/axi_dmac/axi_dmac.c devices/adi_hal/cp ../../../drivers/axi_core/axi_dmac/axi_dmac.h devices/adi_hal/cp ../../../drivers/axi_core/clk_axi_clkgen/clk_axi_clkgen.c devices/adi_hal/cp ../../../drivers/axi_core/clk_axi_clkgen/clk_axi_clkgen.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_adxcvr.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_adxcvr.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_rx.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_rx.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_tx.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/axi_jesd204_tx.h devices/adi_hal/cp ../../../drivers/axi_core/jesd204/xilinx_transceiver.c devices/adi_hal/cp ../../../drivers/axi_core/jesd204/xilinx_transceiver.h devices/adi_hal/cp ../../../drivers/frequency/ad9528/ad9528.h devices/adi_hal/cp ../../../drivers/frequency/ad9528/ad9528.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_agc.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_cals.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_error.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_gpio.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_hal.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_jesd204.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_radioctrl.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_rx.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_tx.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_user.c devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_agc.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_agc_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm_macros.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_arm_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_cals.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_cals_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_error.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_error_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_gpio.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_gpio_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_hal.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_jesd204.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_jesd204_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_radioctrl.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_radioctrl_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_reg_addr_macros.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_rx.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_rx_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_tx.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_tx_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_types.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_user.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/api/talise_version.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/firmware/talise_arm_binary.h devices/adi_hal/cp ../../../drivers/rf-transceiver/talise/firmware/talise_stream_binary.h devices/adi_hal/cp ../../../util/util.c devices/adi_hal/cp ../../../include/util.h devices/adi_hal/ #endifREADE是一個腳本文件,大家可以直接source 一下就把所有需要用到的文件都復制過去了。可以ls查看一下:
最后把adi_hal目錄下的文件都復制到之前在vitis里面建立的應用程序的/src目錄,進行編譯一下檢查錯誤就可以了,main()函數在headless.c文件中。
?編譯、上板子,運行結果如下:
串口打印信息:Hello rx_clkgen: MMCM-PLL locked (245760000 Hz) tx_clkgen: MMCM-PLL locked (122880000 Hz) rx_os_clkgen: MMCM-PLL locked (122880000 Hz) rx_adxcvr: OK (9830400 kHz) tx_adxcvr: OK (4915200 kHz) rx_os_adxcvr: OK (4915200 kHz) talise: Device Revision 192, Firmware 6.0.2, API 3.6.0.527765581332480005 talise: Calibrations completed successfully rx_jesd status:Link is enabledMeasured Link Clock: 245.786 MHzReported Link Clock: 245.760 MHzLane rate: 9830.400 MHzLane rate / 40: 245.760 MHzLMFC rate: 7.680 MHzLink status: DATASYSREF captured: YesSYSREF alignment error: No tx_jesd status:Link is enabledMeasured Link Clock: 122.893 MHzReported Link Clock: 122.880 MHzLane rate: 4915.200 MHzLane rate / 40: 122.880 MHzLMFC rate: 7.680 MHzSYNC~: deassertedLink status: DATASYSREF captured: YesSYSREF alignment error: No rx_os_jesd status:Link is enabledMeasured Link Clock: 122.893 MHzReported Link Clock: 122.880 MHzLane rate: 4915.200 MHzLane rate / 40: 122.880 MHzLMFC rate: 7.680 MHzLink status: DATASYSREF captured: YesSYSREF alignment error: No tx_dac: Successfully initialized (245785522 Hz) rx_adc: Successfully initialized (245785522 Hz)頻譜儀上觀察到的頻譜如下:
總結
以上是生活随笔為你收集整理的ADRV9009 与 zcu102搭建ADI的no os项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes 【安全】2. Sy
- 下一篇: GAN(对抗生成网络)原理及数学推导