AD9361 官方例程

6 篇文章 62 订阅
4 篇文章 6 订阅

AD9371 系列快速入口

AD936x 系列快速入口

SW部分在:
AD9361 官方例程详解(一)AD9361 官方例程详解(二)

MSK通信,物理层:MSK调制MSK接收

正在进行 OFDM调制(一)

基于ZYNQ与AD9361的802.11a数据单元PPDU的OFDM发射实现


一、ADI官方资料

1.1 介绍

HDL参考设计介绍:AD9361 HDL Reference Designs

无操作系统介绍:AD9361 No-OS Software

1.2 下载 和 使用

HDL下载:Download HDL

在Vivado中构建HDL:Building HDL

No-OS下载:Download No-OS

1.3 相关资料

ADI参考设计HDL用户指南

AD9361 无操作系统文档介绍 (包含驱动程序、头文件、项目等):AD9361 Doxygen Documentation,例如下图为文档中项目部分讲解框图,可以帮助我们加快学习
在这里插入图片描述
自定义或修改 AD9361 设备驱动(介绍了No-OS 中主函数的参数含义):AD9361 Device Driver Customization

二、HDL 和 sw

2.1 构建HDL

首先根据HDL发行说明选择Vivado版本,最新的可能bug比较多点,我选用得是hdl_2019_r1,这个版本需要Vivado 2018.3,在Download HDL中选择hdl_2019_r1分支,如下图所示,下载好zip文件
在这里插入图片描述
Windows不支持GNU Make,Windows系统最好使用Cygwin来构建,安装Cygwin时,选择“ make”和“ git”软件包,后续要用。不推介手动TCL构建,因为构建项目前,它所需的库也必须构建,太多了,所需的库构建不全会报错,而且特别费时间。

  • 需要把 Cygwin 的安装路径D:\cygwin64\bin添加到系统变量里,如何添加环境变量可以去查
  • 把vivado的安装路径添加到Cygwin PATH环境变量中,修改~\cygwin64\home\Administrator路径下的’.bashrc’文件,最后一行添加如下图所示
    在这里插入图片描述
export PATH=$PATH:/cygdrive/E/xilinx2018/Vivado/2018.3/bin
E/xilinx2018/Vivado/2018.3/bin  是vivado的安装路径

利用which git ,which make,which vivado 进行测试,如果设置正确,这些命令将返回有效路径。
在这里插入图片描述
在cygwin里将路径切换到解压的HDL路径下面,再执行make命令

cd F:/AD9361/hdl-hdl_2019_r1/projects/fmcomms2/zc706 (注意为/,直接复制的地址为\,需要更正)
make
  • F:\AD9361\hdl-hdl_2019_r1\projects\fmcomms2\zc706,是需要构建的hdl的地址

make首先构建所有库,然后构建项目,等10几分钟,如下图所示,构建完成,项目构建成功后,hdf文件应位于“ sdk”文件夹中
在这里插入图片描述
在文件路径中找到xpr文件,在Vivado中打开
在这里插入图片描述

2.2 sw

大部分情况下仅靠HDL无法做任何有用的事情,需要在处理器上运行软件才能进行设计,ADI提供两种方案,Linux和No-OS,我们用No-OS方法。

2.2.1 创建项目

No-OS驱动程序在Download No-OS下载和HDL相匹配的2019_R1分支

在vivado中启动SDK 2018.3,然后创建一个新的应用程序项目:文件→新建→应用程序项目。
在这里插入图片描述
在这里插入图片描述
Project name : 项目名称
use default location : 使用默认地址
OS Platform :单板 还是 Linux
Hardware Platform :使用通过Vivado生成的硬件平台规范文件 system_top.hdf
processor :两个ARM核中的ARM 0
Language :C语言
Board Support Package : 板级支持包 ,新建
next ,选择“空应用程序模板”,然后单击“完成”,如下图所示,
在这里插入图片描述
需要根据自己的需求正确设置 Stack 和 Heap 的大小,如局部变量较多,增大Stack,某些应用程序(例如FMCOMMSx)需要增加HEAP大小才能进行动态内存分配,官方建议使用Microblaze处理器时,确保HEAP大小至少为0x100000。Stack 和 Heap 初始大小都为 0x2000。

