用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(2)——软件程序调试篇

用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(1)——硬件平台搭建篇.

用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(2)——软件程序调试篇.

用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(2)——软件程序调试篇


全文以在Xilinx xc7z020clg400-2平台下控制AD7616为例讲解,对于其他xilinx平台、其他ADI芯片方法都是差不多的


1、下载准备文件

大家可以参考硬件平台搭建篇里面怎么能进到下图的界面,然后选择自己的开发平台对应的Release Notes,进去之后到网页下方找到这个No-Os repository然后进去该页面,下载这个压缩包。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载好之后在这个路径no_OS\no-OS-2019_R1\ad7616-sdz里面找到SDK工程需要的源文件,这些源文件是对应于ADI这个型号的评估板,所有需要的都是后缀是.h和.c的文件。
在这里插入图片描述
在这里插入图片描述

2、调试软件程序

在上一篇博客中,我们完成了硬件平台的搭建并且编译成功,这个时候launch SDK,然后在SDK里面新建Application project,选择一个空白模板,将NO-OS中的no-OS-2019_R1\ad7616-sdz路径下的这几个文件复制到工程的scr文件夹中
在这里插入图片描述
在这里插入图片描述
这里说一个官方给的sdk程序中一个错误的地方,从IP库ad7616的HDL代码中可以知道,它的读偏移地址是0x113,写是0x114,而且这个地址是实际偏移地址右移2位之后得到的,这个可以到HDL程序中查证(因为一个地址占了4B)。所以0x113和0x114乘以4才是sdk程序中实际的偏移地址。因为官方漏写了0x448地址本来的东西,然后把下面读和写的偏移地址上移上来,不改这两个参数会导致无法读写AD7616的寄存器。截图3是我更正之后的。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
按照上面修改中,官方给的程序就可以用了,但是程序中没有写显示程序。从这行代码知道采集的结果写到了这个地址,查看调用函数知道,这个地址是ADC_DDR_BASEADDR,所以这里写一个读程序。这个时候结果就会通过串口打印出来,然后根据实际情况设置串口参数,运行程序就可以看到打印的数据了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
程序默认是采集V0A和V0B通道的电压,采集电压范围是-10~+10v,假如要修改可以自己去看AD7616的芯片手册。下面是我把采样改到V4A和V4B,采集范围正负5v。
在这里插入图片描述

在这里插入图片描述
其中一个采集通道接3.3v,一个接地的采集结果。根据芯片手册给的计算方法,结果正确,调试成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面再展示一个我封装的采集16个通道的程序,因为我看芯片手册,没找到轮询的方式采集的配置,所以每次采集完两个通道,再立马换到下一个通道。这里说一下,为什么ad7616_capture_parallel中的参数配置是每个通道采样两次。因为采样一次,在DMA传输时会出错,导致写DDR的时候会把相邻的两次32位数据写到同一个DDR地址,尽管我DDR的地址确定已经做了累加,可能是ADI写的IP核自身的问题。因为每次采集的数据是32位,且采样两次。所以DDR的地址每次是加8。

还有函数头尾都有DDR cache失能和使能,因为在打印信息里面看到数据采集的是对的,但是和通道对不上,即采样的16个通道的数据都有,且是对的,但是个别数据顺序和通道顺序对不上。怀疑读写DDR的时候真实的数据可能在cache中。所以先禁言DDR cache,让CPU直接操作DDR。测了几次没出问题,还需要多验证几次,目前未验证。

放一篇DDR cache博客 Zynq Cache问题的解决方法
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 米联客02是一本关于Xilinx Zynq裸机开发的书籍,2019年版。该书详细介绍了Zynq系列SoC的基本知识和裸机开发的流程,对于想要深入了解和掌握Zynq开发的人来说是一本不错的参考资料。 该书首先介绍了Zynq系列SoC的基本架构和特点,包括ARM Cortex-A9处理器和可编程逻辑的结合,以及内部的外设模块和扩展接口。读者可以对Zynq SoC的组成和工作原理有一个全面的了解。 接着,书中详细介绍了如何搭建和配置开发环境,包括软件工具的安装和配置,硬件开发板的准备以及基本的调试方法。读者可以根据书中的指导逐步完成一个完整的裸机开发环境的搭建。 在开发环境搭建完成后,书中介绍了裸机开发的基本流程和方法。从初始化硬件到编写驱动程序,再到应用程序开发,读者可以学习到如何从零开始进行Zynq裸机开发。 此外,书中还介绍了一些常用的外设驱动开发技巧和调试方法,如中断处理、DMA数据传输等。这些内容对于进行高性能嵌入式系统开发的人来说非常有用。 总的来说,米联客02_xilinx zynq裸机2019版是一本全面介绍Zynq裸机开发的书籍。通过学习该书,读者可以系统地掌握Zynq SoC的基本知识和裸机开发的流程,从而能够独立进行Zynq应用的开发调试工作。 ### 回答2: 米联客02_Xilinx Zynq裸机2019版是一本关于Xilinx Zynq系列芯片的裸机开发指南。在这本书中,作者详细介绍了Zynq芯片的架构和特性,以及如何在没有操作系统支持的情况下进行裸机开发。 首先,书中介绍了Zynq芯片的核心架构,包括ARM Cortex-A9双核处理器和FPGA逻辑。作者解释了如何使用Zynq的双核处理器进行程序的运行和管理,并且详细介绍了如何配置和操作FPGA逻辑,以满足不同的应用需求。 然后,书中提供了丰富的实例和案例,来帮助读者理解和掌握Zynq芯片的裸机开发技术。这些实例包括如何配置中断、串口通信、外设驱动、内存管理等。通过这些实例,读者可以了解裸机开发的基本原理和技巧,以及如何在没有操作系统的情况下,实现各种功能和应用。 此外,书中还介绍了一些常用的开发工具和调试技巧,如SDK工具链、JTAG调试等。这些工具和技巧可以帮助开发者更加高效地进行调试和优化,提高开发效率和质量。 总之,米联客02_Xilinx Zynq裸机2019版是一本非常实用和详细的裸机开发指南,适用于对Zynq芯片有兴趣的开发者和工程师。无论是初学者还是有经验的开发者,都可以通过这本书学习到丰富的知识和技巧,在Zynq芯片上进行高效的裸机开发

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值