瑞盟 MS41929 步进电机驱动IC 一些使用心得

概述

        项目上使用了一款(瑞盟MS41929 )电机驱动芯片,使用了一段时间,在这写些个人心得,个人能力有限,理解可能有误,其它地方还是需要自己看datasheet。在这做一下记录,方便以后查阅。

只需对寄存器来操作即可。高性价比MS41929国产镜头电机驱动IC,完美替代 AN41908A马达驱动IC。讲解对应的手册是《MS41929说明书2.0_24MHz晶振版.pdf》

电机:功率 = 扭矩*角速度
(注:PPS 是pulse per second 的简写,即每秒的脉冲数,所以pps=Hz , 不用换算。)

  科普知识,PWM:
1、频率

1)频率是指1秒内有多少个变化周期,如:1个周期内有一开一关/高低电平形成。例如100Hz,那么也就是1秒内开关(高低电平)100次。
通过示波器看出横坐标是时间,比如:1格是5毫秒,可以看到当前一个周期占用两格,也就是10毫秒,1秒等于1000毫秒,1000除以10就是100Hz,

2)通过上图看出1个周期的时间长度变为4格,也就是1个周期变成20毫秒,1000除以20等于50Hz


3)通过上图看出1个周期的时间长度变为1格,也就是1个周期变成5毫秒,1000除以5等于200Hz

以上3点简述就是频率概念。


2、占空比概念

1)、占空比就是1个周期中高低电平所占用的时间比例,如果把高电平理解为“开”,低电平理解为“关”,那么占空比可以简单理解为“开”的时间百分比。

比如上图,“开”与“关”的时间各占一半,那么占空比就是50%,


2)通过上图可知,“开”的时间明显变长,“关”的时间变短

3)通过上图可知,占空比为100%,波形变成一条高电平直线,意思就是一直处于“开”着,一直处于高电平状态。


4)比如当占空比为30%时,“开”的时间占30%,“关”的时间占70%

5)当占空比为0%时,波形为0伏直线。代表完全处于低电平状态,可以理解为全关。

3、通过以上几点得出结论:

      1)占空比越大,高电平的时间越长,输出的功率也就越大
      2)占空比越小,高电平的时间越短,输出的功率也就越小
开关电源调压,电机调速,LED灯亮度调节,就是利用以上的原理。

科普一下步进电机知识:

                                            1-2-Phase

 12345678
A+++_____
/A____+++_
B+_____++
/B__+++___


 

 

 

 


对应的就是8拍,转一周(在不细分的情况下)

                                           2-2-Phase

 1234
A+__+
/A_++_
B++__
/B__++

 

 

 

 



对应就是4拍,转一周(在不细分的情况下)
假设:
2-2 Phase:一步 = 18°C
电机转一圈
360°C / 18°C = 20步
假设 1s, 100Hz
通过上面表得知:1周期 = 4步,求在多少个,100Hz/s 转1周(圈)
也就是100Hz = 100pps,分别4步走完1周(圈),所以就是100pps * 4 = 400pps。
只需要给它400pps脉冲,电机就可以转1圈。

step(1-2 Phase)  步数(电机1圈的行程:长度)
step(2-2 Phase)  步数(电机1圈的行程:长度)
                                 2-2 Phase 电机
正弦频率          Hz = (pps / 4) -> 对应1~256细分
pps(1-2 Phase)  速度
pps(2-2 Phase)  速度


 

INTCTxx[15:0] × 768 = OSCIN 频率 / 转动频率

INTCTxx[15:0] × PSUMxx[7:0] × 24 = OSCIN 频率 / VD 频率

转动频率 = 800pps / 8 = 100Hz   8细分
因为对应的是1-2相位的Phase


举例说明 OSCIN 频率 = 24 MHz,VD 频率 = 60Hz

INTCTxx[15:0] × 768 = 24 / 100
INTCTxx[15:0] = 24000 / 100 / 768 = 312

PSUMxx[7:0] = OSCIN 频率 / VD 频率 / (INTCTxx[15:0] × 24) = 24 / 60 / (312 * 24) = 53

