码迷,mamicode.com
首页 > 其他好文 > 详细

基于FPGA的直流电机

时间:2018-02-25 14:36:15      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:ril   下载   原理图   共阴极数码管   str   进制   数码管   效果   red   

功能

本设计主要分为三个主要部分:按键控制部分、数码管转速档位显示部分、PWM信号产生部分。分别采用verilog 语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,采用自顶向下的设计方法,实现通过按键控制直流电机的转速,并将转速档位分为10个等级,同时将当前的转速档位显示到数码。在软件平台下分别对设计项目、各个模块以及顶层模块进行仿真分析。

技术分享图片

接电机

技术分享图片

电机有两条线,红色那条接到技术分享图片这个。

蓝色那条接到技术分享图片

接电机驱动板

技术分享图片

电机驱动板有4条线:PWM驱动信号输入--红色、PWM驱动信号输出--蓝色(该线已经焊接在电机上面)、3.3V电源--白色、地--黑色。

 

PWM驱动信号输入--红色线,接FPGA板上的142号引针

注意,这条线要等到下载好之后才能接!!!!!!!!!!

技术分享图片

PWM驱动信号输出--蓝色

接电机的时候就已经接好了。

3.3V电源--白色

技术分享图片

一头接电机驱动板上的"+"号引针,

一头接FPGA开发板上的3.3V电源:

技术分享图片

地--黑色

技术分享图片

一头接电机驱动板上的"-"号引针,

一头接FPGA开发板上的地GND;

技术分享图片

上电

接入5V电源,用配套的线,USB那端接电脑即可;

技术分享图片

电源开关

按下电源开关

技术分享图片

电路板按键说明

复位

技术分享图片

按下则复位回1,输出占空比为10%;

控制档位

技术分享图片

按下一次,档位加1,有时可能会产生跳变,按的时候不要太用力;

电路板数码管说明

技术分享图片

显示档位

按键消抖原理

采用状态机型消抖方法进行,状态机型消抖电路采用有限状态机的设计方法来描述与实现,状态机有S0,S1,S2三种状态,在S0状态下key_out输出为低电平,并以clk时钟信号的频率采样按键输入信号,如果key_in=‘0‘,则保持在S0状态,并继续采样按键输入信号的状态,如果key_in=‘1‘,则转入S1状态;在S1状态下key_out输出仍为低电平,继续采样按键输入信号的状态,如果key_in=‘1‘,则转入S2状态,如果key_in=‘0‘则转入S0状态;在S2状态下继续采样按键输入信号的状态,如果key_in=‘1‘,则保持在S2状态,key_out输出正脉冲,如果key_in=‘0‘,则转入S0状态,key_out输出低电平。

下图为状态机型消抖电路波形效果示意图:

技术分享图片

 

数码管显示原理

位选信号

本设计采用共阳数码管,即位选低电平有效,需要使用2位数码管显示速度档位,所以需要位宽为2bit的位选信号,并且将位选信号设置为低电平;

技术分享图片

段选信号

本设计采用共阳数码管,数码管的段选信号为8bit,数码管的段选对应实物图如下:

技术分享图片

一个数码管有八段:A,B,C,D,E,F ,G,H,DP,即由八个发光二极管组成,; 因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种: +5V(即为共阳极数码管)、接地(即为共阴极数码管),其中共阳极每个段均有0导通,而共阴极则1导通发光,所以共阳极数码管和共阴极数码管显然是不同的,段选码表如下图所示:

技术分享图片

技术分享图片

PWM产生原理

PWM的全称为Pulse-Width Modulation(脉冲宽度调制,),实际就是调节脉冲的占空比。当输出的脉冲频率一定时,输出脉冲的占空比越大,相当于输出的有效电平越大,这样也就简单实现了由FPGA来控制模拟量。由一个独立按键key来控制FPGA输出脉冲的占空比,用该脉冲去直接驱动直流电机,随着占空比不同,电机的转速也将不同。

 

本设计将PWM频率固定为200KHz,而通过控制PWM的脉冲宽度来调节电机的转速,计算频率的方法为50M/(249+1)。采用定时计数法来产生PWM波,即一个脉冲的周期为250个系统时钟周期脉冲宽度调制就是对这250个系统时钟进行分配,分配多少个系统时钟周期输出高电平,多少个系统时钟周期输出低电平。

技术分享图片

仿真图

按键模块仿真

技术分享图片

 

技术分享图片

数码管模块仿真

技术分享图片

技术分享图片

技术分享图片

PWM产生模块仿真

技术分享图片

    duty_cycle_cnt在复位时为0,复位完成后初始化为25,对应的占空比为10%,由于档位控制按键按下,将档位控制为档位2,所以duty_cycle_cnt变为50,即控制输出20%的占空比。

技术分享图片

整体仿真

技术分享图片

 

技术分享图片

 

技术分享图片

将档位控制为档位2,所以duty_cycle_cnt为50,即控制输出20%的占空比,此时输出PWM信号。当数码管的段选信号seg_duan输出的十六进制数:C0,对应的位选信号seg_wei输出的十进制数为:1,根据数码管BCD码表,表示在第二位数码管上面显示的数为:0;当数码管的段选信号seg_duan输出的十六进制数:A4,对应的位选信号seg_wei输出的十进制数为:2,根据数码管BCD码表,表示在第二位数码管上面显示的数为:2。

技术分享图片

基于FPGA的直流电机

标签:ril   下载   原理图   共阴极数码管   str   进制   数码管   效果   red   

原文地址:https://www.cnblogs.com/logic3/p/8469028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!