zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

测试Risym 2.5A双路电机驱动模块:MX1919

驱动测试模块 2.5 电机
2023-09-11 14:15:21 时间

简 介: 测试了MX1919双电机驱动模块的基本功能。利用MM32F3273实验电路板作为信号来源,驱动了MX1919,并驱动一个小型步进电机运行。验证了模块的基本驱动功能。

关键词 MX1919电机驱动步进电机

电机驱动模块
文章目录
背景介绍
MX1919数据手册
管脚功能
控制功能
基本应用电路
测试电机模块
测试方法
输入输出电压波形
测试频率特性
驱动步进电机
步进电机
驱动步进电机
芯片工作电压
测试方法
测量结果
实验总结

 

§01 机驱动模块


一、背景介绍

  在TB购买到(12.31) Risym 2.5A双路电机驱动模块 正反转PWM调速双H桥步进电机驱动板 。下面对于它进行初步测试。

▲ 图1.1.1 Risym 2.5A 电机驱动模块

▲ 图1.1.1 Risym 2.5A 电机驱动模块

1、MX1919数据手册

  MX1919 是电池供电的运动控制的集成有刷直流马达驱动解决方案。

(1)特性

  ● 低待机电流 (小于 0.1uA);
  ● 低静态工作电流;
  ● 集成的 H 桥驱动电路;
  ● 内置防共态导通电路;
  ● 低导通内阻的功率 MOSFET 管;
  ● 内置带迟滞效应的过热保护电路 (TSD);
  ● 抗静电等级:3KV (HBM)。

(2)典型应用

  ● 2-6 节 AA/AAA 干电池供电的玩具马达驱动;
  ● 2-6 节镍-氢/镍-镉充电电池供电的玩具马达驱动;
  ● 1-2 节锂电池供电的马达驱动

2、管脚功能

▲ 图1.1.2 MX1919管脚定义

▲ 图1.1.2 MX1919管脚定义

▲ 图1.1.3 MX1919内部功能框图

▲ 图1.1.3 MX1919内部功能框图

3、控制功能

▲ 图1.1.4 控制管脚定义

▲ 图1.1.4 控制管脚定义

4、基本应用电路

▲ 图1.1.5 基本应用电路

▲ 图1.1.5 基本应用电路

二、测试电机模块

1、测试方法

  利用 MM32F3273实验板 的PA0,PA1,PA2,PA3控制MX1919的输入控制线。

▲ 图1.2.1  面包板上测试电路

▲ 图1.2.1 面包板上测试电路

  在面包板上搭建控制模块与电机驱动模块相互连接。

2、输入输出电压波形

(1)IN1=L,IN2控制波形

  下面显示了IN1=L, IN2对于输出的影响。

▲ 图1.2.2 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.2 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.3 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.3 输入信号(蓝色)与输出信号(青色)

(2)IN1=H,IN2对于输出影响

  设置IN1为高电平,测试IN2对于输出的作用。

▲ 图1.2.4 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.4 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.5 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.5 输入信号(蓝色)与输出信号(青色)

3、测试频率特性

测试条件:
IN1:H
IN2:输入信号

  输入信号的频率大约240kHz。

  输入输出波形如下:

▲ 图1.2.6 输入信号(蓝色)与输出信号(青色)

▲ 图1.2.6 输入信号(蓝色)与输出信号(青色)

三、驱动步进电机

1、步进电机

  实验室有一个小型的步进电机。有两项正交线圈驱动。

▲ 图1.3.1 实验所使用的步进电机

▲ 图1.3.1 实验所使用的步进电机

▲ 图1.3.2 电机的铭牌信息

▲ 图1.3.2 电机的铭牌信息

2、驱动步进电机

(1)驱动方案

  对于两项步进电机驱动方案采用两项-八拍驱动方案。

A项  B项    角度
正    0     0
正    正    45
090
负    正    1350     180
负    负    225
0270
正    负    3150     0

