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.

[参考译文] CCS/TMS320F28379D:F28379D 和 DRV8305中的信号 PWM

Guru**** 2539500 points
Other Parts Discussed in Thread: CONTROLSUITE, DRV8305

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/847955/ccs-tms320f28379d-signal-pwm-in-f28379d-and-drv8305

器件型号:TMS320F28379D
Thread 中讨论的其他器件:controlSUITEDRV8305

工具/软件:Code Composer Studio

下午好、我将使用正弦 PWM 信号来控制 DRV8305 MOSFET、因此生成的信号控制上分支 MOSFET、互补信号控制下分支 MOSFET、 
但生成的互补信号不符合预期。 有人能告诉我如何配置此互补信号吗? 代码如下所示:

va_sin = m*sin (wt);
vb_sin = m*sin (wt - 2*pi/3);
vc_sin = m*sin (wt + 2*pi/3);

(MOTOR->PwmARegs)->CMPA.bit.CMPA =(INV_PWM_Half_TBPRD*VA_sin)+INV_PWM_Half_TBPRD;
(MOTOR->PwmBRegs)->CMPA.bit.CMPA =(INV_PWM_Half_TBPRD*Vb_sin)+INV_PWM_Half_TBPRD;
(MOTOR->PwmCRegs)->CMPA.bit.CMPA =(INV_PWM_Half_TBPRD*VC_sin)+INV_PWM_Half_TBPRD;

谢谢

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

    下载 controlSUITE 作为以下链接、请参阅文件夹(\ti\controlSUITE\development_kits\TIDM-SERVO-LAUNCHXS)中的示例代码以配置 PWM。

    https://www.ti.com/tool/controlsuite

    BTW、请查看 DRV8305数据表、驱动器器件将自动生成高侧和低侧驱动信号之间的死区、死区时间也由 DRV8305寄存器进行配置。

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


    我已经在使用此代码、但当我设置 PWM 时、只有顶部分支 PWM 发生变化、互补 PWM 不会改变。

    使用的代码如下所示:

    浮点 VA_sin;
    float Vb_sin;
    浮点 VC_sin;
    #define PI 3.14159265358979
    #define pi_2 2*pi
    浮点 m=0.5;
    float omega_0=2*pi*60;
    #define TS 0.000025 //采样间隔(1/freq chav)
    float Theta_ind = 0;
    float wt=0;

    void Integrader_Theta (float * Theta_ind){
    //独立角度积分
    静态浮点 I_Theta[3]={0、0、0};

    I_Theta[0]= omega_0;//集成 ω 频率以获得 ω* t
    I_Theta[2]= I_Theta[2]+(I_Theta[0]+ I_Theta[1])*TS/2;
    I_Theta[1]= I_Theta[0];

    if (i_Theta[2]>= pi_2){//将角度值设置为2pi
    I_Theta[2]= 0;

    * Theta_ind = I_Theta[2];

    Integrador_Theta(&WT);

    va_sin = m*sin (wt);
    vb_sin = m*sin (wt - 2*pi/3);
    vc_sin = m*sin (wt + 2*pi/3);

    (MOTOR->PwmARegs)->CMPA.bit.CMPA =(INV_PWM_Half_TBPRD*VA_sin)+INV_PWM_Half_TBPRD;
    (MOTOR->PwmBRegs)->CMPA.bit.CMPA =(INV_PWM_Half_TBPRD*Vb_sin)+INV_PWM_Half_TBPRD;
    (MOTOR->PwmCRegs)->CMPA.bit.CMPA =(INV_PWM_Half_TBPRD*VC_sin)+INV_PWM_Half_TBPRD;

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


    是否有任何特定设置可调整或启用互补 PWM?

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

    抱歉、 调试代码的算法和控制逻辑不是我们可以通过论坛提供的支持。 请花点时间了解和调试。  在此论坛上、我们能够支持与特定器件和参考代码相关的问题。