Building a Radio with AD936x and ZYNQ (Part 1)

Building a Radio with AD936x and ZYNQ (Part 1)

Building a Radio with AD936x and ZYNQ (Part 1)

Introduction

Using SDR to create a radio is a small project that everyone starting with SDR should do; it is simple, intuitive, and easy to get started, just like “Hello World” or the blinking LED. This article will guide everyone in using the AD936X + ZYNQ platform SDR to make an SDR.

“AD9361 and Zynq and its Reference Design Description”

First, let’s introduce the hardware:

1. ZYNQ7020 + AD9364, Analog Devices AD9364- BBCZ integrated 1×1 RF Agile Transceiver™ + Xilinx Zynq XC7Z020-1CLG400I AP SoC (for digital processing)

2. Introduction to 7020:https://china.xilinx.com/support/documentation/boards_and_kits/zc702_zvik/ug850-zc702-eval-bd.pdf

3. AD9364: See the Chinese manual.

Note 1:

Some ZYNQ + AD936x solutions are basically modified versions of the official ADI’s AD-FMCOMMS [2, 3, 4, 5] –EBZ (the differences are detailed in Note 2), and all design materials can be directly utilized from the official project. At the same time, the official has also provided u-boot, kernel, and file systems for some commonly used development boards and open-source hardware; during the process, you only need to prepare an SD/FT card and a card reader. The following steps are divided into two situations: building the system on official listed hardware and hardware not listed officially;

Note 2:

Board

AD936x Device

Simultaneous Transmit/Receive

Tx (Range)

Rx (Range)

Purpose

Connector

ADALM-PLUTO

1 AD9363

1 x 1

1 (325-3800 MHz)

1 (325-3800 MHz)

Active learning module

Taiwan Semiconductor Manufacturing Company

ADRV9364-Z7020

1 AD9364

1 x 1

1 (2400-2500 MHz)

1 (2400-2500 MHz)

Highly integrated module system

Taiwan Semiconductor Manufacturing Company

ADRV9361-Z7035

1 AD9361

2 x 2

2 (2400-2500 MHz)

2 (2400-2500 MHz)

Highly integrated module system

Taiwan Semiconductor Manufacturing Company

AD-FMCOMMS2-EBZ

1 AD9361

2 x 2

2 (2400-2500 MHz)

2 (2400-2500 MHz)

Best RF performance in a narrow range

FMC-LPC

AD-FMCOMMS3-EBZ

1 AD9361

2 x 2

2 (70-6000 MHz)

2 (70-6000 MHz)

Software testing and waveform development

FMC-LPC

AD-FMCOMMS4-EBZ

1 AD9364

1 x 1

1 (2400-2500 MHz) 1 (70-6000 MHz)

1 (2400-2500 MHz) 1 (70-6000 MHz)

FMC-LPC

AD-FMCOMMS5-EBZ

2 AD9361

4 x 4

4 (2400-2500 MHz) 4 (70-6000 MHz)

4 (2400-2500 MHz) 4 (70-6000 MHz)

MIMO testing platform, can synchronize in the RF domain

2 FMC-LPC

Building a Radio with AD936x and ZYNQ (Part 1)

Official list of board applications

The officially supported boards are as follows:

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

Each platform introduction above will not be detailed; you can check the following website for yourself (https://wiki.analog.com/resources/tools-software/linux-software/zynq_images#preparing_the_image), supporting about 60 different combinations, which can basically cover 80% of the application scenarios in the market. Next, we will set up our application hardware.

1. Download the SD card image

The image includes U-boot, kernel, and file system.

Open the following URL:

https://wiki.analog.com/resources/tools-software/linux-software/zynq_images#preparing_the_image

Find the location in the screenshot below:

Building a Radio with AD936x and ZYNQ (Part 1)

Different versions of the image files, just choose the latest one, and the downloaded file is a .xz file, which needs to be extracted under Windows, resulting in the .img file we need.

Building a Radio with AD936x and ZYNQ (Part 1)

Next, prepare an SD/TF card with more than 16GB of memory and connect it to the computer via a card reader.

Prepare an SD card burning software; I prefer using Win32DiskImager. Open the software, select the downloaded .img file, and set it up as follows:

Building a Radio with AD936x and ZYNQ (Part 1)

Step 1: Select the downloaded .img file;

Step 2 (optional): Check MD5 Hash, which will generate the MD5 Hash value for the selected file in Step 1, and compare it with the official value to prevent the downloaded file from being corrupted, wasting time on verification;

Step 3: Select the corresponding drive letter for the SD/TF card, be sure to verify it carefully to avoid damaging other cards;

Step 4: Click WRITE to write the file to the card;

Step 5: Wait for completion.

2. Copy files to the corresponding location

After burning, the card can only display the boot partition under Windows; first, check which files are under that partition:

Each board’s u-boot and device tree are in the corresponding folders:

Building a Radio with AD936x and ZYNQ (Part 1)

Files in each folder:

Building a Radio with AD936x and ZYNQ (Part 1)

The SD card also includes the kernel + u-boot environment variables

Building a Radio with AD936x and ZYNQ (Part 1)

The uImage (kernel) is in the “zynq-common” folder, and it also needs to be copied to the root of the SD card, as shown in the previous image.

File system:

The file system needs to be viewed in a Linux system (WINDOWS does not support it), as follows:

Building a Radio with AD936x and ZYNQ (Part 1)

Finally, in the boot partition mentioned above, copy the u-boot and device tree to the root partition of the SD card, and copy the files from the hardware platform that matches yours to the root directory of the SD card. I am using the “zynq-adrv9364-z7020-bob-cmos”, so I copied the three files shown in the image below:

Building a Radio with AD936x and ZYNQ (Part 1)

Copy to the root directory of the SD card:

Building a Radio with AD936x and ZYNQ (Part 1)

Just replace the original files, then modify the environment variable text as needed (default not required), connect the platform’s serial port + power on, and you can see the complete system printing information, where the serial port settings are as follows:

Building a Radio with AD936x and ZYNQ (Part 1)

So far, the process of building the AD936X + ZYNQ platform using the official image is complete, and you can enjoy it now.

The next article will cover building radio applications and unofficial board applications.

– END –

Building a Radio with AD936x and ZYNQ (Part 1)

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原理及实现

简谈:如何学习FPGA
RISC-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设计的实现过程



点击上方字体即可跳转阅读

Leave a Comment

×