This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DRV8302:关于 DRV8302电路问题的技术帮助请求

Guru**** 1796120 points
Other Parts Discussed in Thread: DRV8302, DRV8161EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1408156/drv8302-technical-assistance-request-for-drv8302-circuit-issues

器件型号:DRV8302
主题中讨论的其他器件: DRV8161EVM

工具与软件:

如果我在使用 DRV8302电路时遇到一些问题、可以联系我来请求技术帮助。 最初、我遇到了集成降压转换器无法输出5伏电压的问题、因此我通过将 EN_BUCK 引脚连接到 GND 而改用外部电源来禁用该问题。

在第一个试验期间、电机只在没有转动的情况下振动、之后不久、引脚29和30烧毁、显示 nFAULT 和 nOCTW 错误。 在第二个试用中、我避免了将任何元件连接到降压转换器、并将引脚55接地。 不幸的是、系统通电后、卡烧坏、针脚55也损坏。

我寻求您的支持以了解 IC 是否仍正常运行、并了解将所需的信号输入到电路中。 我将六步换向算法与 STM32F105搭配使用来生成信号。 此问题是否与硬件或软件有关? 我已检查所有内部电源引脚、它们的值处于可接受的范围内。

您可以从此处访问项目文件:

https://drive.google.com/drive/folders/1kg5lvlmvnN4wENb28xE1LVQ3SBfBA0m2?usp=sharing

以下是我的实验中使用的一些控制代码:

/****************************** STATE 1 *********************************/
if (HALL_A==1 && HALL_B==0 && HALL_C==1 )
{
//B->A
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_1, 0.0);	//AH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_2, Duty);//BH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_3, 0.0);	//CH

    HAL_GPIO_WritePin(INL_A_GPIO_Port, INL_A_Pin, 1 );//AL
	HAL_GPIO_WritePin(INL_B_GPIO_Port, INL_B_Pin, 0 );//BL
	HAL_GPIO_WritePin(INL_C_GPIO_Port, INL_C_Pin, 0 );//CL
}
/****************************** STATE 2 *********************************/
else if (HALL_A==1 && HALL_B==0 && HALL_C==0 )
{
//C->A
	set_PWM_duty_cycle(&htim1, TIM_CHANNEL_1, 0.0); //AH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_2, 0.0); //BH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_3, Duty); //CH

	HAL_GPIO_WritePin(INL_A_GPIO_Port, INL_A_Pin, 1);//AL
	HAL_GPIO_WritePin(INL_B_GPIO_Port, INL_B_Pin, 0);//BL
	HAL_GPIO_WritePin(INL_C_GPIO_Port, INL_C_Pin, 0);//CL


}
/****************************** STATE 3 *********************************/
else if (HALL_A==1 && HALL_B==1 && HALL_C==0 )
{
	//C->B
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_1, 0.0); //AH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_2, 0.0); //BH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_3, Duty); //CH

    HAL_GPIO_WritePin(INL_A_GPIO_Port, INL_A_Pin,0 );//AL
	HAL_GPIO_WritePin(INL_B_GPIO_Port, INL_B_Pin, 1);//BL
	HAL_GPIO_WritePin(INL_C_GPIO_Port, INL_C_Pin, 0);//CL
}
/****************************** STATE 4 *********************************/
else if (HALL_A==0 && HALL_B==1 && HALL_C==0 )
{
    //A->B
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_1, Duty); //AH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_2, 0.0); //BH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_3, 0.0); //CH

    HAL_GPIO_WritePin(INL_A_GPIO_Port, INL_A_Pin, 0);//AL
	HAL_GPIO_WritePin(INL_B_GPIO_Port, INL_B_Pin, 1);//BL
	HAL_GPIO_WritePin(INL_C_GPIO_Port, INL_C_Pin, 0);//CL
}
/****************************** STATE 5 *********************************/
else if (HALL_A==0 && HALL_B==1 && HALL_C==1 )
{
    //A->C
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_1, Duty); //AH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_2, 0.0); //BH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_3, 0.0); //CH

	HAL_GPIO_WritePin(INL_A_GPIO_Port, INL_A_Pin, 0);//AL
	HAL_GPIO_WritePin(INL_B_GPIO_Port, INL_B_Pin, 0);//BL
	HAL_GPIO_WritePin(INL_C_GPIO_Port, INL_C_Pin, 1);//CL
}
/****************************** STATE 6 *********************************/
else if (HALL_A==0 && HALL_B==0 && HALL_C==1 )
{
    //B->C
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_1, 0.0); //AH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_2, Duty); //BH
    set_PWM_duty_cycle(&htim1, TIM_CHANNEL_3, 0.0); //CH

    HAL_GPIO_WritePin(INL_A_GPIO_Port, INL_A_Pin,0 );//AL
	HAL_GPIO_WritePin(INL_B_GPIO_Port, INL_B_Pin,0 );//BL
	HAL_GPIO_WritePin(INL_C_GPIO_Port, INL_C_Pin,1 );//CL
}
/***********************************************************************/

我希望你能帮助我尽快解决这些问题。 感谢您的关注和帮助。

此致、