主控板用的是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, 现在电机不转 ,也没有声音,我考虑会不会 是驱动电流的问题。小白板的电流太小了。 |
#define nENBL_on HAL_GPIO_WritePin(DRV8834_GPIO_PORT,GPIO_PIN_2,GPIO_PIN_RESET)//使能
{
sleep_off;
nENBL_on;
HAL_Delay(2);
dir_opsitive; //正转
HAL_TIM_PWM_Start(&htim9,TIM_CHANNEL_1);
}
DRV8834 控制STEP引脚用示波器看,是有PWM输出的。我是用TIM9生成的PWM. 现在的问题是,控制端有PWM输入,但是测电机的A,A-,B,B-没有信号输出。。
检查了一下硬件,应该是之前有部分引脚,有虚焊的问题,重新焊好。现在问题是步进电机有声音了,但还是不转。请帮忙看一下。
刚才用示波器测输出端,A+A-有波形,B+B-没有,会是什么原因。
A+ ---》AOUT1
A- ---》AOUT2
B+ ---》BOUT1
B- ---》BOUT1
检查了一下硬件,应该是之前有部分引脚,有虚焊的问题,重新焊好。现在问题是步进电机有声音了,但还是不转。请帮忙看一下。
刚才用示波器测输出端,A+A-有波形,B+B-没有,会是什么原因。
A+ ---》AOUT1
A- ---》AOUT2
B+ ---》BOUT1
B- ---》BOUT1