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.

[参考译文] DRV8311:如何设置寄存器以获取具有 tspi 和内部 PWM 正弦信号的 BLDC 电机

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1420519/drv8311-how-i-have-to-set-the-registers-to-get-a-bldc-motor-with-tspi-and-internal-pwm-sinals-to-turn

器件型号:DRV8311

工具与软件:

尊敬的专家:

我遇到 DRV8311P BLDC 驱动程序问题。 我正在使用 tSPI 协议、它运行良好、但我无法使 BLDC 工作、因此我得到120°相移 PWM。 我只想知道如何设置寄存器以获取具有 tspi 和内部 PWM 正弦波的 BLDC 电机。 我只会在输出 a、b 和 c 上获得同步 PWM

我看了产品页面上提供的所有信息。  不幸的是、我似乎仍然对这件事缺乏一些了解。  
我仍然不确定如何配置  PWM_STATE  寄存器以驱动 BLDC 电机。 当我在当前配置下查看输出(OUTA、OUTB、OUTC)时、这些输出不是120度相移、而是同步。 当然、这会导致电机不旋转。

您能给我提供有关如何配置寄存器以驱动 BLDC 电机的任何具体提示吗?

此致、

Josel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Josel:  

    感谢您的提问!  

    您能帮助提供您当前的寄存器设置吗? 我可以帮助您调整已设置的内容、以便更轻松地开始此过程。  

    此致、

    -约书亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Joshua:

    当然! 非常感谢您的快速回复和帮助。

    我刚刚更改了以下寄存器:

    • 0x17 := 0x0001
    • 0x18 := 0x0800
    • 0x19 := 0x0400
    • 0x1A:= 0x0400
    • 0x1b := 0x0400
    • 0x1D:= 0x0400

    所有其他项均为默认值。

    结果是 A、B 和 C 上的同步 PWM

    此致、

    Josel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Josel:  

    感谢您发送编修。   

    打开 PWM 生成模式后、您需要在换向中设置合适的 PWMX_STATES、如您在第一篇文章中所提到的那样。 (请参阅下表)

    可能会发生的情况是 PWM 生成正在工作、PWM 在 MCU 和驱动器之间同步、但实际 MOSFET 状态未按6步换向顺序正确设置(对于梯形)。

    您需要设置代码、以便读取霍尔状态并根据6步梯形换向更新状态位置(请参阅有关梯形换向方法的 TI 视频: https://www.ti.com/video/6011229676001)

    请参阅我们 DRV8311EVM 中霍尔状态配置的示例启动代码:  

    //检查霍尔传感器
    HALL_READ =((GpioDataRegs.GPBDAT.bit.GPIO58 << 2)|(GpioDataRegs.GPADAT.bit.GPIO30 << 1)|(GpioDataRegs.GPBDAT.bit.GPIO40 << 0));
    HALL_STATE =(HALL_READ^0xF)&0x7;
    IF (HALL_STATE)

    开关(HALL_STATE)

    案例1:
    //B-C
    SET_HS0_LS0 (&epwm6_info);
    SET_PWM (&epwm5_info、CURRENT_DUTY_CYCLE);
    SET_HS0_LS1 (&epwm3/info);
    休息;
    案例2:
    //A-C
    SET_PWM (&epwm6_info、current_duty_cycle);
    SET_HS0_LS1 (&epwm5_info);
    SET_HS0_LS0 (&epwm3/info);
    休息;
    案例3:
    //A-B
    SET_PWM (&epwm6_info、current_duty_cycle);
    SET_HS0_LS0 (&epwm5_info);
    SET_HS0_LS1 (&epwm3/info);
    休息;
    情况4:
    //C-B
    SET_HS0_LS1 (&epwm6_info);
    SET_HS0_LS0 (&epwm5_info);
    SET_PWM (&epwm3/info、CURRENT_DUTY_CYCLE);
    休息;
    情况5:
    //C-A
    SET_HS0_LS1 (&epwm6_info);
    SET_PWM (&epwm5_info、CURRENT_DUTY_CYCLE);
    SET_HS0_LS0 (&epwm3/info);
    休息;
    情况6:
    //B-A
    SET_HS0_LS0 (&epwm6_info);
    SET_HS0_LS1 (&epwm5_info);
    SET_PWM (&epwm3/info、CURRENT_DUTY_CYCLE);
    休息;
    }//end of switch
    }//结束 IF

    我希望这些信息对您有所帮助、并使您能够继续前进。

    此致、

    -约书亚