N通道电机控制设计Verilog代码Quartus仿真

名称:N通道电机控制设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:N通道电机控制


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

N通道电机控制.doc

1. 主要设计思路

主要设计思路:

PWM控制模块:输入0代表0.5ms,255代表2.5ms,0.5ms到2.5ms中间的2ms用8位控制信号控制,即256个分辨率指示,即2ms对应256,所以一个周期20ms对应2560。要在20ms(f=50Hz)内计数2560次,则计数时钟为128Khz(50*2560Hz),因此clk_enable=128KHz。然后根据占空比控制信号的值确定20ms周期内的高电平持续时间,即可控制pwm波形占空比。

分频模块:定义一个分频常数,当输入不同时钟时,只需要改变该常数即可。


2. 工程文件


3. 程序文件

顶层模块,N为通道数,可自由设置,程序默认设置为4通道。对应的log2_N就为2。

若N=8,log2_N就为3,以此类推。

分频模块

单通道PWM生成模块


4. 程序运行

5. 程序RTL图

6. Testbench

7. 仿真图

仿真设置不同地址和占空比的情况,地址00~11切换,占空比0~200累加变化。整体可看出占空比越来越大了。




这是初始占空比duty_cycle_ctrl设置为0时,计数值0~63为高电平(一共2560计数),对应0.5ms高电平。

这是占空比duty_cycle_ctrl设置为20时,计数值0~83为高电平(一共2560计数),对应0.65625ms高电平。地址设置得是01,即对应第1路(PWM_out[1]),如下图所示。

这是占空比duty_cycle_ctrl设置为40时,计数值0~103为高电平(一共2560计数),对应0.8046875ms高电平。地址设置得是10,即对应第2路(PWM_out[2]),如下图所示。






这是占空比duty_cycle_ctrl设置为180时,计数值0~243为高电平(一共2560计数),对应1.8984375ms高电平。地址设置得是01,即对应第1路(PWM_out[1]),如下图所示。



部分代码展示:

module N_Channel_ServoController
#(
parameter CHANNELS=4,//N通道,当前N=4
parameter log2_N=2//log2(N),N=CHANNELS
)
(
input clk,
input [7:0] duty_cycle_ctrl,//8位占空比控制信号
input load,
input [log2_N-1:0]address,//(log2(N)),N=CHANNELS
output [CHANNELS-1:0]PWM_out//输出PWM波形
);
//parameter CHANNELS=4;//N通道,当前N=4
//parameter log2_N=2;//log2(N),N=CHANNELS
wire clk_enable;
reg [CHANNELS-1:0]load_updated='d0;
//地址决定当前更新哪个占空比参数
always@(posedge clk)
if(load)
load_updated[address]<=1;
else
load_updated<='d0;
//调用N个PWM控制模块
generate
genvar i; //generate CHANNELS single_servomotors
for(i=0; i<CHANNELS; i=i+1) 
begin: in_arb_queues //CHANNELS = 8
single_servomotor i_single_servomotor(
. clk(clk),
. clk_enable(clk_enable),//128K使能信号
. duty_cycle_ctrl(duty_cycle_ctrl),
. load(load_updated[i]),
. PWM_out(PWM_out[i])
);
end

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » N通道电机控制设计Verilog代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员