■ 简介
42HS48EIS 电机是一款闭环步进电机,带有不丢步高效率低发热编码器。转速可达1500tpm。
▲ 42HS48EIS电机的基本参数
42HS48EIS步进电机标称工作电压24~36V。在 使用ULC2003驱动步进电机接口 实验中,实际测量该电机在供电电压大于15V以上都能够工作。当供电电压小于15V的时候,报警(ALARM+,ALARM-)出现。
如下是在 淘宝销售网站上 给出的步进电机的接口控制信号。 其中对于步进脉冲信号(PU+,PU-)的脉宽 需要大于(5us,半周期大于2.5us),因此,PU脉冲的最大频率为:
▲ ;步进电机的控制端和接口信号
如果按照42HS48EIS的步进细分表最大值(51200)来看,在最大细分( )下,它输出轴的转速最大为:
为了考察该驱动器的最快速度,本文通过实验来验证该款电机的最大转速参数。
▲ 42步进电机的细分表格
01实验方案
1.测量的基本方案
-
驱动电机信号控制器:
STC8K28步进电机ULC2003触发器 -
电机的工作电压:24V
-
电机转速测量: 从来在 使用高精度旋转编码器BH60测量步进电机转动角度 中的BH60测量方案。
▲ 实验驱动控制信号单片机板
2.高速PU脉冲产生1
在 STC8K28步进电机ULC2003触发器 电路中,** IO3(P2.0)** 对应是STC8H1K的高级PWM的PWM1P的输出,利用PWM1的输出来产生PU脉冲。
▲ 在缺省情况下产生的10kHz的方波波形
增加一个设置PWM的duty,Period的函数。修正文件:stc8h.c
void PWM1SetDutyPeriod(unsigned int nDuty, unsigned int nPeriod) {
_push_(P_SW2);
P_SW2 = 0x80;
PWM1_CCR1 = nDuty;
PWM1_ARR = nPeriod;
_pop_(P_SW2);
}
``
增加一个串口命令:
```c
} else IFARG0("dp") {
sscanf(SDA(1), "%d", &nNumber);
PWM1SetDutyPeriod(nNumber/2, nNumber);
}
3.设置输出频率
- 单片机的时钟频率:
- PWM的自动加载寄存器(ARR)的设定值
那么输出的PWM的频率
等于:
比如,通过命令: dp 1000之后,使用FLUKE45频率档测量输出的方波脉冲频率为为: 34964Hz(根据公式3计算的数值为:34965Hz).
根据(3)可以知道,给定
,所需要的ARR的设定值为:
比如输出公式(1)所指定的最高频率200kHz,所需要设定的ARR值为:ARR=174。
▲ 脉冲频率为200kHz是电机转动情况
电机的细分步骤为40000
4.最高频率
通过手工使用 dp 串口命令测试,可以看到当 dp 61时 电机还在转动,dp 60时,对应ARR= 60,步进电机停止转动。
因此,步进电机在工作电压为24V情况下最高频率通过实测为: ARR =61,理论频率值为:564.516kHz,实际测量频率:564.13kHz。
将电机的工作电压降低到16V,通过同样的过程,发现也是在ARR=61时,是最小的PWM周期。
※ 结论
在 42HS48EIS 的资料上,给出的工作电压范围是大于24V,小于36V,实际测量在工作电压15V时,依然能够工作。
电机的PU脉冲最大频率,经过实际测量可以达到564kHz,这个最高频率在工作电压24V,16V下都是一样的。
实验C51软件工程文件:C51\STC\Test\2020\Tools\ULC2003STC8H1K28\ULC2003STC8H1K28.uvproj ↩︎