请选择 进入手机版 | 继续访问电脑版
搜索
查看: 139|回复: 7

[求助] stm32f410 + DRV8834 控制2相4线 步进电机 不转动

[复制链接]

该用户从未签到

20

主题

81

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-10-23
发表于 2019-8-21 14:00:40 | 显示全部楼层 |阅读模式
主控板用的是ST的 nucleo-F410RB 小白板。 驱动芯片用的是TI的DRV8834,驱动板是按照官方DRV8834的datasheet里的 typical application自己做的板子(附图是自己画的原理图和官方手册推荐的原理图对照,一模一样做的板子

程序是自己按照手册的说明写的。附上电机这部分程序,如下:管脚定义如下:
#define DRV8834_RCC_CLK_ENABLE()         __HAL_RCC_GPIOC_CLK_ENABLE()
#define DRV8834_GPIO_PIN                 (GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2)
#define DRV8834_GPIO_PORT                GPIOC


#define dir_opsitive                    HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_0,GPIO_PIN_SET)
#define dir_negative                    HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_0,GPIO_PIN_RESET)//方向

#define sleep_off                       HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_1,GPIO_PIN_SET)
#define sleep_on                        HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_1,GPIO_PIN_RESET)//

#define nENBL_off                       HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_2,GPIO_PIN_SET)
#define nENBL_on                        HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_2,GPIO_PIN_RESET)//使能





我写的是一个控制正反转的程序,设置一个变量pid_input ,为了方便控制正反转
void user_app_motorcontrol(float pid_input){
  if (pid_input > 0)   //大于0
  {
        
       sleep_off;
       nENBL_on;
       HAL_Delay(2);
       dir_opsitive;   //正转
       HAL_TIM_PWM_Start(&htim9,TIM_CHANNEL_1);
  }
  if (pid_input < 0)  //小于0
  {

      sleep_off;
      nENBL_on;
      HAL_Delay(2);
      dir_negative; //反转
      HAL_TIM_PWM_Start(&htim9,TIM_CHANNEL_1);

  }
}


为了方便测试,在main里 我写了一个跑正转的函数。
while (1)
  {
    user_app_motorcontrol(1);
    HAL_Delay(2000);        
  }
附图有DRV8834的控制时序图(附图有datasheet截图)。默认情况下,nENBL,STEP,DIR,M0,M1,nSLEEP 都是有下拉的(附图有功能方框图)M0 M1 ,我默认悬空为0,查手册table3为full step运行。
对于DRV8834驱动步进电机,都说只要给STEP引脚驱动频率就可以使步进电机转起来。可我这个接上线,我用万用表测,DRV8834有电压(我用的是小白板上的5V和GND)STEP端我用的是TIM9的channe 1 出的PWM,用示波器可以测出,但电机就是不转,连声音也没有,就像没有启动一样。请帮忙看一下。



另外附上datasheet里的简易原理图  。DRV88334 我用的是  nucleo小白板上的5v, 现在电机不转 ,也没有声音,我考虑会不会 是驱动电流的问题。小白板的电流太小了。

原理图.jpg
410.jpg
功能方框图.jpg
简易原理图.jpg
时序图.jpg
细分.jpg
回复

使用道具 举报

该用户从未签到

20

主题

81

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-10-23
 楼主| 发表于 2019-8-21 14:28:27 | 显示全部楼层
刚刚换了外接的9V 2.3A的小电源,不管用!!!
回复 支持 反对

使用道具 举报

该用户从未签到

98

主题

1003

帖子

189

蝴蝶豆

论坛元老

最后登录
2019-10-23
发表于 2019-8-21 14:52:14 | 显示全部楼层
DRV8834芯片的使能控制打开了吗
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

1091

帖子

249

蝴蝶豆

论坛元老

最后登录
2019-10-23
发表于 2019-8-21 15:16:19 | 显示全部楼层
建议先看看控制信号正常不,直接上电机不怕烧机么
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

81

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-10-23
 楼主| 发表于 2019-8-22 08:26:45 | 显示全部楼层
TLLED 发表于 2019-8-21 14:52
DRV8834芯片的使能控制打开了吗

#define nENBL_off         HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_2,GPIO_PIN_SET)
#define nENBL_on      HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_2,GPIO_PIN_RESET)//使能


main函数里

if (pid_input > 0)   //大于0
  {
        
       sleep_off;
       nENBL_on;
       HAL_Delay(2);
       dir_opsitive;   //正转
      HAL_TIM_PWM_Start(&htim9,TIM_CHANNEL_1);
  }

手册里对eENBL是这么描述的,在indexer  mode下,低电平有效。见截图

nENBL.jpg
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

81

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-10-23
 楼主| 发表于 2019-8-22 08:32:30 | 显示全部楼层
子曰好人 发表于 2019-8-21 15:16
建议先看看控制信号正常不,直接上电机不怕烧机么

DRV8834 控制STEP引脚用示波器看,是有PWM输出的。我是用TIM9生成的PWM. 现在的问题是,控制端有PWM输入,但是测电机的A,A-,B,B-没有信号输出。。
1.jpg
2.jpg
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

81

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-10-23
 楼主| 发表于 2019-8-22 15:10:18 | 显示全部楼层
TLLED 发表于 2019-8-21 14:52
DRV8834芯片的使能控制打开了吗

检查了一下硬件,应该是之前有部分引脚,有虚焊的问题,重新焊好。现在问题是步进电机有声音了,但还是不转。请帮忙看一下。

刚才用示波器测输出端,A+A-有波形,B+B-没有,会是什么原因。

A+ ---》AOUT1
A- ---》AOUT2
B+ ---》BOUT1
B- ---》BOUT1
6.JPG
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

81

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-10-23
 楼主| 发表于 2019-8-22 15:10:37 | 显示全部楼层
子曰好人 发表于 2019-8-21 15:16
建议先看看控制信号正常不,直接上电机不怕烧机么

检查了一下硬件,应该是之前有部分引脚,有虚焊的问题,重新焊好。现在问题是步进电机有声音了,但还是不转。请帮忙看一下。

刚才用示波器测输出端,A+A-有波形,B+B-没有,会是什么原因。

A+ ---》AOUT1
A- ---》AOUT2
B+ ---》BOUT1
B- ---》BOUT1
6.JPG
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2019-10-24 03:08 , Processed in 0.095770 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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