L9110H电机驱动模块-FPGA

本文介绍了L9110H电机驱动芯片的H型全桥式驱动电路原理,包括电机正反转的控制方式,并展示了具有使能控制和方向逻辑的电路设计。此外,还提供了电机驱动模块的运行状态逻辑真值表以及通过FPGA控制电机的代码示例,详细阐述了如何利用FPGA芯片的IB和IA管脚控制风扇的开关、转动方向和速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        L9110H电机驱动芯片,该芯片内部集成了一个H型全桥式高电压大电流电机驱动电路,可以单独驱动一个直流电机。

1.1  电机驱动原理

        H型全桥式驱动电路包含四个三极管和一个电机,其电路图如图1.1所示。将四个三极管分成两组,若两组三极管同时导通或同时关断,此时电机不会工作;如果想使用该驱动电路驱动电机运转,就必须导通其电路中位于对角线上的一对三极管。此时两组三极管的状态必须互补:当一组导通时,另一组必须关断。当三极管Q1、Q4导通,Q2、Q3关断时,电机两端所加为正向电压,此时电机将会顺时针转动;当三极管Q2、Q3导通,Q1、Q4关断时,机两端所加为反向电压,此时电机将会逆时针转动。要注意的是,在直流电机运转的过程中要使电机不断在四个象限之间切换,即在顺时针转动和逆时针转动之间切换。即四个三极管在Q1、Q4导通且Q2、Q3关断,和Q1、Q4关断且Q2、Q3导通这两种状态之间切换。

e8dcf7170db3492ab3986dd65b15260f.png

1.1 H型全桥驱动电路示意图

        为了方便控制三极管的导通和关断,一般会在基础的H型全桥驱动电路上增加四个与门和两个非门。这种设计方案的电路如图1.2所示。通过这样的电路设计,只需要一个信号ENABLE就可以控制H型全桥式驱动电路上所有三极管的开关;然后再分别给两个非门提供一个方向输入信号,这样只需要两个信号DIR-L和DIR-R就可以控制H型全桥驱动电路的四个三极管的导通和关断,以达到控制电机转动方向的效果。这样的设计减少了系统管脚的使用率,仅仅只用三个信号就能控制电机的运转。

ac098068bdc444e08e735e55d18d553d.png

1.2 具有使能控制和方向逻辑的H型全桥驱动电路示意图

        电机驱动模块运行状态逻辑真值表如表1.1所示。

1.1 电机驱动模块运行状态逻辑真值表

IB

IA

运行状态

X

X

停止

1

0

正转

0

1

反转

1

1

刹停

0

0

停止

        通过FPGA芯片控制L9110H电机驱动模块上的管脚IB和IA来控制风扇的开关、转动方向和转动速度,即当IB信号为PWM波、IA信号为低电平时风扇正转,此时风扇的转速由PWM波的占空比决定;当IB信号为低电平、IA信号为PWM波时风扇反转,此时风扇的转速同样由PWM波的占空比决定。

电机驱动的代码非常简单,只需要控制管脚IA和IB的值,如下所示

module motor_driver(
    input           clk     ,
    input           rst_n   ,
    input   [2:0]   gear    ,//档位可根据需要进行设置

    output          IA      ,
    output  reg     IB
);

    parameter   [31:0]  StepLockOut = 32'd200000;//250Hz

    reg     [32:0]  StepCounter ;

always @(posedge clk or negedge rst_n)begin
    if(!rst_n)
        StepCounter <= 0;
    else if(StepCounter == StepLockOut -1)
        StepCounter <= 0;
    else
        StepCounter <= StepCounter + 1;
end

always @(posedge clk or negedge rst_n)begin
    if(!rst_n)
        IB <= 0;
    else
    case(gear)
        3'd0:begin
            IB <= 0;
        end
        3'd1:begin
            if(StepCounter <= StepLockOut/5 -1)
                IB <= 1;
            else
                IB <= 0;
        end
        3'd2:begin
            if(StepCounter <= StepLockOut/5*2 -1)
                IB <= 1;
            else
                IB <= 0;
        end
        3'd3:begin
            if(StepCounter <= StepLockOut/5*3 -1)
                IB <= 1;
            else
                IB <= 0;
        end
        3'd4:begin
            if(StepCounter <= StepLockOut/5*4 -1)
                IB <= 1;
            else
                IB <= 0;
        end
        3'd5:begin
                IB <= 1;
        end
        default:IB <= 0;
    endcase
end

assign IA = 0;

endmodule

### FPGA与L298N驱动直流电机的实现方案 FPGA与L298N结合使用时,可以通过FPGA生成PWM信号来控制L298N芯片,从而实现对直流电机的速度和方向的精确控制。以下是关于该实现方案的具体内容: #### 1. 硬件连接 L298N是一种双H桥电机驱动芯片,能够同时驱动两个直流电机或一个步进电机。在与FPGA配合使用时,需要将FPGA的输出引脚连接到L298N的输入端(如IN1、IN2等)。具体连接方式如下: - FPGA的PWM信号输出端连接到L298N的使能端(EN1、EN2)。 - FPGA的方向控制信号输出端连接到L298N的输入端(IN1、IN2等)。 - L298N的电源端需接入适当的电压源以驱动电机[^1]。 #### 2. PWM信号生成 FPGA可以利用其内部逻辑资源生成精确的PWM信号。通过配置FPGA中的计数器模块,可以生成占空比可调的PWM波形。PWM信号的频率和占空比决定了电机的转速。例如,使用VHDL或Verilog语言编写一个简单的PWM生成模块,代码示例如下: ```verilog module pwm_generator ( input wire clk, // 系统时钟 input wire reset, // 复位信号 input wire [7:0] duty, // 占空比设置(0-255) output reg pwm_out // PWM输出信号 ); reg [7:0] counter; always @(posedge clk or posedge reset) begin if (reset) counter <= 8'd0; else if (counter == 8'd255) counter <= 8'd0; else counter <= counter + 1'b1; end always @(posedge clk or posedge reset) begin if (reset) pwm_out <= 1'b0; else if (counter < duty) pwm_out <= 1'b1; else pwm_out <= 1'b0; end endmodule ``` #### 3. 方向控制 L298N的输入端(IN1、IN2等)用于控制电机的旋转方向。FPGA可以通过输出高低电平来切换电机的方向。例如,当IN1为高电平且IN2为低电平时,电机正转;反之,电机反转。这种逻辑可以通过简单的组合逻辑电路在FPGA中实现。 #### 4. 电源管理 在实际应用中,L298N需要外部电源供电,通常为12V或更高电压。如果仅驱动直流电机,L298N的12V Power端需要接通,而5V电源则为L298N驱动板供电[^2]。 #### 5. 软件设计 在FPGA中实现电机控制功能时,除了生成PWM信号外,还可以加入更复杂的控制算法,如PID控制。通过采集电机的实际转速(可通过编码器实现),并与目标转速进行比较,调整PWM信号的占空比以实现闭环控制。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值