zxopenljx 发表于 2020-11-30 22:32:34

至芯入门课程《基于FPG 的数字电压表》设计

原文链接:https://mp.weixin.qq.com/s/r43lpZii7zbOcajfd2ljbw

设计背景:


模数转换器,又称 A/D 转换器,简称 ADC,通常是指一个将模拟信号转换为抗干扰性更强的数字信号的电子器件。一般的 ADC 是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小,故任何一个 ADC 都需要一个参考模拟量作为转换标准。比较常见的参考标准为最大的可转换信号大小,而输出的数字量则表示输入信号相对于参考信号的大小。本设计则通过对模数转换芯片(TLC549)的采样控制,实现一个简易的数字电压表。

02

设计原理:
TLC549 典型的配置电路如下图所示:


TLC549 的端口描述如下:

TLC549 是一个 8 位的串行模数转换器,A/D 转换时间最大为 17us,最大转换速率为 4MHz。下图为 TLC549 的访问时序,从图中可以看出,TLC549 的使用只需对外接输入输出时钟(I/O CLK)和芯片选择(/CS)、输入的模拟信号(ANALOG IN)的控制。

分析时序图可知:当片选信号(/CS)拉低时,ADC 前一次的转换数据(A)的最高位 A7 立即出现在数据线 DATA OUT 上,之后的数据在时钟 I/O CLOCK 的下降沿改变,可在 I/O CLOCK 的上升沿读取数据。转换时,/CS 要置为高电平。在设计操作时,要注意 Tsu(CS)、Tconv、Twh(CS)和 I/O CLOCK 的频率这几个参数。Tsu(CS)为 CS 拉低到I/O CLOCK 第一个时钟到来的时间,至少要 1.4us;Twh(CS)为 ADC的转换时钟,不超过 17us,Tconv 的值也不超过 17us;I/O CLOCK 为1.1MHz。其他参数可参考数据手册。
由于 ADC 是 8 位的,所以采样的电压值为:V =(D*Vref)/256其中 V 为采样的电压值;D 为 ADC 转换后读取的 8 位二进制数;Vref 为参考电压值,此处为 2.5V。

03

设计架构图:

本设计通过调节电位器 RW1 改变 ADC 的模拟输入值,数据采样读
取后由数码管显示,最后用万用表测量输入电压,并与读取在数码管
上的数据(单位为 mV)作比较。设计的架构图如下:

设计架构图对应端口的功能描述表:


tlc549_Driver 模块采用序列机实现接口访问时序,并且产生1MHz 的 ADC_Clk 和采集到 ADC_data;Control 模块,将采集到的 ADC数据(ADC_data)换算成对应的电压值,并经过二进制到 BCD 转换以后传送到数码管;DIG_LED_DRIVE 模块负责数码管的驱动,将传递过来的数据显示出来。

04

设计代码:

tlc549_Driver 模块代码:



Control 模块代码:


DIG_LED_DRIVE 模块代码:




AD_TLC549 顶层模块代码:

AD_TLC549_tb 顶层测试代码如下:



05

仿真图:

设计仿真图如下所示:

观察仿真图,实现了数据的采集,并正确显示,下板验证结果也达到了设计的预期效果。

zxopenljx 发表于 2024-4-7 11:17:00

至芯入门课程《基于FPG 的数字电压表》设计
页: [1]
查看完整版本: 至芯入门课程《基于FPG 的数字电压表》设计