2.2.2 项目配置

No-OS 解压后,将~:\AD9361\no-OS-2019_R1\ad9361 文件夹下的sw文件全部复制到 SDK 中工程中的src 文件中 ~:\AD9361\hdl-hdl_2019_r1\projects\fmcomms2\AD9361\fmcomms2_zc706.sdk\AD9361\src

根据所需设备配置,从config.h头文件中取消注释(没正确取消注释,程序不能正确运行)

//#define CONSOLE_COMMANDS 
#define XILINX_PLATFORM
//#define ALTERA_PLATFORM
//#define FMCOMMS5
//#define ADI_RF_SOM
//#define ADI_RF_SOM_CMOS
#define ADC_DMA_EXAMPLE
//#define ADC_DMA_IRQ_EXAMPLE
#define DAC_DMA_EXAMPLE
//#define AXI_ADC_NOT_PRESENT
//#define TDD_SWITCH_STATE_EXAMPLE

//#define CONSOLE_COMMANDS :可选,使用一些控制命令来配置或获取AD9361器件当前信息,可以通过连接到开发板的UART来传输命令

#define XILINX_PLATFORM: 我使用的是 xilinx 设备 取消注释

//#define ALTERA_PLATFORM :不取消

//#define FMCOMMS5 : 我的是FMCOMMS3,不取消

//#define ADI_RF_SOM 和 //#define ADI_RF_SOM_CMOS :不取消,取消注释时,xo-disable-use-ext-refclk-enable为1,会使用外部refclk

#define ADC_DMA_EXAMPLE :取消,可以使用adc_capture函数通过DMA获取IQ数据

//#define ADC_DMA_IRQ_EXAMPLE :不取消,先不涉及中断部分

#define DAC_DMA_EXAMPLE: 取消注释,官方例程的正弦波数据写入DDR,通过DMA将数据传给AD9361,不取消时使用DDS产生数据传给AD9361

//#define AXI_ADC_NOT_PRESENT:不取消,取消后不能对AD9361发数据和取数据

//#define TDD_SWITCH_STATE_EXAMPLE:不取消,例程默认是FDD,取消后是AD9361的TDD模式ensm转移例程

sw文件复制到src文件中 ,sdk会自动编译,可能会报错,如下所示
在这里插入图片描述
src文件夹中存在多个文件夹,头文件路径包括文件夹的所有路径:工程右击 →在C/C++ Build Settings → Tool Settings →ARM v7 gcc compiler → Directories 部分,然后添加以下文件夹的路径。
在这里插入图片描述
在这里插入图片描述
无错误后sw项目构建完成,可以将软件部分的程序下载到ARM中运行调试 。

首先可以在SDK中对Zynq的FPGA部分进行编程,通过单击Xilinx → Program FPGA 来对FPGA进行编程。
在这里插入图片描述
对FPGA进行编程之后,再选择Run → Run Configurations…,创建一个新的Run Configuration,在Run Configuration窗口中,选择Xilinx C / C ++ application (System Debugger),双击或者右击New,详细过程可见 zynq zc706 JTAG调试 部分。
在这里插入图片描述
之后Target Setup 配为

Debug Type :Standalone Application Debug
Initialization file :ps7_init.tcl
Run ps7_init :勾选
Run ps7_post_config options :勾选
Program FPGA :可以勾选,对FPGA部分进行编程
在这里插入图片描述

Application部分
定义当前的项目名称和应用程序可执行文件
在这里插入图片描述
完成run configuration后,单击Run按钮来启动

有需要的话可以在 SDK Terminal 使用UART捕获示例程序AD9361的输出(详见 AD9361 官方例程详解(二)
在这里插入图片描述
波特率: 115200bps
数据: 8位
奇偶校验:无
停止位: 1位
流量控制:无

  • 26
    点赞
  • 222
    收藏
    觉得还不错? 一键收藏
  • 48
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值