ADRV9009 与 zcu102搭建ADI的no os项目
近期忙完手頭的活,難得有時(shí)間繼續(xù)研究一下自己感興趣的事情。一直想著把上半年項(xiàng)目采購(gòu)的一套軟件無(wú)線電的平臺(tái)搭建起來(lái)(ZCU102+ADRV909),近期做了幾個(gè)實(shí)驗(yàn),就把自己做的一點(diǎn)進(jìn)展與大家分享。希望能給感興趣的朋友帶來(lái)一點(diǎn)幫助,也請(qǐng)有經(jīng)驗(yàn)的大神們指點(diǎn)指點(diǎn)。廢話(huà)不多說(shuō),直接進(jìn)入正題。。。。。。
萬(wàn)里長(zhǎng)征第一步,先把系統(tǒng)搭建起來(lái)吧!我是參考我之前搭建 的AD9361+zedboard的no os 項(xiàng)目搭建起來(lái),鏈接:windows 下AD9361的 no-os master 工程搭建_Bronceyang的博客-CSDN博客?其實(shí)ADI公司提供的這些no os 開(kāi)源項(xiàng)目的搭建套路是一樣的。舉一反三就行了。
一、搭建工程需要的文件
需要下載的東西:
HDL:https ://github.com/analogdevicesinc/hdl/releases
No OS:https://github.com/analogdevicesinc/no-OS
注意:下載的hdl版本要和自己的vivado版本配套,我這次用的是vivado2019.2.
下載網(wǎng)速比較慢的話(huà)。可以從我的資源里面下載。
Windows編譯環(huán)境需要安裝Cygwin ,注意安裝過(guò)程中要一定選make 庫(kù)。
參考博客:https://blog.csdn.net/u010356768/article/details/90756742
二、HDL部分搭建
我使用的vivado版本為2019.2,大家根據(jù)自己的實(shí)際情況選擇自己的版本。
三條命令:
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.配置環(huán)境,新增環(huán)境變量,并檢查
2.切換到文件目錄,make一下就ok了,需要等待一段時(shí)間,十多分鐘。
make成功之后,ls查看可以看到多了很多文件。
切換帶Windows文件目錄下可以看到如下,用vivado2019.2 打開(kāi)adrv9009_zcu102.xpr
?打開(kāi)block design 可以看到搭建了起來(lái)的框圖,在軟件界面右上可以看到bit文件也已經(jīng)生成了。
對(duì)部分放大可以看到如下
?
?
?三、軟件部分的搭建
在Vivado編譯環(huán)境下,導(dǎo)出.xas文件,并在vitis 中根據(jù).xas為平臺(tái)搭建應(yīng)用程序工程。
回到no-os-master文件,進(jìn)入一下目錄,打開(kāi)READE文件,文件讓我們根據(jù)自己的硬件平臺(tái)是xilinx還是altera選擇復(fù)制需要用到的文件。
# 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是一個(gè)腳本文件,大家可以直接source 一下就把所有需要用到的文件都復(fù)制過(guò)去了。可以ls查看一下:
最后把a(bǔ)di_hal目錄下的文件都復(fù)制到之前在vitis里面建立的應(yīng)用程序的/src目錄,進(jìn)行編譯一下檢查錯(cuò)誤就可以了,main()函數(shù)在headless.c文件中。
?編譯、上板子,運(yùn)行結(jié)果如下:
串口打印信息: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)頻譜儀上觀察到的頻譜如下:
總結(jié)
以上是生活随笔為你收集整理的ADRV9009 与 zcu102搭建ADI的no os项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Kubernetes 【安全】2. Sy
- 下一篇: 2022世界人工智能大会SAIL奖TOP