移植AD9361官方驱动到自己板子上 - HDL移植 - NO OS移植

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

书接上回“利用vivado TCL工具构建AD9361官方驱动 - HDL部分”,在前一文中给出了AD9361官方驱动的HDL工程构建方法,本文主要介绍如何将其裁剪并移植到自己的板子上,同时PS端移植NO OS代码,形成完整的驱动。


一、使用工具及材料

vivado2019.1、SDK2019.1
HDL代码:利用vivado TCL工具构建AD9361官方驱动 - HDL部分”获得的工程
NO OS代码:https://github.com/analogdevicesinc/no-OS
注意:no os代码也分版本,本文下载no-OS-2019_R1.zip版本,至于为什么不用2019_R2或者更新的版本,因为下载下来需要构建并不能直接使用。

二、移植裁剪HDL工程

1、将官方工程从…hdl-2019_r2\projects\fmcomms2\zed文件夹中拷贝到自定义位置,我们将其定义其为目标工程;
2、由于移动了工程位置,直接打开移动后的工程会报一大堆错位,原因是需要在…hdl-2019_r2\library目录将其依赖文件跟着拷贝到目标工程中;
3、在目标工程根目录新建adi_ip文件夹;在这里插入图片描述
4、在…hdl-2019_r2\library目录中找到以下文件夹并拷贝到目标工程的adi_ip目录中;
在这里插入图片描述
5、利用vivado打开目标工程,并设置IP路径为adi_ip目录;
在这里插入图片描述
6、将…adi_ip\commonad_iobuf.v源文件加入工程
在这里插入图片描述
7、至此,工程所需文件皆移植完毕,接下来需要针对硬件板卡进行约束更改,对于没有使用到的外设引脚可以浮空,后续待AD9361正常工作之后,反过来精简;
8、我手里正好有一块我们公司自己的板卡,是7z020+ad9361的架构,首先对照原理图,将不需要的引脚注释;
在这里插入图片描述
9、紧接着修改约束文件,主要就是改引脚编码以及删除多余约束;在这里插入图片描述
10、打开BD,修改ZYNQ IP配置以适配自己板卡,然后重新综合工程,得到自己板卡的HDL工程,为后续应用程序开发打下基础。
注意:由于工程位置移动,vivado找不到原来文件的位置,而在上述步骤中我们以及将所有需要的文件加入工程,所以原来因找不到位置而出错的文件可以将其删除。

3、移植NO OS代码

1、在上述工程的基础上,导出HDL文件;
2、launch SDK,并新建默认工程;
在这里插入图片描述
3、删除src目录下多余文件,只保留lscript.ld文件;
4、解压no-OS-2019_R1.zip文件;
5、进入…no-OS-2019_R1\ad9361\sw文件夹,将以下文件拷贝入src目录;
在这里插入图片描述
6、设置工程include目录,右键点击工程设置;
在这里插入图片描述
7、将src、console_commands、platform_xilinx加入包含目录;
在这里插入图片描述
8、打开config.h文件,进行如下配置;
在这里插入图片描述
9、板卡上电,连接下载器、串口,下载bit文件并运行sotf_2019_r1.elf程序,结果如下;
在这里插入图片描述
10、此时便可以使用命令进行交互了。
注意:串口交互时,输入指令需要带有回车(‘\n’),否则该命令不会执行。

总结

本文详细演示了AD9361驱动的移植过程,到此也只是初步将该芯片驱动起来,真正将其应用到项目中还任重而道远,只希望本文能够起到抛砖引玉的作用;
尽管只是简单地将ad9361驱动起来,在移植到自己板卡的过程中依然遇到许多问题,尽管最后都找到原因并解决,却过程艰辛,对此本人对后来者给出一点建议:
1、移植过程中,如果提示缺少文件,多看看log提示,缺啥就到官方源码里去找;
2、工程抛出的严重警告尽量处理,不然后续可能埋坑;
3、如果移植完所有代码,运行结果失败,首先检查SPI,然后再检查数据接口;
4、数据接口如果出现数字调谐失败,这时可以检查数据引脚约束;
5、最后,一定要用经过验证的硬件板子,不然软硬两头出问题就更难排查了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值