介绍
利用SDR做一个收音机是所有入门SDR都会做的小项目,简单直观易上手的特点和“Hello World”、流水灯一样。本篇文章就带领大家利用AD936X+ZYNQ平台SDR做个SDR。
首先介绍一下硬件:
1、ZYNQ7020+AD9364,Analog Devices AD9364- BBCZ集成1x1 RF Agile Transceiver™+Xilinx Zynq XC7Z020-1CLG400I AP SoC(用于数字处理)
2、7020的介绍:https://china.xilinx.com/support/documentation/boards_and_kits/zc702_zvik/ug850-zc702-eval-bd.pdf
3、AD9364:详见中文手册。
注意1:
一些ZYNQ+AD936x方案基本都是ADI官方AD-FMCOMMS [2、3、4、5] –EBZ(区别详见注意2)的变形体,所有的设计资料都可以直接利用官方的工程。同时,官方也针对一些常用的开发板和开源硬件做了u-boot、kernel和文件系统,使用过程中只需要准备一个SD/FT卡和读卡器即可,下面的步骤也分为在官方列表中的硬件和不在官方硬件的两种情况搭建系统;
注意2:
板卡 | AD936x器件 | 同时发送/接收 | Tx(范围) | Rx(范围) | 目的 | 连接器 |
ADALM-PLUTO | 1个AD9363 | 1 x 1 | 1(325-3800 MHz) | 1(325-3800 MHz) | 主动学习模块 | 台积电 |
ADRV9364-Z7020 | 1个AD9364 | 1 x 1 | 1(2400-2500 MHz) | 1(2400-2500 MHz) | 高度集成的模块系统 | 台积电 |
ADRV9361-Z7035 | 1个AD9361 | 2 x 2 | 2(2400-2500 MHz) | 2(2400-2500 MHz) | 高度集成的模块系统 | 台积电 |
AD-FMCOMMS2-EBZ | 1个AD9361 | 2 x 2 | 2(2400-2500 MHz) | 2(2400-2500 MHz) | 窄范围内的最佳射频性能 | FMC-LPC |
AD-FMCOMMS3-EBZ | 1个AD9361 | 2 x 2 | 2(70-6000 MHz) | 2(70-6000 MHz) | 软件测试和波形开发 | FMC-LPC |
AD-FMCOMMS4-EBZ | 1个AD9364 | 1 x 1 | 1(2400-2500 MHz) | 1(2400-2500 MHz) | FMC-LPC | |
AD-FMCOMMS5-EBZ | 2个AD9361 | 4 x 4 | 4(2400-2500 MHz) | 4(2400-2500 MHz) | MIMO测试平台,可以在RF域中同步 | 2个FMC-LPC |
官方列表中板卡应用
官方的支持板卡如下所示:
Directory on the SD image | |
1 | socfpga_arria10_socdk_ad9172_fmc |
2 | socfpga_arria10_socdk_adrv9009 |
3 | socfpga_arria10_socdk_adrv9371 |
4 | socfpga_arria10_socdk_daq2 |
5 | socfpga_arria10_socdk_fmclidar1 |
6 | socfpga_cyclone5_sockit_arradio |
7 | zynq-adrv9361-z7035-bob |
8 | zynq-adrv9361-z7035-bob-cmos |
9 | zynq-adrv9361-z7035-fmc |
10 | zynq-adrv9361-z7035-packrf |
11 | zynq-adrv9364-z7020-bob |
12 | zynq-adrv9364-z7020-bob-cmos |
13 | zynq-adrv9364-z7020-packrf |
14 | zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb |
15 | zynqmp-zcu102-rev10-ad9172-fmc-ebz-mode4 |
16 | zynqmp-zcu102-rev10-ad9361-fmcomms2-3 |
17 | zynqmp-zcu102-rev10-ad9361-fmcomms5 |
18 | zynqmp-zcu102-rev10-ad9364-fmcomms4 |
19 | zynqmp-zcu102-rev10-adrv9002 |
20 | zynqmp-zcu102-rev10-adrv9008-1 |
21 | zynqmp-zcu102-rev10-adrv9008-2 |
22 | zynqmp-zcu102-rev10-adrv9009 |
23 | zynqmp-zcu102-rev10-adrv9371 |
24 | zynqmp-zcu102-rev10-adrv9375 |
25 | zynqmp-zcu102-rev10-fmcdaq2 |
26 | zynqmp-zcu102-rev10-fmcdaq3 |
27 | zynqmp-zcu102-rev10-fmclidar1 |
28 | zynq-zc702-adv7511 |
29 | zynq-zc702-adv7511-ad9361-fmcomms2-3 |
30 | zynq-zc702-adv7511-ad9361-fmcomms5 |
31 | zynq-zc702-adv7511-ad9364-fmcomms4 |
32 | zynq-zc706-adv7511 |
33 | zynq-zc706-adv7511-ad6676-fmc |
34 | zynq-zc706-adv7511-ad9172-fmc-ebz |
35 | zynq-zc706-adv7511-ad9265-fmc-125ebz |
36 | zynq-zc706-adv7511-ad9361-fmcomms2-3 |
37 | zynq-zc706-adv7511-ad9361-fmcomms5 |
38 | zynq-zc706-adv7511-ad9361-fmcomms5-ext-lo-adf5355 |
39 | zynq-zc706-adv7511-ad9364-fmcomms4 |
40 | zynq-zc706-adv7511-ad9434-fmc-500ebz |
41 | zynq-zc706-adv7511-ad9625-fmcadc2 |
42 | zynq-zc706-adv7511-ad9625-fmcadc3 |
43 | zynq-zc706-adv7511-ad9739a-fmc |
44 | zynq-zc706-adv7511-adrv9008-1 |
45 | zynq-zc706-adv7511-adrv9008-2 |
46 | zynq-zc706-adv7511-adrv9009 |
47 | zynq-zc706-adv7511-adrv9371 |
48 | zynq-zc706-adv7511-adrv9375 |
49 | zynq-zc706-adv7511-fmcdaq2 |
50 | zynq-zc706-adv7511-fmcdaq3-revC |
51 | zynq-zc706-adv7511-fmcjesdadc1 |
52 | zynq-zc706-adv7511-fmclidar1 |
53 | zynq-zc706-adv7511-fmcomms11 |
54 | zynq-zed-adv7511 |
55 | zynq-zed-adv7511-ad9361-fmcomms2-3 |
56 | zynq-zed-adv7511-ad9364-fmcomms4 |
57 | zynq-zed-adv7511-ad9467-fmc-250ebz |
58 | zynq-zed-adv7511-cn0363 |
59 | zynq-zed-imageon |
上边每一个平台的介绍就不一一展开了,可以通过下面的网站自行查看(https://wiki.analog.com/resources/tools-software/linux-software/zynq_images#preparing_the_image)支持大约60种不同使用组合,基本可以覆盖市场上80%的应用场景。接下来针对我们的应用硬件进行设置。
1、下载SD卡镜像
镜像包含U-boot、kernel和文件系统。
打开下面网址:
https://wiki.analog.com/resources/tools-software/linux-software/zynq_images#preparing_the_image
找到下面截图位置:
不同版本的镜像文件,选择最新的即可,下载下来是一个.xz文件,windows系统下需要先解压,解压出来就是我们需要的.img文件。
接下来准备一个16GB以上内存的SD/TF卡,通过读卡器接到电脑上。
准备一个SD卡刻录软件,本人习惯使用Win32DiskImager,打开软件,选择下载下来的img文件,具体设置如下:
第一步:选择下载下来的img文件;
第二步(可选):勾选MD5 Hash,会生成第一步选择的文件的MD5 Hash值,和官网的值进行对比,防止下载下来的文件被损坏,浪费时间去验证;
第三步:选择SD/TF卡对应的盘符,一定要仔细核对防止损坏其他卡;
第四步:点击WRITE,向卡内写入文件;
第五步:等待完成。
2、复制文件到对应位置
烧写完毕的卡在windows系统下只能显示boot分区,先看下分区下都有哪些文件:
每个办卡的u-boot和设备树分别在对应的文件夹下:
每个文件夹下的文件:
SD卡内部还包括内核+u-boot环境变量
其中uImage(内核)在《zynq-common》文件夹下,也需要拷贝到SD卡的根目录下,拷贝完如上图所示。
文件系统:
文件系统需要在Linux系统内查看(WINDOWS不支持),具体如下:
最后就是在上面介绍的boot分区内将u-boot和设备树拷贝到SD卡根分区内,将和自己匹配的硬件平台内的文件拷贝到SD卡根目录内,本人使用的是《zynq-adrv9364-z7020-bob-cmos》所以把内部的下图所示的三个文件:
拷贝到SD卡根目录:
提示替换原来的文件即可,接下来可以根据需求修改环境变量文本(默认不需要),连接平台的串口+上电就可以看到完整的系统打印信息,其中串口设置如下:
目前为止AD936X+ZYNQ利用官方提供的镜像搭建平台的过程已经完成,可以尽情玩耍了。
下一篇文章搭建收音机应用及非官方板卡应用。
- END -
NOW现在行动!
推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程【Vivado使用误区与进阶】总结篇【Vivado那些事】Vivado下头文件使用注意事项【Vivado那些事】Vivado中常用的快捷键(一)F4键【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
HDL Designer Series(HDS)介绍
SystemVerilog数字系统设计_夏宇闻 PDF
Verilog 里面,always,assign和always@(*)区别
FPGA上如何求32个输入的最大值和次大值:分治新年愿望是什么?先送大家一波开发软件谈谈FPGA(入门)学习的两种方零基础入门FPGA,如何学习?【Vivado那些事】FPGA配置失败,无法启动怎么办
你会在github上找项目吗?
图书推荐|ARM Cortex-M0 全可编程SoC原理及实现
简谈:如何学习FPGARISC-V再进阶!世界首款5纳米RISC-V SOC成功流片!
几款开源SDR平台
Xilinx 推出 Kria 自适应系统模块产品组合,在边缘加速创新和 AI应用
RISC-V指令集架构介绍及国内外厂商介绍
Vitis尝鲜(一)
SDR/无线设计中LNA和PA的基本原理
拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!
一文最全科普FPGA技术知识
首个中文CPU指令规范 龙芯推出LoongArch基础架构手册
你见过1-bit CPU吗?高级FPGA设计技巧!多时钟域和异步信号处理解决方案
【Vivado那些事】Vivado中电路结构的网表描述
ZYNQ中裸机开发和Linux开发有什么区别?
现代计算机的雏形-微型计算机MCS-4
【每周一问】如何控制加载FPGA程序时,Xilinx FPGA的IO管脚输出高低电平
【Vivado那些事】vivado生成.bit文件时报错-ERROR: [Drc 23-20]
AD9361 和Zynq及其参考设计说明1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程谈谈Xilinx FPGA设计的实现过程
点击上方字体即可跳转阅读