基于Xilinx的XADC笔记

Xilinx的7系列FPGA和Zynq器件在片上集成了模数转换器和相关的片上传感器(内置温度传感器和功耗传感器),可在系统设计中免去外置的ADC器件,有力地提高了系统的集成度。在最近做的一个项目中,正好用到了这个XADC,既然要用到它,对它的一些基本了解还是要有的,下面给出了一些介绍XDAC的链接和官网的IP手册链接,由于本人比较赖,哈哈,网上有的东西在这里我就不多说了,大家自己点击链接去看看。

https://wenku.baidu.com/view/b0208e654431b90d6c85c7ab.html

http://59.80.44.100/china.xilinx.com/support/documentation/user_guides/ug480_7Series_XADC.pdf

http://59.80.44.100/china.xilinx.com/support/documentation/ip_documentation/xadc_wiz/v3_3/pg091-xadc-wiz.pdf

我着重讲如何使用XDAC IP核,看完上面的链接后对XADC也有了一定的了解,首先我们打开IP核,我这里需要讲的例子是,使用DRP接口采集6路模拟通道电压VP0,VP1,VP5,VP6,VP8,VP9和温度。

IP核的基本配置如下图,每一个选项的意思在手册中都有明确的讲到,参考pg091第三章,大家自己去对照着看看:

注意:Analog sim File Option中的Waveform Type要选择sin,不然仿真顶层文件会跟我的不一致!!!!

基于Xilinx的XADC笔记_第1张图片

基于Xilinx的XADC笔记_第2张图片

基于Xilinx的XADC笔记_第3张图片

基于Xilinx的XADC笔记_第4张图片

IP的GUI界面相信大家都会配置,可是问题就是IP核生成了,我们如何为使用呢?还是老方法,IP核生成后,我们先去生成一个Example:

基于Xilinx的XADC笔记_第5张图片

我们看到生成的IP核Example顶层接口是这样的,并没有看出来如何对IP的接口使用,没关系,别急

基于Xilinx的XADC笔记_第6张图片

我们打开xadc_wiz_0_tb仿真顶层文件,

基于Xilinx的XADC笔记_第7张图片

代码如下:  (注意:在GUI界面仿真应该选择sin波形,否则仿真顶层代码不是这样)

基于Xilinx的XADC笔记_第8张图片

基于Xilinx的XADC笔记_第9张图片

从这个顶层代码基本就能知道接口怎么用了,我们把代码整合一下,去除不能综合的代码,整理后如下:

基于Xilinx的XADC笔记_第10张图片

基于Xilinx的XADC笔记_第11张图片

有tb文件整理过后的代码基本就能进行通道电压的数据采集了,其它通道以此类推。

下面是我实际上板测试用debug抓到的数据,我用到的是4、5、6、7、13、14通道

基于Xilinx的XADC笔记_第12张图片

另外还需要注意的是,我们用户端得到得是ADC的code值,我们还需要将它换算成电压值。

在ug480中第23页有提到温度和电源电压计算公式:

基于Xilinx的XADC笔记_第13张图片

电源电压最大是3v的输入,所以:

                         实际电源电压值=(code/4096)*3

                          温度值=(code*503.975)/4096-273.15

而另外16个通道的电压值,最大只能输入1V电压,所以:

                        16个通道的每个电压值=对应的code/4096

除以4096是因为数据截取的是高12bit的数据,12bit最大到4095

 

总的来说XADC还是比较容易实现的,另外需要注意一点的是在ddr的IP核中mig_7series_0中有调用xdma选项,一般情况下不能同时使用多个xdma,否则编译会报错,提示例化了多个xdma!!!!!如果项目中有单独使用xdma且mig_7series_0也有使用的时候,在mig_7series_0中应该disable  xdma,此时应该将单独使用xdma的IP中采集的温度数据送给mig_7series_0里面去。

 

----------------------2020.05.12 更新------------------------------

最近在使用XADC时,发现有几点注意点:

1.vauxp0~16差分管脚必须要接入到顶层,并且进行管脚约束才能正确采集到电压;

2.channel_out等于0时表示温度的code值,0x10~0x15表示通道0~15的code值,如下图所示:

基于Xilinx的XADC笔记_第14张图片

基于Xilinx的XADC笔记_第15张图片

 

 

**声明:所有文章属于个人在工作中所记下和搜集的笔记,不得转载**

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(FPGA)