Verilog直流电机的pwm控制设计

Verilog直流电机的pwm控制设计,第1张

设计方案

基于Verilog HDL的直流电机PWM设计方案

直流电机PWM控制器产生的PWM波形,只需要FPGA内部资源就可以实现,如数字比较器、锯齿波发生器等均为FPGA内部资源,我们只要直接调用就可以。外部端口Z/F、START接在键盘电路上,其具体的连接方式如图1。

其工作原理是:旋转方向控制电路控制直流电动机转向和启/停,该电路由两个2选1的多路选择器组成,Z/F键控制选择PWM波形是从正端Z进入H桥,还是从负槐迹喊端F进入H桥,以控制电机的旋转方向。当Z/F=1时,PWM输出波形从正端Z进入H桥,铅野电机正转。当 Z/F =0时,PWM输出波形从负端F进入H桥,电机反转。

Start键通过“与”门控制PWM输出,实现对电机的工作停止/控制。当START=1时,与门打开,允许电机工作。当START=0时,与门关闭,电机停止转动。

H桥电路由大功率晶体管组成,PWM输出波形通过方向控制电路送到 H 桥, 经功率放大以后对直流电机实现四象限运行。

基于FPGA的直流电机PWM控制省去了外接的D/A转换州渣器和模拟比较器,FPGA外部连线很少,电路更加简单,便于控制。FPGA的直流电机PWM控制具有精度高,反应快,外部连线少,电路简单,便于控制等优点。

下面是一个4相4拍的步进电机顺序脉冲发生器的VHDL描述,你可以改成4相8拍的,每一步的转角可以小一半。改变输入信号clk的频率就可以改变转速:

LIBRARY IEEE;

USE IEEE.Std_logic_1164.ALL;

ENTITY sequencer_4 IS

PORT(clk,en,dir:IN Std_logic;

a,b,c,d:OUT Std_logic);

END sequencer_4;

ARCHITECTURE behavl_seq OF sequencer_4 IS

SIGNAL x:Std_logic_vector(3 DOWNTO 0);

BEGIN

PROCESS(clk,en)

BEGIN

IF en= '1' THEN

x<= (OTHERS =>'0');

ELSIFclk'Event AND clk = '1' AND Clock'Last_Value = '0' THEN

CASE x IS

WHEN"0001" =>IF dir = '0'汪运 THEN x <= "0010";ELSE x <= "1000";END IF;

WHEN"0010" =>IF dir = '0' THEN x <= "0100";ELSE x <= "0001";END IF;困旁梁

WHEN"0100" =>IF dir = '0' THEN x <= "1000";ELSE x <= "0010";END IF;

WHEN"1000" =>IF dir = '0' THEN x <= "0001";ELSE x <= "0100";END IF;

WHENOTHERS=>x <= "0001";

END CASE;

END IF;

END PROCESS;

a <= x(0);

b <= x(1);

c <= x(2);

d <= x(3);

END behavl_seq;

上面有些符号是全角的,你需要改成半角字符才能通过编译。

a、b、c、d对应28BYJ48的1、2、3、4号线。启扰


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12303486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存