控制板:NUCLEO-F410RB
驱动芯片:DRV8834步进电机驱动(按官方手册自己做的板)
电机:驰海电机 2相4线20BY全金属齿轮减速步进电机
现在用示波器看输出端,A+A-有波形,B+B-没有,会是什么原因。
A+ —》AOUT1
A- —》AOUT2
B+ —》BOUT1
B- —》BOUT1
详细描述如下:
主控板用的是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,用示波器可以测出,A+ A-有波形 B+ B-没有波形 请帮忙看一下。
user6137916:
回复 Alvin Zheng:
18/19两个pin已连控制板的5V,还是没有波形。另外刚才不插电机的情况下,用示波器看了一下DRV8834的 AOUT1和AOUT2这2个管脚也是没有输出波形的。应该不是电机接线的事。很奇怪。
另外:使用电机就是普通的2相4线 齿轮减速步进电机 如图:
4个管脚分别接DRV8834 AOUT1, AOUT2, BOUT1,BOUT2,没有电机电源 ,您回复里说的18/19两个pin都要连电机电源指的是哪里?
18/19管脚我接的是控制板的5V. 会是我的原理图画的和手册的不一样吗?我觉得没有问题呀,请帮忙看一下。
user6137916:
回复 Alvin Zheng:
请帮忙看一下?
Alvin Zheng:
回复 user6137916:
18/19连接VM电源,正常STEP以后OUT会交替输出。你有看过nFault有没有报错吗?或者测量没有输出的两个pin脚的静态电阻,有没有芯片损坏情况?
user6137916:
回复 Alvin Zheng:
刚用示波器看了一下nFault的电平,如下图: 4v左右的脉冲,这样是对的吗?
另外我查手册说nFAULT: 我的理解是低电平报错,但我现在显示是 4v左右的脉冲,对吗?