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:快速电流环路与放大器;PWM 立即更新

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/903367/ccs-tms320f28379d-fast-current-loop-pwm-immediate-update

器件型号:TMS320F28379D
主题中讨论的其他器件:TMDXIDDK379DC2000WARE

工具/软件:Code Composer Studio

您好:

 ‘C:\ti\c2000\C2000Ware_MotorControl_SDK_3_00_00\solutions\tmdxiddk379d\f2837x’处的快速电流环路相关代码 如下:

FCL_initPWM (EPWM1_base、EPWM2_base、EPWM3_base);
#define EPWM1_BASE 0x00004000U // EPWM1
#define EPWM2_base 0x00004100U // EPWM2.
#define EPWM3_base 0x00004200U // EPWM3

void FCL_initPWM (uint32_t BaseA、uint32_t baseB、uint32_t BASEC)

ePWM_DisableCounterCompareShadowImage LoadMode (BaseA、ePWM_COUNTER_COMPARE_A);
ePWM_DisableCounterCompareShadowImage LoadMode (baseB、ePWM_COUNTER_COMPARE_A);
ePWM_DisableCounterCompareShadowImage LoadMode (BASEC、ePWM_COUNTER_COMPARE_A);
pwmCompA =(uint32_t *)(BaseA + ePWM_O_CMPA);
pwmCompB =(uint32_t *)(baseB + ePWM_O_CMPA);
pwmCompC =(uint32_t *)(BASEC + ePWM_O_CMPA);
返回;

typedef 枚举

ePWM_COUNTER_COMPARE_A = 0、//!<计数器比较 A
ePWM_COUNTER_COMPARE_B = 2、//!<计数器比较 B
ePWM_COUNTER_COMPARE_C = 5、//!<计数器比较 C
ePWM_COUNTER_COMPARE_D = 7 //!<计数器比较 D
} ePWM_CounterCompareModule;

静态内联空
EPWM_DisableCounterCompareShadowImage LoadMode (uint32_t base、
ePWM_CounterCompareModule 兼容模块)

uint16_t shadowModeOffset;
uint32_t 寄存器偏移;

//
//检查参数
//
assert (ePWM_isBaseValid (base));

if ((compModule == ePWM_COUNTER_COMPARE_A)||
(COMPModule = ePWM_COUNTER_COMPARE_C))

shadowModeOffset = 4U;

其他

shadowModeOffset = 6U;

//
//获取寄存器偏移。 用于 A/B 或的 ePWM_O_CMPCTL
// ePWM_O_CMPCTL2用于 C&D
//
寄存器偏移= base + ePWM_O_CMPCTL +((uint32_t) compModule & 0x1U);

//
//禁用影子加载模式。
//
HWREGH (registerOffset)=(HWREGH (registerOffset)|
(0x1U <<shadowModeOffset);

其中:base=0x00004000U、compModule=0,因此 、registerOffset=0x00004000U+0x8U+0,指向 EPWM_CMPCTL_LOADAMODE、根据代码注释、是否应指向 EPWM_CMPCTL_SHDWAMODE 以激活 PWM 立即更新模式?

我认为有什么问题?