实验12TLC549采样控制.doc_第1页
实验12TLC549采样控制.doc_第2页
实验12TLC549采样控制.doc_第3页
实验12TLC549采样控制.doc_第4页
实验12TLC549采样控制.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验八 TLC549(A/D)采样控制一. 实验目的1. 掌握模/数转换芯片TLC549的使用方法2. 掌握利用有限状态机实现一般时序逻辑分析的方法3. 掌握一般状态机的设计与应用。二. 准备知识TLC549封装如图A.1所示,是一个8位的串行模数转换器,ANALOG_IN为测量信号;REF+为转换所需的正电压基准(最大测量电压);REF-为转换所需的负电压基准(最小测量电压);DATA_OUT为转换数据输出;为片选信号。图A.1 TLC549封装示意图A/D的转换时间最大17us,I/O时钟频率可达1.1MHz如图A.2所示为TLC549的时序,从图中可以看出当片选信号为低电平时,ADC的前一次转换数据(A)的最高位A7立即出现在数据线DATA_OUT上,之后的数据在时钟I/O_CLOCK的下降沿改变,可在I/O_CLOCK上升沿读取数据。读完8位数据后,如果片选信号置为高电平,ADC开始采样、保持、转换、锁存转换结果,以便下一次读取。图A.2 TLC549工作时序图在进行采样控制时,要注意操作时序之间的时间间隔要足够长,以使ADC能完成其相应的工作。如:tSU(CS)为拉低到低电平后I/O_CLOCK第一个时钟到来时的时间,至少要1.4us;tCONV为ADC的转换时间,至少17us; I/O_CLOCK为系统时钟信号,不能超过1.1MHz。其他参数请参照数据手册。由于ADC是8位的,且硬件电路上的REF+为2.5V,REF-接GND,所以采样的电压值为V=D/255*VREF。包括扫描显示部分,最后完成的电路如图 所示。其中adc3为AD549的采样模块,需要说明的是:可以使用其它的方式完成采样,所给出的参考程序并不是最好的,使用的状态较多,但是在读取转换数据的流程相对比较清晰;显示结果为ASCII码显示,没有进行十进制处理。在实际应用中,尤其是单片机控制中,使用串行AD的频率比较高,主要是因为串行AD所需要的管脚相对较少。图A.3 TLC549的采样控制顶层原理图三. 实验步骤1、 新建工程新建文件夹,在该文件夹下新建工程tlc549。2、 编写低层HDL文件根据原理图A.3的内容,编写各个功能模块的HDL文件。3、编写顶层原理图文件新建原理图文件,并添加各个模块。设定为顶层文件,进行编译,如有错误,纠正直至成功为止。3、 锁定管脚按表 锁定管脚,并重新进行编译,把管脚信息编译到下载文件中。4、 下载下载后,调节电位器RW1,观察数码管的数值变化是否正确。四. 实验参考程序程序清单 adc3.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY adc3 ISPORT(clk48M:INSTD_LOGIC;-系统时钟sdat_in:INSTD_LOGIC;-TLC549串行数据输入ad_clk:OUT STD_LOGIC;-TLC549 I/O时钟cs_n:OUT STD_LOGIC;-TLC549 片选控制data_out:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)-AD转换数据输出);END;ARCHITECTURE one OF adc3 ISSIGNAL tsu_number: STD_LOGIC_VECTOR(2 downto 0);-tsu延时累加器SIGNAL clk_count: STD_LOGIC_VECTOR(3 downto 0);-24次分频累加器SIGNAL con_number: STD_LOGIC_VECTOR(5 downto 0);-等待转换延时累加器SIGNAL clk2M,con_ready,read_ready,reset_con,reset_tsu,can_read: STD_LOGIC;SIGNAL data_reg: STD_LOGIC_VECTOR(7 downto 0);-读数结果寄存器TYPE states IS(st0,st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,st12,st13,st14,st15,st16);SIGNAL c_state,n_state:states;BEGINPROCESS (clk48M)BEGINIF RISING_EDGE(clk48M) THEN IF clk_count =1011 THENclk_count=0000;clk2M=not clk2M;-2M的时钟信号ELSEclk_count=clk_count+1;ENDIF;END IF;END PROCESS;PROCESS (clk2M)BEGINIF RISING_EDGE(clk2M) THEN c_state=n_state; -主控时序进程END IF;END PROCESS;PROCESS (clk2M)BEGINIF reset_tsu=0 THEN -tsu延时复位tsu_number =000;read_ready =0;ELSIF RISING_EDGE(clk2M) THENIF tsu_number =101 THEN -6个clk2M可以开始读数据tsu_number =000;read_ready =1;-置读数据标志位ELSEtsu_number =tsu_number +1;read_ready =0;END IF;END IF;END PROCESS;PROCESS (clk2M)BEGINIF reset_con=0 THEN tconv延时复位con_number =000000;con_ready =0;ELSIF RISING_EDGE(clk2M) THENIF con_number =111111 THEN 32个clk2M认为数据转换完成con_number =000000;con_ready =1; -置转换完成标志位ELSEcon_number =con_number +1;con_ready cs_n = 0;-cs置低电平reset_tsu=1;-启动tsu延时累加器reset_con=0 ;ad_clk = 0;-IO_CLOCK置低电平can_read=0;IF read_ready =1 THEN-tsu延时完成,可以读数据n_state=st1;ELSEn_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1; -IO_CLOCK置高电平data_reg(7) = sdat_in;-读AD(7)n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0; -IO_CLOCK置低电平n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1; -IO_CLOCK置高电平,其时钟频率为clk2M的1/2倍。data_reg(6) = sdat_in; -读AD(6)n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1;data_reg(5) = sdat_in;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1;data_reg(4) = sdat_in;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1;can_read=0;data_reg(3) = sdat_in;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0;can_read=0;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1;can_read=0;data_reg(2) = sdat_in;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1;can_read=0;data_reg(1) = sdat_in;n_state cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 0;can_read=0;n_state=st15;can_read cs_n = 0;reset_tsu=0;reset_con=0;ad_clk = 1;data_reg(0) = sdat_in;n_state=st16;can_read cs_n = 1;-开始下一次转换reset_tsu=0;reset_con=1;-转换延时累加器计数使能ad_clk = 0;can_read=0;-清输出标志位IF c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论