INTCTxx[15:0] = OSCIN 频率 / VD 频率 / (PSUMxx[7:0] × 24) = 24/60/(53*24) = 314


PSUMxx[7:0] = 1/(100Hz)×24MHz/ (39 ×24) = 256

16384 + (x - 25) * 8 = 16736

(x - 25) * 8 = 16736 - 16384

(x - 25) = 16736 - 16384 / 8
x-25 = 44
x=69


INTCTxx[15:0] × PSUMxx[7:0] × 24 = OSCIN 频率 / VD 频率
INTCTxx[15:0] × 768 = OSCIN 频率 / 转动频率

通过以上两个公式,得出以下公式:
INTCTxx[15:0] × PSUMxx[7:0] × 24 = 24 / 60

INTCTxx[15:0] = 1 / 60 / PSUMxx[7:0]
PSUMxx[7:0] = 1 / 60 / INTCTxx[15:0] = 53

INTCTxx[15:0] = 24MHz / (100Hz × 768) =312
INTCTxx[15:0] × PSUMxx[7:0] × 24 = 24 / 60

INTCTxx[15:0] = 24 /60 / (53 * 24) = 314

PWM频率 = 系统时钟48MHZ/48/10000 = 100HZ

占空比 = 脉宽值(Pulse)/装载值(Period)*100% = 4999/9999 * 100% = 49.9%

PWM 频率 = OSCIN 频率 / ((PWMMODE × 23 ) × 2PWMRES )

PWM 频率 = 24 / ((1 × 8 ) × 1 ) = 3 * 10^3
PWM 频率 = 24 / ((1 × 8 ) × 2 ) = 1.5 * 10^3
PWM 频率 = 24 / ((1 × 8 ) × 4 ) = 0.75 * 10^3

驱动器 X 最大占空比 = PPWx/ (PWMMODE × 8)

最大占空比 = 200 / (28*8) = 0.89
通过结论 PWMMODE不能大于PPWx,不然占空比会超过100%
当 PWMMODE = 10, PPWx = 96
最大占空比 = 96 / (10*8) = 1.2*10^3 = 120%

步距角=360/(2*相数*转子齿数);

360/(2*2*5) = 18°C

VSM08142电机
18°c步距角

转一圈需要多少个脉冲
360°C / 18°C =  20pps

通过公式推导得出结果:(如有错误请及时指出谢谢!)

20pps 就走了18°C。

1)那么1°C是多少pps
20pps / 18°C = 1.11pps,那么1°C是1.11pps。 

2)那么1pps走了多少°C
18°C / 20pps = 0.9°C,那么1pps走了0.9°C。 


64细分等分
18 / 64= 0.28125,得出每一个细分就是0.2°C
通过上面可以得出,1°C / 0.2°C = 5;
0.2°C * 5 = 1°C = 1.11pps
那么:一个细分是多少pps?
1.11 / 5 = 0.222pps
各个放大100倍:
20°C = 22pps

128细分等分
18 / 128= 0.140625,得出每一个细分就是0.14°C
通过上面可以得出,1°C / 0.14°C = 7.14285
0.14°C * 7.142 = 1°C = 1.11pps
那么:一个细分是多少pps?
1.11 / 7.142 = 0.155pps
各个放大100倍:
14°C = 15pps

256细分等分
18 / 256 = 0.0679,得出每一个细分就是 0.067°C
通过上面可以得出,1°C / 0.067°C = 14.9253
0.067°C * 14.9253 = 1°C = 1.11pps
那么:一个细分是多少pps?
1.11 / 14.9253  = 0.0743pps
各个放大100倍:
6°C = 7pps


360/(2*2*10) = 9°C

VSM08161电机
9°c步距角

转一圈需要多少个脉冲
360°C / 9°C =  40pps

 

补充部分:可能和上面介绍有小部分重复内容,自行辨识

t = n×8192/24MHz

n = 24/t/8192

PWM 频率 = OSCIN 频率 / ((PWMMODE × 2^3 ) × 2^PWMRES )

