主题中讨论的其他器件:TMDXIDDK379D、 C2000WARE
您好:
快速电流环路的引入提到了 PWM 立即更新模式、这是否指 CMPCTL [SHDWAMODE]= 1。
在这种情况下、它是否会导致 PWM 更新混乱、如下图所述
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.
您好:
快速电流环路的引入提到了 PWM 立即更新模式、这是否指 CMPCTL [SHDWAMODE]= 1。
在这种情况下、它是否会导致 PWM 更新混乱、如下图所述
感谢您的回复、我仍然无法确定如何立即更新 PWM。 ‘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 立即更新模式?
我认为有什么问题?
我很抱歉再次给你带来麻烦。
我已经准备好了。谢谢大家。