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.

[参考译文] TMS320F2800137:将 HVMotorCtrl+PfcKit_v2.0 移植到通用电机控制软件。

Guru**** 2815985 points

Other Parts Discussed in Thread: CONTROLSUITE, TMS320F2800137

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1603964/tms320f2800137-porting-the-hvmotorctrl-pfckit_v2-0-to-universal-motor-control-software

器件型号: TMS320F2800137
Thread 中讨论的其他器件: controlSUITE

您好、

我们已经提供了一个基于 TMS320F2800137 芯片的通用电机控制实验室、但我们希望同时驱动 PMSM 和 ACIM 电机。 由于通用电机控制的 ACIM 支持有限、我们希望使用控制套件内的 HVMotorCtrl+PfcKit_v2.0 中提供的 ACIM 支持的代码 (ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HACI_sensored)。 通用电机控制与 HVMotorCtrl+PfcKit_v2.0 (HVACI_Sensored) 之间存在差异、我们需要询问我们所做的更改。 我们应该如何解决在 PWM 初始化部分中发现的差异?


相关的 PWM INIT 部分:


1.HVMotorCtrl+PfcKit_v2.0 (HVACI_Sensored):
#define AQCTLA_INIT_STATE ( CAD_SET + CAU_CLEAR )
#define PWM_INIT_MACRO (CH1、CH2、ch3、v)                     \
     /*设置同步*/                           \
…… 其他初始化代码

.... 其他初始化代码

.... 其他初始化代码
     /*初始化动作限定符输出 EPWM1-EPWM3*/    \的寄存器
     (*ePWM[CH1]).AQCTLA.ALL = AQCTLA_INIT_STATE;             \
     (*ePWM[CH2]).AQCTLA.ALL = AQCTLA_INIT_STATE;             \
     (*ePWM[ch3]).AQCTLA.ALL = AQCTLA_INIT_STATE;             \
                                      \

...... 其他初始化代码

… 其他初始化代码

… 其他初始化代码

2.通用电机控制

    EPWM_setActionQualifierAction (obj->pwmHandle[CnT]、
                   EPWM_AQ_OUTPUT_A、
                   EPWM_AQ_OUTPUT_HIGH、
                   EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);

    EPWM_setActionQualifierAction (obj->pwmHandle[CnT]、
                   EPWM_AQ_OUTPUT_A、
                   EPWM_AQ_OUTPUT_HIGH、
                   EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);

    EPWM_setActionQualifierAction (obj->pwmHandle[CnT]、
                   EPWM_AQ_OUTPUT_A、
                   EPWM_AQ_OUTPUT_LOW、
                   EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);

    EPWM_setActionQualifierAction (obj->pwmHandle[CnT]、
                   EPWM_AQ_OUTPUT_A、
                   EPWM_AQ_OUTPUT_LOW、
                   EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);

----------------------------------------------------------------------------------------

如何解决“合格行动“中的差异?

我们尝试通过写入周期 pPWMData->cmpValue[pwmCnT]而不是 pPWMData->cmpValue[pwmCnT]来反转触发时间。


Uint16_t 周期= EPWM_getTimeBasePeriod (obj->pwmHandle[0]);
用于 (pwmCnt=0;pwmCnt<3;pwmCnt++)

// cmpValue 已在主文件中计算。

//直接写入 CMPA 和 CMPB
EPWM_setCounterCompareValue (obj->pwmHandle[pwmCnT]、
EPWM_COUNTER_COMPARE_A、
Period - pPWMData->cmpValue[pwmCnT]);
EPWM_setCounterCompareValue (obj->pwmHandle[pwmCnT]、
EPWM_COUNTER_COMPARE_B、
Period - pPWMData->cmpValue[pwmCnT]);
};


该解决方案是否合适?

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

    提醒

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

    您好 Yilmaz — 不幸的是,我找不到一位专家来回顾为什么在解决方案之间做出了更改。