1405|4

1539

帖子

2

资源

五彩晶圆(初级)

安路SparkRoad开发板测评(4) ADC IP的使用 [复制链接]

  EG4S20内部带了一个ADC,需要以IP的形式调用。FPGA IP核就当作一个积木来用,和自己编写的逻辑连起来就是了。

  在TD的Tools菜单上选择“IP Generator”,出现对话框后选择新建IP核,然后给IP取一个名称(对应生成的Verilog文件名),确定后出现IP选择对话框,找到ADC

225918a1t2tcctc11orcrt.png

  双击鼠标选择它,出现如下的配置界面:

225918z7ccy1y97cyvbf7i.png

 

  紫色框代表硬件ADC模块,左边是输入,右边是输出。看名称能猜到信号都是什么意思了:eoc和soc分别是End of Conversion与Start of Conversion的意思,pd应该是Power Down吧。输出数据12-bit,只有一路,因此8个模拟输入通道需要选择,在方框中打勾表示使能对应的模拟输入通道,s[2:0] 决定转换哪一个模拟输入。

  再填写一下Component name (需要和之前填写的IP名称一致,我觉是得多此一举),点OK按钮后将生成.v的文件。生成IP的一系列对话框都没有回退功能,界面缺乏说明,不清楚的要另找文档看。

  生成的ADC模块是这样:

225918l52hdtbcbhbiu2yy.png

  上面代码中的 EG_PHY_ADC就当作一个黑盒子好了。新工程中若没有其它模块,它就自动成为顶层,可以直接综合,出来结果:

225918zkp4vrx34vnp9lna.png

 

  注意,没有使用LE资源,也就是不需要额外的逻辑,ADC模块的引脚直接连到FPGA管脚了。现在没有写约束,,管脚是自动分配的。

  注意,模拟输入引脚并不在I/O口列表中,也不能在I/O约束对话框中指定。那么,怎么指派模拟输入引脚呢?很可能模拟输入功能是固定的引脚,因为已经有8个输入通道了,从哪个输入模拟信号是八选一……去SparkRoad板子的电路图上找找线索。

  果然,ADC的8个输入通道是引脚名称标住了的,跟MCU的ADC输入类似。

225918r8bpopbqopp9iwwn.png

  根据电路图看来,在SparkRoad上只有通道1~7可以用。

 

  为了把ADC转换的值呈现出来,我要写一个12位数据转换成十进制,驱动LED数码管的逻辑。在没有CPU的情况下,进行这个转换就要费些工夫了,需要做三次除以10的整数运算。TD里面提供了除法器的IP可以拿来用,不过我不打算用除法,我想就用循环减法来做。

  我的思路是这样的:9999以内的数,先与1000比较,若大于等于1000,就减去1000,千位计数加一,循环;然后与100比较,同理操作百位数字加一,循环;最后与10比较,直到小于10就转换完成了,以时钟周期为代价省去除法器。

225918mrvm463r18cc8n6m.png

  再编写一个LED数码管扫描驱动就简单了,最后写一个顶层,将几个模块连起来工作:

225918i4dfzw6cfjxhkj3g.png

  ADC转换我试着给一个脉冲当soc信号,看看结果的情况。数据输出如果是锁存的话,经过我的十进制转换逻辑给扫描显示,稳定的数字就是结果。

 

  我选择的通道1输入。引脚悬空时,数字会随机跳动。和GND短路,显示数字就稳定在0了。

225918tctcac9zc1zdoonr.jpg

  接一节旧电池测量,读数在1642附近跳动(1643,1641都容易看到,也能看到1640,1644出现)

225918q7g4krzb9p3f9zr4.jpg

  我用万用表测电池电压显示1.321V,测量板子上ADC_REF电压(C18两端)显示3.291V,则换算ADC转换理论值是1644,差不多。

 

  最后测一下ADC转换的时间。将ADC的soc和eoc以及ADC用的时钟引到FPGA脚上接示波器。ADC时钟采用24MHz分频后的1.5MHz. 我的示波器只有两通道,因此一个通道测soc并触发,另一个通道先测时钟保存为参考,再测eoc.

225918li3s4xpxpbb7ebkm.png

  可见转换过程用了15个时钟周期的样子。

  FPGA内带的ADC和MCU带的是类似的,不同点在于FPGA里面直接操作ADC的控制信号,而MCU是读写总线上的ADC控制器的寄存器,是间接操作。


回复

2601

帖子

3

资源

版主

表示没玩过,给你支持,加油!

回复

5832

帖子

18

资源

五彩晶圆(中级)

为什么那个方波中间是折的?

点评

那个是示波器保存的参考,叠加显示的,存的不是采样数据,当成低分辨率贴图理解就是了。  详情 回复 发表于 2022-4-27 23:03
个人签名

默认摸鱼,再摸鱼。2022、9、28


回复

1539

帖子

2

资源

五彩晶圆(初级)

freebsder 发表于 2022-4-27 22:38 为什么那个方波中间是折的?

那个是示波器保存的参考,叠加显示的,存的不是采样数据,当成低分辨率贴图理解就是了。


回复

2546

帖子

2

资源

五彩晶圆(初级)

兄弟手好快呀,本打算这星期搞一下呢。我看了你很受启发


回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表