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.

[参考译文] LAUNCHXL-F28P55X:PWM 宏和 PWM 高压模块

Guru**** 2515065 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1556270/launchxl-f28p55x-pwm-macro-and-pwm-hv-modules

器件型号:LAUNCHXL-F28P55X
主题:C2000WARE 中讨论的其他器件

工具/软件:

你(们)好

在文档或 dual_axis_servo_drive 代码中、哪里可以找到这两个模块的说明和实现?

谢谢

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

    Luca,  

    我已经将其分配给我们的电机代码专家。 他很快就会回答你的问题。 感谢您的耐心。

    此致、

    Sumit

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

    您好、

    我看不到进一步说明的文档、只有 https://www.ti.com/lit/ug/spruip4/spruip4.pdf?ts = 1756308970299 

    以下是用于 SVGEN 和 PWM 比较器值设置的相关代码。 希望它澄清了它。

    //
    //  MACRO to :-
    //      1. do SVGEN
    //      2. do PWMupdates
    //
    FCL_SVGEN_PWM_PDATE_MACRO();
        
    // FCL MACRO implementing SVGEN and PWM updates
    // used in both PI CONTROL and COMPLEX CONTROL
    //
    #define FCL_SVGEN_PWM_PDATE_MACRO()                                            \
    /*                                                                             \
     * ----------------------------------------------------------------------------\
     * Call the space vector gen. macro                                            \
     * ----------------------------------------------------------------------------\
     */                                                                            \
        svgen2.Tb = (svgen2.Ubeta - svgen2.Ualpha) / 2;                            \
        svgen2.Tc = svgen2.Tb - svgen2.Ubeta;                                      \
                                                                                   \
        svgen2.tmp2 = __fmax(__fmax(svgen2.Ualpha,                                 \
                                           svgen2.Tc), svgen2.Tb);                 \
        svgen2.tmp2 += __fmin(__fmin(svgen2.Ualpha,                                \
                                            svgen2.Tc), svgen2.Tb);                \
                                                                                   \
        svgen2.tmp1  =  ((-svgen2.tmp2) / 2) +                                     \
                                 pMotor->FCL_params.carrierMid;                    \
                                                                                   \
    /*                                                                             \
    * -----------------------------------------------------------------------------\
    * Computed Duty and Write to CMPA register                                     \
    * -----------------------------------------------------------------------------\
    */                                                                             \
         FCL_PWM_UPDATE_STYLE_3();
         
    #define FCL_PWM_UPDATE_STYLE_3()                                               \
        *(pMotor->pwmCompA) = (uint32_t)(svgen2.Tc + svgen2.tmp1);                 \
        *(pMotor->pwmCompB) = (uint32_t)(svgen2.Ualpha + svgen2.tmp1);             \
        *(pMotor->pwmCompC) = (uint32_t)(svgen2.Tb + svgen2.tmp1);

    此致、

    Kevin

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

    谢谢你。

    但是您给我发送的代码是 SVGEN 还是 PWM 宏/PWM HV?

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

    您好、

    这是两者。 有关 PWM 宏、请参见 FCL_pwm_update_style_3 () 函数、该函数根据 SVGEN 输入计算和设置 PWM 比较值。  pwmCompA/B/C 指针已经在 FCL_initPWM () 函数中提前定义,所以它直接写入 EPWM CMPA 寄存器。

        ptrMotor->pwmCompA = (uint32_t *)(basePhaseU + EPWM_O_CMPA);
        ptrMotor->pwmCompB = (uint32_t *)(basePhaseV + EPWM_O_CMPA);
        ptrMotor->pwmCompC = (uint32_t *)(basePhaseW + EPWM_O_CMPA);

    此致、

    Kevin

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

    我还要问一点。

    dual_axis_servo_drive 中使用的所有模块的说明可通过下载 designdrive 找到

    因为我当前没有安装该板、尽管由于 CCS 已经足够、所以代码仍然有效  

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

    您好、

    您可以导入 CCS 并参考 https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK 安装中的以下工程目录。

    C:\ti\c2000\C2000Control_SDK_5_04_00_00\solutions\boostxl_3phganinv\f28p55x Ware_Motor

    此致、

    Kevin