MS41969 是一款双通道 12V 步进电机驱动芯片,通过具有电流细分的电压驱动方式以及扭矩纹波修正技术,实现了超低噪声微步进驱动。芯片另外内置一个直流电机驱动器。
MS41969 内置了晶振放大模块,可以使用无源晶振。
[size=1.412em]主要特点
电压驱动方式,256 细分微步进驱动电路(两通道)
每个 H 桥最大驱动电流±1.2A
四线串行总线通信控制马达
内置直流电机驱动,最大驱动电流±0.5A
无源晶振
QFN36 封装(带散热片)
[size=1.412em]应用
机器人,精密工业设备
摄像机
监控摄像机
[size=1.412em]封装图
[size=1.412em]内部框图
[size=1.412em]管脚图
[size=1.412em]管脚说明图
[size=1.412em]模块框图
这个模块是一个用于聚焦和放大的步进电机驱动。下面的一些设置可以用来执行一系列的控制(下面是对α电机:驱动器 A/B 的描述。驱动器 C/D 和α电机执行一样的算法)
主要的设置参数:
1) 相位矫正:驱动器 A 和驱动器 B 的相位差目标在 90°;可以做-22.5°~ +21.8°的相位修正···PHMODAB[5:0]
2) 幅度设置:能独立设置驱动器 A/B 的负载驱动电流···PPWA[7:0],PPWB[7:0]
3) PWM 频率:驱动器输出的 PWM 波频率设置···PWMMODE[4:0],PWMRES[1:0]
4) 微步进分频数:微步数能设置成 64,128 和 256 微步进模式。···MICROAB[1:0]
5) 步进周期:电机旋转速度设置。电机旋转速度与正弦波的的微步进模式无关。···INTCTAB[15:0]
寄存器列表:
相关设置的建立时刻
建立时刻和相关时间如下所示
地址 27h 到 2Ah 的设置同 22h 到 25h 的设置相同,所以 27h 到 2Ah 的描述就省略了。如果相关寄存器被刷新,则每一个 VFx 周期来到时会实现一次设置的加载刷新。当同样的设置被执行时超过2 个 VFx 脉冲时,没有必要在每个 VFx 脉冲都写入寄存器数据。
DT1[7:0](起始点延时,地址 20h)
更新数据时间设置。在系统硬件复位后(引脚 RSTB:低→高),开始激励和驱动电机前(DT1 结束)这段时间内,必须设置此项.由于这个设置在每次 VFx 脉冲来到时更新,没有必要一定在起始点延迟时内写入。
PWMMODE[4:0],PWMRES[1:0](微步进输出 PWM 波频率,地址 20h)
设置微步进输出 PWM 波频率。需要在开始激励和驱动电机前设置执行(DT1 结束)
DT2A[7:0](起始点激励延时,地址 22h)
更新数据时间设置。复位后(引脚 RSTB:低→高),需要在开始激励和驱动电机前被设置执行(DT1 结束)
PHMODAB[5:0](相位矫正,地址 22h)
通过矫正线圈 A 和 B 的相位差,驱动器产生的噪声会减少。合适的相位矫正必须依据于电机的旋转方向和速度,此设置需要随着旋转方向(CCWCWAB)或者旋转速度(INTCTABA)的变化而改变。
PPWA[7:0],PPWB[7:0](峰值脉冲宽度,地址 23h)
设置 PWM 最大占空比。设置需要在开始激励和驱动电机前被设置执行(DT1 结束)
PSUMAB[7:0](步进电机步进数,地址 24h)
1 个 VFx 的时间间隔内的电机的转动次数设置。
每次 VFx 脉冲输入时,电机转动所设置的次数。因此,设置次数为“0”是可以停止电机的转动。当设置的转动次数总额超过了 1 个 VFx 脉冲的时间,超出部分会被取消。
CCWCWAB(转动方向,地址 24h)
电机转动方向设置。只要在选择转动方向前设置即可。
BRAKEAB(电机刹车设置,地址 24h)
刹车时设置电流为 0. 由于执行此设置时,很难得到电机的最终位置,所以此设置一般用于立即停止电机。
ENDISAB(电机工作 Enable/Disable,地址 24h)
设置电机工作使能。当设置为不使能时,电机引脚输出高阻态,电机正在转动时不要设置成
disable
LEDA(LES 设置,地址 24h)
LED 开/关设置。在 CS 的下降沿被设置。
(可以认为和电机驱动无关,能实现开/关的独立设置)。
MICROAB[1:0](正弦波分频数,地址 24h)
设置正弦波的分频数。这个设置不改变转动次数和转动速度。
只有当转速达不到要求时才需要设置此项。复位后(引脚 RSTB:低→高),设置有效.
INTCTAB[15:0](脉冲周期,地址 25h)
脉冲周期设置。转动速度决定于这个设置。
步进电机微步进驱动时,如何调整寄存器值
为了控制镜头,需要在每个 VFx 都要求设置电机转动次数和转动速度。相关设置的转动次数和速度的寄存器为:
INTCTxx[15:0]:设置每一步的时间(相应的,即转动速度)
PSUMxx[7:0]:每个 VFx 时段内转动总步数
当在连续的 VFx 时段内持续驱动电机,需要设置持续转动时间以适应 VFx 周期.
以下是电机转动时计算 INTCTxx[15:0]和 PSUMxx[7:0]的方法
1) 计算 INTCTxx[15:0](决定电机转动速度)
INTCTxx[15:0] × 768 = OSCIN 频率 / 转动频率
2) 由 INCTxx[15:0]计算 PSUMxx[7:0]。不能只看 PSUMxx[7:0]的值。
下面的等式成立时,持续转动时间和 VFx 时间相同,电机实现均匀转动
INTCTxx[15:0] × PSUMxx[7:0] × 24 = OSCIN 频率 / VFx 频率
3) 3) PSUMxx[7:0]设置完成后,由上式重新计算 INTCTxx[15:0]
举例说明
OSCIN 频率 = 27 MHz,VFx 频率 = 60Hz
计算 PSUMxx[7:0]和 INTCTxx[15:0]使电机在 800pps(1-2 相位)转动,1-2 相位,每步两拍,转化为相电流正旋波频率 800pps = 100Hz,所以
INTCTxx[15:0] = 27MHz / (100Hz × 768) =352
相应的
PSUMxx[7:0] = 1/(60Hz)×27MHz/ (352 ×24) = 53
重新计算 INTCTxx[15:0]得:
INTCTxx[15:0] = 1/(60Hz)×27MHz/ (53 ×24) = 354
如果上述 2)中等式左边比右侧小,转动时间比 VFx 时段小会引起不连续的转动。反之,超过 VFx 时段的转动会被取消。
直流电机E驱动电路
直流电机(摄像机中用于 IR-CUT)驱动采用SPI输入控制方式,通过写寄存器2Ch来控制H桥的
输出:
SWICH 寄存器:寄存器 REG_2CH<2> bit2,上电默认为‘0’’
IN1 寄存器:寄存器 REG_2CH<1>
bit1,上电默认为‘0’
IN2 寄存器:寄存器 REG_2CH<0>
bit0 上电默认为‘0’
输入输出真值表如下:
直流电机 SPI 模式下的延迟时间:
由于 SPI 串行输入写寄存器,每次写 22 个数据,还有 3 个控制位,所以从写寄存器 2CH,到控制时间真正起作用的传输延迟约为 Tsclk*25,如写数据串行时钟采用 0.5MHz,则数字延迟时间为 25*1/0.5M=50us ,此时 H 桥最大输出频率 10KHz
1.MS41969 具有背部散热 pad,大功率应用时必须接地。
2.OSCIN 管脚(PIN9)与 OSCOUT(PIN10)之间内置放大电路与 SMIT 电路,所以 OSCIN 与OSCOUT 之间可以使用低成本的无源晶振;也可以在 OSCIN 管脚接有源晶振的输出(OSCOUT 悬空),或则其他 MCU 的 CLK 输出,系统开发者都可以自由选择,直流输入与交流输入幅度要求有差异