广告

原创 FPGA学习之高速ADC采集

2017-5-18 18:55 1487 1 1 分类: FPGA/CPLD

ADC(Analog-to-Digital Converter,模拟-数字转换器)在硬件电路中是经常见到的器件,音频信号的采集、温度的采集等等,凡是涉及到模拟信号转数字信号的电路,都会用到ADC。

ADC的种类很多,有积分型的、逐次比较型的、SAR型的等等,各有各的优缺点及用途。一般根据实际的项目需求来选择ADC型号。

ADC有一个重要参数就是位宽,什么8位的、12位的、16位的,这其实就是ADC的分辨率,最小能分辨的输入电压大小。假设ADC的位宽为8位,参考电压为5V,最小分辨率为:(1/256*5V)=0.0195V=19.5mV。如果实际项目需要对mV级别的模拟信号进行采集,那么8位的ADC满足不了需求,这个时候需要找更高位的ADC。

在实际的设计中,一个8位的ADC,其有效位并没有8位。由于芯片生产工艺的原因、电路设计的原因、电路板布局的原因等等,在这些因素的影响下,一个8位的ADC,其最后的2-3位是波动的,这个时候最后的2-3位是没有意义的,所以一个8位的ADC真正用到的只有高5-6位。

ADC还有一个常用的参数是采样率,采样率即一秒所能采的点的个数。在这里涉及到一个知识点:采样定律,根据内奎斯特采样定律可知,当采样频率大于等于两倍的输入信号的频率时,可从采集到的数据中恢复出原始信号。但是在实际的应用中,对一个正弦波进行采样时,采样频率至少是输入信号的10倍,这样可以采集到一个完整周期的正弦波信号。

ADC的指标还有好多,比如参考电压、带宽、精度等等,剩下的大家再细细研究哈,这里小编就不一一讲解了~~~~

下面我们来看看今天的主要内容

640

这是今天用到的ADC采集电路,从图中可以看出,ADC采集芯片为TLC5540,且其输出为8根数据线,或者也可以说是并行输出。

还是和之前一样,找TLC5540的数据手册,根据数据手册进行FPGA编程。

640.webp

TLC5540是一个8位的高速ADC,其最大采样率为40MHz。

640.webp (1)

这是TLC5540芯片的时序,从图中可以看出,当OE(输出使能)=0时,在时钟的下降沿,可得到一个8位的数据,这个数据就是输入的模拟电压转化之后对应的数字量。

下面我们根据这两幅图进行FPGA的编程,在FPGA电路板中,系统时钟为50M,我们将其2分频为25M作为ADC的采样时钟。这个时候根据上面提到的采样率至少为输入信号频率的10倍原则,所以输入信号的最大频率为2.5MHz的正弦波。

640.webp (2)

对代码进行全局综合编译之后,开始分配引脚,引脚分配结束之后,我们今天使用Quartus ii的另一种工具:SignalTap II Logic Analysis,即Altera公司的一款内置逻辑分析仪,通过该功能,我们可以得到FPGA硬件运行的实际效果。但是它也有一个弊端,需要消耗FPGA的逻辑单元。

640.webp (3)

点开之后,会出现下图所示的界面,该界面中红色框标注的是比较重要的部分。

1,硬件仿真器

2,需要添加的触发信号,一般以系统时钟为触发信号

3,需要观察的信号,将自己所需的信号添加即可

640.webp (4)

以上三步设置完毕之后,保存,然后退出该界面,再次进行全局编译,编译无误之后,将程序下载入FPGA中,下载完成之后,再次打开该界面,然后点击手动运行图标,便可观察到FPGA实际运行的时序效果图。

640.webp (5)

640 (1)

640 (2)

第一张图的输入信号频率为2.5MHz,第二张图的输入信号频率为1MHz,第三章图的输入信号频率为100kHz。从以上三张图中可以看出,输入信号的频率越小,一个输入信号周期内采集的数据越多,波形越完整,也就是越逼近与实际波形。


更多详细内容,请大家关注微信号公众号“xiaomage_group”查看哟~~~~

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
小马哥电子 2017-08-17 17:17
数字收音机制作(1)
之前一直想做一款数字收音机来着,但是由于各种原因,刚画完原理图就放弃了。这次抽出时间,重新设计方案,制作一款小巧mini型的数字收音机。    本次重新设计方案之后,该收音机目前可具备的功能有:   ...
小马哥电子 2017-06-06 12:11
项目实战之MOS管啸叫
最近做一个点火器项目时要使用单片机的IO口控制一个36V的P沟道MOS管的开关,但是在电路的设计验真阶段,出现了MOS管的啸叫。MOS管竟然啸叫,我的天,这还是第一次碰到。下面我来还原一下场景。 首先...
小马哥电子 2017-05-23 22:21
FPGA学习之基于TLC549的直流电压采集及显示
最近由于毕业论文的事,小编是忙的不可开交,今天抽出点时间写篇文章,冒个泡,以防大家把我给遗忘了,哈哈哈哈~ 言归正传,今天我们的任务是通过FPGA控制TLC549模数转换芯片(ADC)采集直流电压值,...
小马哥电子 2017-05-15 11:19
FPGA学习之基于动态数码管的时钟显示
动态数码管的原理之前已经说过,但是之前说的只是它的工作原理,今天我们来说说动态数码管的应用。今天通过FPGA编程,驱动8个动态数码管显示“时-分-秒”。 下图是4位共阳动态数码管的工作时序。某一时刻控...
小马哥电子 2017-05-12 22:44
FPGA学习之基于74HC164的静态数码管显示
今天我们通过两个静态数码管实现0-99的计数,且每500ms计一个数。 我们首先来看看基于74HC164的静态数码管显示的电路原理图~ 这就是两个静态数码管的原理图。大家从图中可以看出,两个数码管的...
我要评论
0
1
广告
关闭 热点推荐上一条 /2 下一条