推导出:
PWM 频率 = 24 / ((1 × 2^3 ) × 2^0 ) = 3000

PWM 频率 = 24 / ((2 × 2^3 ) × 2^1 ) = 1500

PWM 频率 = 24 / ((3 × 2^3 ) × 2^2 ) = 250‬

寄存器:0x22
PHMODAB[5:0](相位矫正α电机)

PHMODCD[5:0](相位矫正β电机)

000000
0000010.7°
01111121.8°
100000-22.5°
111111-0.7°
减幅单位360° / 512 = 0.70°

 

 

 

 

 

 

步进电机线圈之间的相位差一般为 90°。但是,因为电机的不同,或者工艺偏差,相位差也会偏
移出 90°。因此,即使驱动波形电流的相位差 90°,但是电机本身不是相差 90°,也会产生转矩
纹波,噪声还是存在的。
这个设置主要是减少由于电机变化时产生的转矩纹波。
 

寄存器 0x23
最大占空比由下式进行计算:
驱动器 X 最大占空比 = PPWx/ (PWMMODE × 8)


当 PPWA[7:0] = 200,PWMMODE[4:0] = 28,最大占空比为
200/28/8=0.89=89%

96/10/8=120%


PSUMAB[7:0](α电机步进数)
PSUMCD[7:0](β电机步进数)

如果要停止电机转动,设置 PSUMXX[7:0]=0.

寄存器值                                      总步数
 64 细分模式128 细分模式256 细分模式
0000
1500ns250ns125ns
max32.8ms16.4ms8.2ms
n12n/24MHz6n/24MHz3n/24MHz

 

 

 

 

 

 

BRAKEAB(α电机刹车状态)CCWCWAB(α电机转动方向)
CCWCWCD(β电机转动方向)
方向定义:
设置值          电机转动方向
0                   正向
1                   反向

BRAKECD(β电机刹车状态)
刹车定义:
设置值         α电机刹车
0                  正常状态
1                  刹车状态


ENDISAB(α电机 Enable/Disable)
ENDISCD(β电机 Enable/Disable)

ENDISAB 和 ENDISCD 分别设置α电机和β电机的输出控制。
当 ENDISxx = 0 时输出高阻态。然而,内部的激励位置计数器在 ENDISxx = 0 仍然保持计数。
因此,当在正常状态下想要停止电机,设置 PSUMxx[7:0] = 0,而不是设置 ENDISxx = 0.

设置值         电机输出状态
0                 输出关闭(高阻态)
1                 输出打开

MICROAB(α电机正弦波分频数)
MICROCD(β电机正弦波分频数)
MICROAB 和 MICROCD 分别设置α电机和β电机的正弦波分频数。
64 分频的波形如第 26 页所示。

MICROAB                   分频数
00      256
01256
10128
1164

 

 

 

 

 

 

INTCTAB[15:0]和 INTCTCD[15:0]分别设置α电机和β电机的一个步进的周期。
INTCTAB(α电机 1 个步进周期)
INTCTCD(β电机 1 个步进周期)

寄存器值                                      总步数
 64 细分模式128 细分模式256 细分模式
0000
1500ns250ns125ns
max32.8ms16.4ms8.2ms
n12n/24MHz6n/24MHz3n/24MHz

 

 

 

 

 

 

当 INTCTAB[15:0]=0,只要 pwm 最大占空比不为 0,电机就保持在释放时状态。
举例说明:
当 INTCTAB[15:0]=400 时,64 细分下每步周期
    12*400/24MHz=0.2ms
因此,每个正旋波周期为 12.8ms(78.1Hz);同样计算,128 细分与 256 细分下也为 12.8ms。

对应的芯片手册:下载连接,当然也可以去官网:下载链接

 

总结:想控制步进电机,首先需要花时间去了解电机的运作原理,其次再去了解驱动电机芯片,电机这个学问还是有点深度,还是需要花点时间揣摩才行。好了,废话有点多,本篇只要是给自己做个记录。

 

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ch_champion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值