1、FPGA设计ADC0809FPGA设计-ADC0809 摘要实现时必须严格遵守ADC0809的工作时序,对选定的通道输入一个模拟量,调节电位器改变输入的模拟量。利用quartus2进行文本编辑输入和试仿;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证ADC0809的控制功能。具体过程为:编写ADC0809时序的VHDL代码。对其进行编译仿真主要控制信号为:Start为转换启动信号,高电平有效;ale为通道选择地址信号的锁存信号。当启动转换后,程序开始执行,查询状态,状态为0.1.时等待,状态2时,查询EOC信号的状态,判断是否转换结束,当EOC=1时表示转换结束,否则继续等待;转换结束后继
2、续查询状态,若OE信号为高电平则控制打开三态缓冲器,当LOCK信号为高电平时,将转换后的数据进行锁存,至此一次转换结束。关键词:工作时序、AD0809、VHDL、quartus2、编译仿真、Start、EOC、OE、三态缓冲器1设计任务基于VHDL语言,实现对ADC0809简单控制。2系统设计原理2.1 硬件设计原理ADC0809为单极性输入,8位转换逐次逼近A/D转换器,可对05V的INT0INT7的8路模拟电压信号分时进行转换,完成一次转换的时间为100微秒。ADD-CBA作为8路通道选择地址,在转换开始前由地址锁存允许信号ALE将3位地址锁入锁存器中,以确定转换信号通道;EOC为状态结束
3、标志,低电平转为高电平时转换结束;START为转换启动信号,上升沿有效;OE为数据输出允许端,高电平有效;D0D7为A/D变换数据输出端。本次实验为测试方便,因此直接选择IN0端口为输入端,即使ADDC,ADDB,ADDA都接地。2.1.1 ADC0809的主要特性1)8路输入通道,8位AD转换器,即分辨率为8位。2)具有转换起停控制端。3)转换时间为100s4)单个5V电源供电5)模拟输入电压范围05V,不需零点和满刻度校准。6)工作温度范围为-4085摄氏度7)低功耗,约15mW。2.1.2 ADC0809的外部特性ADC0809芯片有28条引脚,采用双列直插式封装,如图1所示。下面说明各
4、引脚功能。IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START:AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。EOC:AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、R
5、EF(-):基准电压。Vcc:电源,单一5V。GND:地。 图1ADC0809引脚图 图2 ADC08092.1.3工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A
6、/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断
7、方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。本次设计依据ADC809工作时序图来编写相关程序,由其时序图来判断状态机当前的状态。2.2 软件设计思路采用双进程有限状态机的方法来产生ADC0809的工作时序。设计st0st7共8个工作状态,st0:初始状态;st1:产生ALE的上升沿,将地址“000”锁入0809的地址寄存器中;st2:产生采样信号START上升沿,开始A/D转换;st3:检测EOC下升沿;st4:检测EOC上升沿,转换结束;st5:数据转换结束,开启输
8、出允许EN;st6:输出允许EN延时一个脉冲,输出数据;st7:关闭允许输出EN如表1所示。表1 状态转换表当前状态控制输入下一状态控制输出ST0时钟上升沿ST1ale=0;start=0;en=0ST1时钟上升沿ST2ale=1;start=0;en=0ST2时钟上升沿ST3ale=0;start=1;en=0ST3时钟上升沿且EOC=1是ST4ale=0;start=0;en=0否ST3ST4时钟上升沿且EOC=0是ST5ale=0;start=0;en=0否ST4ST5时钟上升沿ST6ale=0;start=0;en=1ST6时钟上升沿ST0ale=0;start=0;en=1;regl
9、=dOther时钟上升沿ST0ale=0;start=0;ennext_state=st1;ale=0;start=0;ennext_state=st2;ale=1;start=0;ennext_state=st3;ale=0;start=1;en ale=0;start=0;en=0; if eoc=1 then next_state=st3; -检测EOC的下降沿 else next_state ale=0;start=0;en=0; if eoc=0 then next_state=st4; -检测EOC的上升沿else next_statenext_state=st6;ale=0;st
10、art=0;ennext_state=st0;ale=0;start=0;en=1;regl next_state=st0;ale=0;start=0;en=0; end case;end process;clock:process(clk) -对系统时钟进行分频,得到ADC0809转换工作时钟begin if clkevent and clk=1 then qq=qq+1; -在clk1的上升沿,转换至下一状态if QQ=01111111 THEN clk1=1; current_state =next_state; elsif qq=01111111 then clk1=0; end if; end if;end process;q=regl; abc_out=abc_in; end behav;本科生实习成绩评定表姓 名性别专业、班级实习题目:实习答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1