基于FPGA简易数控电源(4)

2019-07-31 09:31

数字电路课程设计报告

DOWN:IN STD_LOGIC;

CLK:IN STD_LOGIC; CLK1:IN STD_LOGIC; UP0:OUT STD_LOGIC; DOWN0:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT100

PORT ( CLK:IN STD_LOGIC;

UP,DOWN:IN STD_LOGIC;

Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END COMPONENT;

COMPONENT DECODER1_2 PORT ( A:IN STD_LOGIC;

CHOOSE_WEI_MA:OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END COMPONENT; COMPONENT MUX21

PORT(SEL:IN STD_LOGIC;

A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END COMPONENT; COMPONENT DVF1

PORT(CLK:IN STD_LOGIC; FOUT:OUT STD_LOGIC); END COMPONENT;

SIGNAL CLK1,CLK2,CLK_KEY,DOWN11,UP11: STD_LOGIC; SIGNAL Q22,Q11:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Q33:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

U1:DVF PORT MAP(CLK=>CP1,FOUT=>CLK2); U2:DVF1 PORT MAP(CLK=>CP1,FOUT=>CLK_KEY);

U3:CNT100 PORT MAP(CLK=>CLK2,UP=>UP11,DOWN=>DOWN11,Q2=>Q22,Q1=>Q11); U4:KEY PORT MAP (CLK=>CLK2,CLK1=>CLK_KEY,UP0=>UP11,DOWN0=>DOWN11, UP=>UP1,DOWN=>DOWN1);

U5:DECODER1_2 PORT MAP(A=>CLK2,CHOOSE_WEI_MA=>WEI_MA_CHOOSE); U6:BCD2_10 PORT MAP(BCD1=>Q11,BCD2=>Q22,B_OUT=> DATA_TO_DA); U7:MUX21 PORT MAP(A=>Q11,B=>Q22,Q=>Q33,SEL=>CLK2);

U8:SEGMENT7 PORT MAP(DATAIN=>Q33,DATAOUT=>DUAN_MA_CHOOSE); END ONE;

数字电路课程设计报告

生成的电路模块如下:

图2-22

仿真波形如下:

图2-23

分析结果:上述波形为部分仿真结果。可知位码输出信号在01和10两者间不断变化。而段码信号根据按键输入的信号及时钟信号而发生变化。由段码信号\则显示的是0的字符码值;而\则显示的是1的字符码值。因按键存在抖动,内部必须加上一定延迟才能接受到真正的按键信号,以防接受干扰信号而造成误操作。

2.1.8调试及结果

步骤一: 安装驱动。

插入USB下载线后,自动弹出窗口,手动设置,D:\\Altera\\quartus Ⅱ6.0\\driver\%usb—blaster。具体查找目录根据自己安装软件quartus Ⅱ6.0的所在的根目录。

步骤二: 锁引脚。

数字电路课程设计报告

Assignments---?Pins---?锁好如下图所示---?编译

图2-24

步骤三: IDE环境设置。

(1)Asignments---?Device---?EP2C5T144C8

---?DEVICE&Pin Options---?Configuration---?Use Configuration Device---?EPCS1---?编译 (2)Tools---?Programmer---?Hardware Setup---?Currently Selected Hardware---?Usb-Blaster---? Mode---?ASP---?选择DISPLAY.pof文件---?START

注:待程序下载完毕,先切断电源,再拔USB下载线,再给FPGA芯片及硬件上电后,程序才能生效。保证下载板在断电的情况下进行ASP接口的插拔。

在软硬件联调时,首先给硬件上电单独测试,检验数码管显示模块是否正常以及D/A转换部分是否正常工作。具体操作如下:

数码管显示模块----先给位码控制信号端口加高电平,在给段码控制信号端口加高低不同的电平,观察是否能在0---9范围内正常显示。

D/A转换部分----给DAC0832芯片的8个数字量输入端口加高低不同的电平,用万用表测量第一级放大器输出端的电压,观察其是否随输入信号的不同而不同,其变化应在0至-5V范围内。然后再测量第二级放大器输出端的电压,观察其是否在0至9.9范围内变化。若达不到9.9V,则调节滑动变阻器使其达到9.9V为止。

若硬件没问题,方可进行软硬件联调。采用搭积木的方法,具体操作如下: 首先根据自己锁的引脚图,将FPGA芯片和硬件电路用杜邦线接好。

其次,将计数器和显示模块做成一个顶层文件,将程序下载到FPGA芯片里,观察是否能够正常显示0—9.9,若正常则进行下面的操作。

接着,在上面的顶层文件里加入键盘模块,下载到FPGA芯片里,通过按按键开关,观察是否能够正常显示0—9.9,每按一次,步进是否为0.1。若正常则进行下面的操作。

数字电路课程设计报告

最后,把整个顶层文件的程序下载到FPGA芯片里,观察是否一上电即显示6.6,并测量第二级运放输出端口的电压是否也为6.6V;通过按按键开关,观察是否能够正常显示0—9.9,每按一次,步进是否为0.1,同时测量第二级运放输出端口的电压值和显示的电压数值是否一致。

最终调试结果:通过按钮开关,显示部分能够正常显示出0—9.9范围内任一数值,且步进为0.1。而输出的模拟电压值基本与所显示的电压值一致。

2.1.9收获与体会

本次课程设计,受益匪浅。比如学会了上电检测自己的硬件是否焊接正确,而不是用万用表来依次检测这个节点和那个节点是否连到一起。这种方法当然也可以,不过其效率低且准确性不是100%。此外,还学会了数码管动态显示技术,学会了调试系统的一种最基本且通用的方法-----搭积木法,而不是我们所想象的那样,将整个程序一一次性全下载到FPGA芯片里。此次设计中,没有太多的创新部分,就一点:将输出电压预置在6.6V。

当然,在整个系统的设计过程里,也遇到了一系列的问题。

比如,在硬件单独上电检测时,发现D/A转换部分的第一级运放输出在0至-5范围内正常,但第二级输出一直为-12V左右,约等于为运放供电的负电源电压。一开始用万用表按照原理图检测是否有导线接错,没发现。向同学请教,也不能解决。最终还是在黄老师的指导下,发现第二级运放的反馈方法接错,本应该负反馈,原理图上却画成了正反馈。此外,在软件调试过程中,发现计数器的步进为0.2。最终通过将输入键盘模块的消抖时钟CLK1的频率设为25HZ,而将计数器的时钟设为50HZ,才得以解决。遗憾的是:A/D闭环校准反馈部分未设计出来。

言而总之,总而言之,一方面我将加强理论方面知识的学习,这样有益于给实际中遇到的问题指明解决方向;另一方面将不断提高自己实践动手能力,将所学到的知识充分运用到其中。

三 参考文献

1 2 3 4 5

王振红,张常年。全国大学生电子设计竞赛。化学化工出版社。 潘松,黄继业。EDA技术与VHDL(第3版)。清华大学出版社。 姜雪松,吴钰淳,王鹰。VHDL设计实例与仿真。机械工业出版社。 黄智伟,王彦,陈琼。FPGA系统设计与实践。电子工业出版社。 数字电路课程设计指导书。江苏技术师范学院电气信息工程学院。

数字电路课程设计报告

四 附录

4.1.1按键电路

图4-1

因实验室提供的是常开按钮开关,而本系统中需要的是低电平有效,则通过上拉电阻的办法来解决。当J1和J2都未闭合时,R3和R4通过上拉电阻输出高电平;当J1和J2中有一个闭合时,对应的端口则输出低电平(注:R3和R4的另一端接到FPGA的I/O口,R3和R4为了保护FPGA的I/O口免受损害)。

4.1.2显示电路

图4-2


基于FPGA简易数控电源(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:宁夏回族自治区咨询工程师考试分析与评价巩固题每日一讲(1月20

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: