工具与软件:
您好!
我将电机驱动器(DRV8243 IC)用于驱动电机。
我正在使用 CC2340微控制器(工作电压 为3.3V)驱动 DRV8243 (我们为电机提供12v)。
我编写了一个代码来操作此电机、但却无法正常工作。 我已使用万用表进行了检查、但显示为零。 此外、我已经检查了所有 GPIO 电压电平、它运行正常。
我将分享原理图和代码供您参考、为此、请帮我忙。
void GPIO_init (void)
{
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、LOW);
GPIO_WRITE (CONFIG_GPIO_0_DRVOFF、低电平);
GPIO_WRITE (CONFIG_GPIO_1_PH_IN2、低电平);
GPIO_WRITE (CONFIG_GPIO_3_EN_IN1、低电平);
}
void hal_motor_lock (void)
{
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、LOW);
Usleep(30);
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、HIGH);//
// while (GPIO_read (CONFIG_GPIO_5_FAULT_N)==1);
GPIO_WRITE (CONFIG_GPIO_0_DRVOFF、LOW);
GPIO_WRITE (CONFIG_GPIO_3_EN_IN1、低电平);
GPIO_WRITE (CONFIG_GPIO_1_PH_IN2、高电平);
}
void hal_motor_unlock (void)
{
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、LOW);
Usleep(65000);
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、HIGH);
// while (GPIO_read (CONFIG_GPIO_5_FAULT_N)==1);
GPIO_WRITE (CONFIG_GPIO_0_DRVOFF、LOW);
GPIO_WRITE (CONFIG_GPIO_3_EN_IN1、高电平);
GPIO_WRITE (CONFIG_GPIO_1_PH_IN2、低电平);
}
void motor_normal (void)
{
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、LOW);
Usleep(30);
GPIO_WRITE (CONFIG_GPIO_2_SLEEP_N、HIGH);
GPIO_WRITE (CONFIG_GPIO_0_DRVOFF、HIGH);
GPIO_WRITE (CONFIG_GPIO_3_EN_IN1、低电平);
GPIO_WRITE (CONFIG_GPIO_1_PH_IN2、高电平);
}
void vTask1Function (void * ptr)//这是调用函数
{
GPIO_init ();
for (;;)
{
HAL_MOTOR_LOCK();
vTaskDelay (pdms_to_ticks (100));
motor_normal();
vTaskDelay (pdms_to_ticks (1000));
HAL_MOTOR_UNLOCK();
vTaskDelay (pdms_to_ticks (100));
motor_normal();
vTaskDelay (pdms_to_ticks (1000));
}
}
电机驱动器的原理图
谢谢、此致
Ratan Dalei