[开发工具] L6470 问题请教

[复制链接]
 楼主| 天天向善 发表于 2022-9-15 11:48 | 显示全部楼层 |阅读模式
本帖最后由 天天向善 于 2022-9-15 11:50 编辑

我使用L6470 对电机进行驱动 但是遇到一个问题
就是 发现电机实际旋转的角度 和配置的不太一致
我做了几个速度,但是不同速度转的角度明显不对
我配置的64/1 12800 为200*64 应该是一圈 ,但是有的速度的情况下,明显不是一圈,即使感觉是一圈,正转和反转好像有不完全一样。
不知道是什么原因
下面是我的初始化配置,不知道哪里出问题了
  1. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ABS_POS, 0);       
  2. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_EL_POS, 0);       
  3. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MARK, 0);       
  4. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_SPEED, 0);
  5. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ACC, SPEED_PAR_ACC);
  6. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_DEC, SPEED_PAR_DEC);
  7. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_FAST);
  8. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MIN_SPEED, 0x0);
  9. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_FS_SPD, 0x27);
  10. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_HOLD, SPEED_KVAL_HOLD);
  11. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_RUN, SPEED_KVAL_RUN);
  12. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_ACC, SPEED_KVAL_ACC);
  13. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_DEC, SPEED_KVAL_DEC);
  14. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_INT_SPD, SPEED_IN_SPEED);
  15. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ST_SLP, SPEED_ST_SLP);
  16. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_FN_SLP_ACC, SPEED_SLP_ACC);
  17. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_FN_SLP_DEC, SPEED_SLP_DEC);
  18. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_K_THERM, 0x0);
  19. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_OCD_TH, 0x8);
  20. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_STALL_TH, 0x5f);
  21. // MotoStep_Cmd_SetPar(ADD_MOTOSTEP_STEP_MODE, MOTOSTEP_STEP_SEL_1_2 | MOTOSTEP_SYNC_SEL_1_2);
  22. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_STEP_MODE, MOTOSTEP_STEP_SEL_1_64 | MOTOSTEP_SYNC_SEL_64);
  23. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ALARM_EN, 0x0);
  24. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_CONFIG, 0x2E88);

下面是我设置的不同速度的代码:
  1. MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_FAST);
  2. osDelay(100);
  3. MotoStep_Cmd_Move(1,12800);
  4. osDelay(100);
  5. WAIT_MOTO_IDLE;
  6. osDelay(1000);
  7. MotoStep_Cmd_Move(0,12800);
  8. osDelay(100);
  9. WAIT_MOTO_IDLE;
  10. osDelay(1000);       
  11.        
  12.   MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_HIGH);               
  13.         osDelay(100);       
  14.         MotoStep_Cmd_Move(1,12800);                       
  15.         osDelay(100);       
  16.         WAIT_MOTO_IDLE;                               
  17.         osDelay(1000);       
  18.         MotoStep_Cmd_Move(0,12800);                       
  19.         osDelay(100);       
  20.         WAIT_MOTO_IDLE;               
  21.        
  22.         osDelay(1000);       

  23.   MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_MIDDLE);               
  24.         osDelay(100);       
  25.         MotoStep_Cmd_Move(1,25600);                       
  26.         osDelay(100);       
  27.         WAIT_MOTO_IDLE;                               
  28.         osDelay(1000);       
  29.         MotoStep_Cmd_Move(0,25600);                       
  30.         osDelay(100);       
  31.         WAIT_MOTO_IDLE;               
  32.        
  33.         osDelay(1000);       
  34.        
  35.   MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_LOW);               
  36.         osDelay(100);       
  37.         MotoStep_Cmd_Move(1,25600);                       
  38.         osDelay(100);       
  39.         WAIT_MOTO_IDLE;                               
  40.         osDelay(1000);       
  41.         MotoStep_Cmd_Move(0,25600);                       
  42.         osDelay(100);       
  43.         WAIT_MOTO_IDLE;               
  44.        
  45.         osDelay(1000);

图片是 用ST的工具生产的初始化参数
353516322a082062ff.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

2268

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

45

主题

2268

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部