打印
[STM32L4]

6400步/s转速就出现卡顿现象

[复制链接]
520|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dingy|  楼主 | 2022-11-6 18:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
L6470芯片驱动AM23HS5412-01电机,我细分1/8步,1步1.8度,6400步/s转速就出现卡顿现象

使用特权

评论回复
沙发
supernan| | 2022-11-6 18:24 | 只看该作者
像是力矩不足一样

使用特权

评论回复
板凳
zhanghqi| | 2022-11-6 18:28 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
地板
dingy|  楼主 | 2022-11-6 18:30 | 只看该作者
--------------------------------------------------------------------------------------------------------------------------------------------------
/* Structure initialization by default values, in order to avoid blank records */
        dSPIN_Regs_Struct_Reset(&dSPIN_RegsStruct);
        
        /* Acceleration rate settings to 466 steps/s2, range 14.55 to 59590 steps/s2 */
        dSPIN_RegsStruct.ACC                 = AccDec_Steps_to_Par(30);
        /* Deceleration rate settings to 466 steps/s2, range 14.55 to 59590 steps/s2 */
        dSPIN_RegsStruct.DEC                 = AccDec_Steps_to_Par(466);
        /* Maximum speed settings to 488 steps/s, range 15.25 to 15610 steps/s */
        dSPIN_RegsStruct.MAX_SPEED         = MaxSpd_Steps_to_Par(10000);
        /* Minimum speed settings to 0 steps/s, range 0 to 976.3 steps/s */
        dSPIN_RegsStruct.MIN_SPEED        = MinSpd_Steps_to_Par(0);
        /* Full step speed settings 252 steps/s, range 7.63 to 15625 steps/s */
        dSPIN_RegsStruct.FS_SPD         = FSSpd_Steps_to_Par(252);
        /* Hold duty cycle (torque) settings to 10%, range 0 to 99.6% */
        dSPIN_RegsStruct.KVAL_HOLD         = Kval_Perc_to_Par(50);
        /* Run duty cycle (torque) settings to 10%, range 0 to 99.6% */
        dSPIN_RegsStruct.KVAL_RUN         = Kval_Perc_to_Par(99);
        /* Acceleration duty cycle (torque) settings to 10%, range 0 to 99.6% */
        dSPIN_RegsStruct.KVAL_ACC         = Kval_Perc_to_Par(30);
        /* Deceleration duty cycle (torque) settings to 10%, range 0 to 99.6% */
        dSPIN_RegsStruct.KVAL_DEC         = Kval_Perc_to_Par(10);               
        /* Intersect speed settings for BEMF compensation to 200 steps/s, range 0 to 3906 steps/s */
        dSPIN_RegsStruct.INT_SPD         = IntSpd_Steps_to_Par(200);
        /* BEMF start slope settings for BEMF compensation to 0.038% step/s, range 0 to 0.4% s/step */
        dSPIN_RegsStruct.ST_SLP         = BEMF_Slope_Perc_to_Par(0.3);
        /* BEMF final acc slope settings for BEMF compensation to 0.063% step/s, range 0 to 0.4% s/step */
        dSPIN_RegsStruct.FN_SLP_ACC = BEMF_Slope_Perc_to_Par(0.1);
        /* BEMF final dec slope settings for BEMF compensation to 0.063% step/s, range 0 to 0.4% s/step */
        dSPIN_RegsStruct.FN_SLP_DEC = BEMF_Slope_Perc_to_Par(0.063);
        /* Thermal compensation param settings to 1, range 1 to 1.46875 */
        dSPIN_RegsStruct.K_THERM         = KTherm_to_Par(1.3);
        /* Overcurrent threshold settings to 1500mA */
        dSPIN_RegsStruct.OCD_TH         = dSPIN_OCD_TH_6000mA;
        /* Stall threshold settings to 1000mA, range 31.25 to 4000mA */
        dSPIN_RegsStruct.STALL_TH         = StallTh_to_Par(4000);
        /* Step mode settings to 128 microsteps */
        dSPIN_RegsStruct.STEP_MODE         = dSPIN_STEP_SEL_1_8;
        /* Alarm settings - all alarms enabled */
        dSPIN_RegsStruct.ALARM_EN         = dSPIN_ALARM_EN_OVERCURRENT | dSPIN_ALARM_EN_THERMAL_SHUTDOWN
                | dSPIN_ALARM_EN_THERMAL_WARNING | dSPIN_ALARM_EN_UNDER_VOLTAGE | dSPIN_ALARM_EN_STALL_DET_A
                | dSPIN_ALARM_EN_STALL_DET_B | dSPIN_ALARM_EN_SW_TURN_ON | dSPIN_ALARM_EN_WRONG_NPERF_CMD;
        /* Internal oscillator, 2MHz OSCOUT clock, supply voltage compensation disabled, *
         * overcurrent shutdown enabled, slew-rate = 290 V/us, PWM frequency = 15.6kHz   */
        dSPIN_RegsStruct.CONFIG         = dSPIN_CONFIG_INT_16MHZ_OSCOUT_2MHZ | dSPIN_CONFIG_SW_HARD_STOP
                | dSPIN_CONFIG_VS_COMP_DISABLE | dSPIN_CONFIG_OC_SD_ENABLE | dSPIN_CONFIG_SR_260V_us
                | dSPIN_CONFIG_PWM_DIV_2 | dSPIN_CONFIG_PWM_MUL_1;        

        /* Program all dSPIN registers */
        dSPIN_Registers_Set(&dSPIN_RegsStruct);

使用特权

评论回复
5
shimx| | 2022-11-6 18:33 | 只看该作者
升高驱动电压

使用特权

评论回复
6
dingy|  楼主 | 2022-11-6 18:38 | 只看该作者
升高不了,我换了一个更大电压输出直流电源,好像超过一定阀值就卡住了

使用特权

评论回复
7
heweibig| | 2022-11-6 18:42 | 只看该作者
配置有问题

使用特权

评论回复
8
shimx| | 2022-11-6 18:45 | 只看该作者
高速力矩小这个是正常的,因为电机转动的感生电动势把驱动电压抵消了.

使用特权

评论回复
9
supernan| | 2022-11-6 18:51 | 只看该作者
你还可以考虑换同型号电感参数小的电机有利于提高转速的性能,但是低转速电流又很大,权衡一下.

使用特权

评论回复
10
wyjie| | 2022-11-6 18:53 | 只看该作者
步进电机就不太适合高速运动.

使用特权

评论回复
11
renyaq| | 2022-11-6 19:00 | 只看该作者
需要驱动电压,电压要稳,硬件电路问题

使用特权

评论回复
12
jiahy| | 2022-11-6 19:03 | 只看该作者
电压不足,速度快的话,提供的周期能量不足以驱动,所以就卡顿,或者发出震动的嗡嗡声。

使用特权

评论回复
13
liliang9554| | 2022-11-6 19:06 | 只看该作者
为什么你还能到6400step/s,相当于2000r/min了。

使用特权

评论回复
14
zhanghqi| | 2022-11-6 19:10 | 只看该作者
我用的L6470,驱动两相步进电机,试过了很多型号的电机,不管怎么调参数,速度就上不去。

使用特权

评论回复
15
chenjunt| | 2022-11-6 19:14 | 只看该作者
也就是1000-2000step/s,而且力矩很小,手握住转轴就开始振动

使用特权

评论回复
16
dingy|  楼主 | 2022-11-6 19:16 | 只看该作者
唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
17
Henryko| | 2022-11-6 21:10 | 只看该作者
高速力矩小是正常的啊

使用特权

评论回复
18
SantaBunny| | 2022-11-7 15:52 | 只看该作者
配置有问题吧

使用特权

评论回复
19
tpgf| | 2022-12-6 11:45 | 只看该作者
感觉6400有些过于精确了 是不是执行机构达不到这个精度啊

使用特权

评论回复
20
nawu| | 2022-12-6 12:05 | 只看该作者
可能是因为步距过小,力矩不够而产生的卡顿

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

粉丝