ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F4] 用L6470芯片驱动电机,转速过快就出现卡顿现象

[复制链接]
114|6
 楼主 | 2018-7-10 11:15 | 显示全部楼层 |阅读模式
本帖最后由 wei12123 于 2018-7-10 11:18 编辑

我用用L6470芯片驱动AM23HS5412-01电机,我细分1/8步,1步1.8度,6400步/s转速就出现卡顿现象,像是力矩不足一样
--------------------------------------------------------------------------------------------------------------------------------------------------
/* 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);

| 2018-7-10 12:29 | 显示全部楼层
升高驱动电压

评论

wei12123 2018-7-10 17:17 回复TA
真的是电压问题,万分感谢,,多谢多谢 
 楼主 | 2018-7-10 16:33 | 显示全部楼层

升高不了,我换了一个更大电压输出直流电源,好像超过一定阀值就卡住了,不知道是不是我配置有问题
| 2018-7-10 21:01 | 显示全部楼层
wei12123 发表于 2018-7-10 16:33
升高不了,我换了一个更大电压输出直流电源,好像超过一定阀值就卡住了,不知道是不是我配置有问题 ...

高速力矩小这个是正常的,因为电机转动的感生电动势把驱动电压抵消了.

你还可以考虑换同型号电感参数小的电机有利于提高转速的性能,但是低转速电流又很大,权衡一下.

步进电机就不太适合高速运动.
| 2018-7-10 21:32 | 显示全部楼层
需要驱动电压,电压要稳,硬件电路问题
| 2018-7-11 17:34 | 显示全部楼层
电压不足,速度快的话,提供的周期能量不足以驱动,所以就卡顿,或者发出震动的嗡嗡声。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

分享 快速回复 返回顶部 返回列表