FPGA与ADC0809接口电路详解.doc

FPGA与ADC0809接口电路详解.doc

ID:51769349

大小:138.95 KB

页数:4页

时间:2020-03-15

FPGA与ADC0809接口电路详解.doc_第1页
FPGA与ADC0809接口电路详解.doc_第2页
FPGA与ADC0809接口电路详解.doc_第3页
FPGA与ADC0809接口电路详解.doc_第4页
资源描述:

《FPGA与ADC0809接口电路详解.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、FC-COMFPGA与ADC0809接口电路详解注:(1)本程序基于FPGA和vhdl编写有详尽的程序解释和原理分析以及原理图,状态图(2)对于adc0809具体资料可上网查在此不累述一.FPGA与ADC0809的接口电路图原理二.关于ADC0809的说明(重点)(1)ale信号(引脚):高电平时把三个地址信号送入地址锁存器,并经译码器得到地址数据,以选择相应的模拟输入通道。(2)oe信号(引脚)en使能信号:电平由低变高时,打开数据输出锁存器,将转换数据送到数据总线上(3)eoc信号(引脚):eoc为高电平时完成转换,为低电平时正在转换。(4)start信号(引脚):要给start线送一

2、个100ns宽的启动正脉冲,start下跳沿时,开始进行A/D转换,在转换期间start以保持低电平。FC-COM三.转换状态图对于状态图的真值表未列出注意对应的注释为vhdl语句四.ADC0809采样接口电路程序--*********ADC0809采样控制*************--******因为FPGA的时钟频率为50MHz,则256分频后,即ADC0809输入时钟为195KHz******--******对ADC0809进行简单的采样控制,得到的数据进FPGA送到8个并排的数码管显示*****libraryieee;useieee.std_logic_1164.all;useie

3、ee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityPL_ADisport(d:instd_logic_vector(7downto0);--ADC0809输出的采样数据输入FPGAclk,eoc:instd_logic;--clk为系统时钟,eoc为ADC0809转换结束信号输入FPGAlock1,start,ale,en:outstd_logic;--ADC0809控制信号FPGA输出信号abc_in:instd_logic_vector(2downto0);--模拟选通信号abc_out:std_logic_vect

4、or(2downto0);--ADC0809模拟信号选通信号q:outstd_logic_vector(7downto0));送至8个并排数码管信号FPGA输出数字信号endpl_AD;architecturebehavofPL_ADistypestatesis(st0,st1,st2,st3,st4,st5,st6);--定义状态类型枚举类型FC-COMsignalcurrent_state,next_state:states:=st0;--定义总体两个状态现态和次态并且初值为st0态signalregl:std_logic_vector(7downto0);--定义中间寄存器signa

5、llock:std_logic;signalqq:std_logic_vector(7downto0);--定义计数器用于分频begincom:process(current_state,eoc)–此进程主要是驱动ADC0809工作即数据转换过程begincasecurrent_stateiswhenst0=>next_state<=st1;ale<='0';start<='0';en<='0';--准备whenst1=>next_state<=st2;ale<='1';start<='0';en<='0';--三个地址信号送入地址锁存器whenst2=>next_state<=st3;a

6、le<='0';start<='1';en<='0';--开始数据转换whenst3=>ale<='0';start<='0';en<='0';--检测数据是否转换完ifeoc='1'thennext_state<=st3;elsenext_state<=st4;endif;whenst4=>ale<='0';start<='0';en<='0';--再次检测数据是否转换完ifeoc='0'thennext_state<=st4;elsenext_state<=st5;endif;whenst5=>next_state<=st6;ale<='0';start<='0';en<='1';--

7、打开输出数据锁存器,将数据送入数据总线whenst6=>next_state<=st0;ale<='0';start<='0';en<='1';regl<=d;--打开输出数据锁存器,将数据送入寄存器reglwhenothers=>next_state<=st0;ale<='0';start<='0';en<='0';endcase;endprocess;clock:process(clk)--对系统时钟进行分频,得到驱

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。