(2)实现程序

void SetA(int nMode) {
    if(nMode == 0) {
        OFF(PIN1);
        OFF(PIN2);
    } else if(nMode > 0) {
        ON(PIN1);
        OFF(PIN2);
    } else {
        OFF(PIN1);
        ON(PIN2);
    }

}

void SetB(int nMode) {
    if(nMode == 0) {
        OFF(PIN3);
        OFF(PIN4);
    } else if(nMode > 0) {
        ON(PIN3);
        OFF(PIN4);
    } else {
        OFF(PIN3);
        ON(PIN4);
    }
    
}

void SetStep(int nStep) {
    nStep = nStep % 8;
    switch(nStep) {
        case 0:
            SetA(1);
            SetB(0);
            break;
        case 1:
            SetA(1);
            SetB(1);
            break;
        case 2:
            SetA(0);
            SetB(1);
            break;
        case 3:
            SetA(-1);
            SetB(1);
            break;
        case 4:
            SetA(-1);
            SetB(0);
            break;
        case 5:
            SetA(-1);
            SetB(-1);
            break;            
        case 6:
            SetA(0);
            SetB(-1);
            break;
        case 7:
            SetA(1);
            SetB(-1);
            break;
        default:
            SetA(0);
            SetB(0);
            break;
    }
    
}

(3)输出波形

  使用1kHz进行8拍驱动,所以整个波形为125Hz。下面是测量到A向线圈两端电压波形。

▲ 测量到A项两端电压波形

▲ 测量到A项两端电压波形

(4)步进电机运行

  下面是将步进电机接入MX1919的两项输出,可以看到步进电机平稳运行。

▲ 图1.3.4  步进电机运行

▲ 图1.3.4 步进电机运行

四、芯片工作电压

  逐步提升芯片的供电电压,测量芯片的输出波形的平均电压,可以测试芯片的工作电压的范围。

1、测试方法

  逐步提升芯片的供电电压,测量芯片的输出波形的平均电压,可以测试芯片的工作电压的范围。

  利用 数字可编程直流电源DH1766 作为电压源。使用FLUKE45测量MX1919的输出电压。

  MX1919的控制信号仍然使用【1.3:驱动步进电机】中步进电机控制信号。

▲ 图1.4.1 在工作电压7V情况下MX1919输出信号

▲ 图1.4.1 在工作电压7V情况下MX1919输出信号

2、测量结果

  下面是不同电压下输出信号的平均电压。

▲ 图1.4.2 不同MX1919工作电压下输出电压

▲ 图1.4.2 不同MX1919工作电压下输出电压

  从上图来看,虽然电压超过1V就已经有了输出波形,但该波形具有较大的失真。只有供电电压超过2V之后,电压波形才具有很强的输出能力。

▲ 图1.4.3 在工作电压为1.5V下的输出电压波形

▲ 图1.4.3 在工作电压为1.5V下的输出电压波形

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-11-20
#
# Note:
#============================================================
from headm import *
from tsmodule.tsvisa        import *
from tsmodule.tsstm32       import *
#------------------------------------------------------------
setv = linspace(0, 5, 50)
outv = []
for v in setv:
    dh1766volt(v)
    time.sleep(2)
    meter = meterval()
    outv.append(meter[0])
    printff(v, meter[0])
    tspsave('measure', setv=setv, outv=outv)
plt.plot(setv, outv)
plt.xlabel("Voltage(V)")
plt.ylabel("Output(V)")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

 

验总结 ※


  试了MX1919双电机驱动模块的基本功能。利用MM32F3273实验电路板作为信号来源,驱动了MX1919,并驱动一个小型步进电机运行。验证了模块的基本驱动功能。

D:\zhuoqing\window\ARM\IAR\MM32\Test\MM32F3273\testmotor\USER\src\main.c


■ 相关文献链接:

● 相关图表链接: