目录

1. 引脚功能介绍

2. 逻辑驱动信号

​3. 程序实施

3.1 前期准备

4. 全速模式下实验

​5. 八倍细分实验

6. 通信协议格式分析

7. STM32CobeProgramer读取芯片hex程序

8. 产生10KHZ的方波驱动步进电机

8.1 硬件资源分配

8.2 定时器配置

8.2.1 定时器比较输出PWM

8.2.2 PWM输出模式


MG42630这款芯片哪个公司生产的就不说了,毕竟知道的都知道,不知道的知道了也没用。这里主要介绍一下该款芯片的一些特性,便于后期调试开发参考。

SGM42630是一款面向双极性步进电机驱动器。它不但通过小体积解决了发热不好处理的问题,还依靠自适应控制衰减模式省去了用户针对不同电机型号都要进行调试的麻烦。

双H桥式电机驱动;电源电压:8V到35V;输出电流:3.2A电流保护。

1. 引脚功能介绍

它的外围电路如下:

这里我们需要注意以下几个参数,知道这几个参数的属性,便于我们更好的使用这款芯片。

控制引脚功能定义
引脚 信号名称 信号描述 赋值区间
19 STEP1 步进逻辑输入,上升沿使微步索引器移动一步,内部下拉。

0~MAX: 500kHz

0~自定义

3 DIR 0-正转,1-反转
26 ENABLEn 启用输入。低电平使能逻辑输入,具有微弱的VCC内部上拉。低电平使输出有效。 0-PWM使能,1-PWM禁用
16 SRn

同步整流使能输入。如果nSR引脚拉低,则启用同步整流。悬空

nSR引脚进入同步整流的自动衰减模式。如果nSR为高,则不存在同步整流和体二极管传导反向电流。

0-使能,1-禁用,悬空-自动衰减模式
27 SLEEP

睡眠模式输入。具有弱内部下拉功能的主动低睡眠模式逻辑输入。应用高电平以启用

设备,低功耗进入低功耗睡眠模式。

0-使能休眠模式,1-休眠模式禁用
12/13 USM0,USM1 模式选择

00:全速模式

01:1/2细分模式

10:1/4细分模式

11:1/8细分模式

5 DECAY_B

施加在该引脚上的电压设置三个衰减中的一个模式。可使用单片机DAC引脚模拟电压。

0~0.692V 快速衰减模式

0.693~1.981V 中速衰减模式

1.982~3.3V 慢速耍贱模式

8 VREF_B 当前设置参考输入。施加参考电压以设置满刻度绕组电流值。

0~3.3V

0~2.5A

2 HOME 状态监控引脚 0-有驱动脉冲信号,1-处于其他状态
17 nREST 复位引脚

0-复位

1-正常工作

2. 逻辑驱动信号

信号驱动逻辑
时间类型 功能定义 最小值 最大值 时间单位
STEP 步进频率 - 500 kHz
WH 步进脉冲高持续时间 1 - μs
WL 步进脉冲低持续时间 1 - μs
SU 命令设置时间,在步进上升之前 250 - μs
H 阶跃上升后的命令保持时间 250 - μs
WAKE 唤醒时间,退出睡眠(nSLEEP上升)以接受阶跃输入 - 1 ms
SLEEP 睡眠时间,输入睡眠(睡眠下降)以禁用输出 - 2.5 μs
ENABLE 启用时间可维持,启用(可下降)至启用输出 - 20 μs
DISABLE 禁用禁用时间,禁用(可上升)至禁用输出 - 20 μs
RESETR 复位释放时间,(重新复位上升)至启用输出 - 5 μs
RESET 将复位时间(复位下降)设置为禁用输出 - 5 μs

3. 程序实施

3.1 前期准备

根据上述介绍我们就可以接线编程了,在此之前我们先将H桥驱动方式的IO驱动管脚记录下来,以便于以后验证使用。

现在我们需要驱动这款芯片的SMG42630

根据上述介绍我们要想驱动这款芯片的所有功能需要以下几个引脚:

DECAY和VREF这两个需要模拟电压的输入我们交给开发板来设置,也就是这里。

除去了这两个设定引脚,剩下的几个引脚就需要接入单片机IO口了。

1. SRn自衰减模式——PF8

2. DIR引脚,控制正反转——PF7

3. USM0和USM1引脚配置步进细分模式。——PF6/PB8

4. RESTN复位引脚——PA6

5. ENABLE引脚控制PWM输出使能——PH12

6. HOME读取状态引脚——PH11

7. SLEEP休眠模式——PH10

8. STEP引脚,这个引脚产生脉冲,这里可以设置定时器比较输出PWM波形——PC7

4. 全速模式下实验

24V3A驱动57电机,全速模式下,最快转速脉冲波形如下 :

将波形放大看。

全速模式下最合适周期值,即777Hz频率的波形。

5. 八倍细分实验

6. 通信协议格式分析

上位机查询:55 55 AA

板子回复:    7A 55 CF

上位机回复:0C 08 00 01 90 01 D0 07 00 00 7D

板子回复:    7A 55 CF

上位机回复:

输出使能:0D 01 01 0F

休眠使能:03 01 01 05

复位:03 01 01 05

同步整流:05 01 00 06。。。。。

7. STM32CobeProgramer读取芯片hex程序

STM32CobeProgramer软件下载网址

下载完毕后利用STLink以SW的方式连接下载口。

一个字节(Byte)= 8位,例如0xFF就是一个字节。

1B (byte)  =  8 bit

1KB = 1024B

1MB=1024KB

0x80000 = 512KB

那么十六进制的0x4000表示多大内存呢?

换算到十进制0x4000为16384字节/1024字节=16k

8. 产生10KHZ的方波驱动步进电机

8.1 硬件资源分配

首先确定引脚,并定义相关功能。

底板:

小系统板:

根据上面的关系我们重新定义驱动引脚:

1. SRn自衰减模式——PA11

2. DIR引脚,控制正反转——PA9

3. USM0和USM1引脚配置步进细分模式。——PA8/PB13

4. RESET复位引脚——PB1

5. ENABLE引脚控制PWM输出使能——PB0

6. HOME读取状态引脚——PA7

7. SLEEP休眠模式——PA6

8. STEP引脚,这个引脚产生脉冲,这里可以设置定时器比较输出PWM波形——PA5

9. DECAY快速衰减(DAC)0.4V——PB9

10. VREF最大电流2.5A(DAC)1.6V——PB8

8.2 定时器配置

8.2.1 定时器比较输出PWM

STM32F051这款芯片的时钟频率是48MHz

采用向上计数模式,使用比较输出模式。这里有一点需要注意计数值尽量大一些。

PWM频率计算

例如:

频率 = 定时器时钟频率/定时器分频系数/自动重装载值(72MHz = 72 * 1^6)

f     =  72*10^6           / 72                    / 100        =10kHz

比如我们这里也要产生10kHz的PWM波形。

f = 48 000 000 / 48 / 100 = 10 000 = 10kHz

周期T = 1/f = 1 / 10kHz = 100us。

故:定时器分频系数为 48-1、自动重装在值为100-1。

Mode使用Toggele on match(即定时器ARR寄存器溢出就翻转电平)。

那如果我们要产生1.287ms周期的PWM波形该如何设置?

1/0.001287 = 777Hz 约 800 便于计算

48 000 000 / 800 = 60000

60000 = 6*10000

故分频值和计数值选择选择6和10000

8.2.2 PWM输出模式

不开定时器中断。程序只需要初始化以下函数:

一个是启用TIM2定时器,另一个是开启TIM2发送PWM。

  HAL_TIM_Base_Start(&htim2);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);

TIM1每发送一次PWM就会进入一次定时器溢出中断,计算PWM脉冲的个数。就需要通过CNT寄存器。

具体定时器的几种用法我会在后期专门拿出来一期进行讲解,结合这款芯片实现不同的功能。

【芯片介绍】两相四线步进电机驱动芯片SMG42630相关推荐

  1. 两相四线步进电机的驱动方法/驱动芯片用法

    目录 一.基本概念说明: 1.电机原理: 2.步进电机概念名词: 3.驱动芯片 4.调试总结: 概述 说明:本文主要说明一下使用驱动芯片驱动两相四线步进电机. 关联关键词:如何驱动步进电机/步进电机驱 ...

  2. 两相四线步进电机与LMD18200驱动器与电机加速减速

    两相四线步进电机 1.工作功率条件 电压12V直流电流,静态电流<0.5A(测试为0.032A)功,恒压工作电流是0.7-1.1A,功率=8.4W-13.2W. 横流0.24-0.28A之间,电 ...

  3. 两相四线步进电机C语言程序,求大神帮忙看单片机控制两相四线步进电机的程序!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define uchar unsigned char #define uint unsigned int uchar code tim ...

  4. tb6600 两相四线步进电机相关参数计算关系

    假设细分数为16细分 ,步距角为1.8°,则每个脉冲产生的电机转动角度为 1.8°/16 = 0.1125°. 电机转 一圈所需的脉冲数量为 S 360°/0.1125° = 3200个脉冲. 同理求 ...

  5. 两相四线步进电机时序

    一 八拍 八个状态: 1 给A与A-正电压,B与B-不给电压: 2 给A与A-正电压,给B与B-正电压: 3 A与A-不给电压,给B与B-正电压: 4 给A与A-负电压,给B与B-正电压: 5 给A与 ...

  6. 【电机应用控制】——步进电机控制原理(四相五线/两相四线/细分驱动)驱动器梯形/S形加减速算法直线/圆弧插补

    目录 一.步进电机简介 二.步进电机控制原理 1.四相五线 2.两相四线 3.细分驱动 三.步进电机驱动器 四.梯形加减速算法 五.S形加减速算法 六.直线插补 七.圆弧插补 八.步进电机闭环系统(位 ...

  7. 利用Arduino+TB6600驱动模块控制两相四线42减速步进电机

    实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机 材料: Arduino Nano   *1 TB6600驱动器  *1 42减速步进电机*1 面包板           ...

  8. Y07-28D1-5010D 日本信浓步进马达 两相混合式步进电机驱动器组合

    Y07-28D1-5010D 日本信浓步进马达 上一条:日本信浓Y07-43D1-4275 3D打印机专用双轴步进电机 下一条:供应日东波峰焊专用日本信浓86步进电机 产品详情 品牌:日本东方 型号: ...

  9. 两相混合式步进电机控制方法介绍

    1.步进电机驱动原理 2.控制方法 1.步进电机驱动原理 二相混合式步进电机的结构 一般定子上有 8 个磁极,彼此不紧贴的 4 个磁极为一绕组. 单数的 4 个磁极便构成步进电机的 A 相,双数的 4 ...

最新文章

  1. 面试官写了个双冒号::问我这是什么语法?Java中有这玩意?
  2. gossip 区块链_区块链技术创新生态 Gossiptoken黑马横空出世
  3. ROS 常用命令汇总(不定期更新)
  4. 恐怖小说之王——斯蒂芬·金 (转贴)
  5. 2.12 priority_queue
  6. 解决outlook无法启动
  7. Windows Phone 7 使用Canvas Grid StackPanel进行布局管理
  8. jquery各类资源整理
  9. 第三届泰迪杯技能赛赛后分享总结
  10. 系统架构设计师与系统分析师历年实体分析与解答下载_软考 系统架构设计师备考经验分享...
  11. html tr行内样式左对齐,探索CSS单行文字居中,多行文字居左的实现方式
  12. keras model weights
  13. 林轩田机器学习基石笔记6 - Theory of Generalization
  14. C3P0Util 的制作 及DButils 中的 QueryRunner 类的使用
  15. 【Linux命令】挂盘相关命令,包含可扩展硬盘
  16. 二层交换、三层交换和路由的原理及区别
  17. 心电信号越界怎么回事_心慌胸闷到医院检查心电图却查不出问题,这到底咋回事?...
  18. TensorRT加速应用
  19. 完全卸载 Nodejs
  20. 怎么把pdf文件转换成jpg格式

热门文章

  1. 史上最详细的Docker 镜像的制作-上传-拉取--部署(阿里云)
  2. Pandas API 文档索引中文翻译版(一)—— Series
  3. 编程的三层境界——器、术、道
  4. 8.牛批了 Android 2022高级 资深面试题 一线大厂和二线大厂面试真题精选 (腾讯 附答案)第八套 35k+
  5. 欢乐牧场养殖游戏软件开发
  6. 机器学习实验 - MeanShift聚类
  7. Excel拼接后的字符串复制文本到word中出现换行符
  8. sqlserver数据库的服务器 改名字后 数据库登录不上 解决方案 sqlserver 更改 服务器名的问题
  9. 人体神经网络应用领域,人体神经网络应用研究
  10. 【241期门诊集锦】正确高效的Android应用程序开发