您好!
我想使用 CMPSS1的低电平和高电平比较器来进行逐周期峰值电流控制。 当高电平比较器 处于活动状态时、低电平比较器 将不处于活动状态。 当低电平比较器处于活动状态时、 高电平比较器将不处于活动状态。 当我配置高电平和低电平比较器时、代码不起作用。 当我仅配置高比较器时、可以正常工作。
低电平比较器和高电平比较器不可能同时工作吗?
谢谢。
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.
您好!
我想使用 CMPSS1的低电平和高电平比较器来进行逐周期峰值电流控制。 当高电平比较器 处于活动状态时、低电平比较器 将不处于活动状态。 当低电平比较器处于活动状态时、 高电平比较器将不处于活动状态。 当我配置高电平和低电平比较器时、代码不起作用。 当我仅配置高比较器时、可以正常工作。
低电平比较器和高电平比较器不可能同时工作吗?
谢谢。
您好!
CMPSS 多路复用器配置为 HPMXSEL=0和 LPMXSEL=0 。 我不使用输出 X-BAR。 CMPSS 的输出为 TRIP5和 TRIP7。 TRIP5用于高电平比较器。 TRIP7用于低电平比较器。 它们链接到 DCBH 与组合行程。 低电平比较器的输出被反相、而比较器的输出由上升沿触发(DCxH 高电平)。 在 CMPSS 中启用异步路径。 高电平比较器在10ms 内工作。 然后、低电平比较器在10ms 内工作。 此场景会反复不断地重复。
谢谢。
尊敬的 Ahmet:
CMPSSn 低侧 DAC 输出反相似乎会导致清除或设置 EPWM 模块组合 MUX 跳闸时出现异常行为。
请注意、当设置(跳闸高电平或低电平) EPWM-B 动作限定器时、低侧跳闸的行为符合预期。 奇怪的是、低侧操作限定符 EPWM-B (CMPSSn 锁存或 CBC)随机拒绝清除。 如果设置了动作限定器 B (跳闸高电平)组合 MUX 设置、您可能会注意到闩锁 CCS 调试探针(寄存器视图)。 有时、清除故障标志似乎无效、复位 MCU 会清除这些标志。
BTW:确保 CMPSSn GPIO 输入设置为异步、它们甚至会同时切换10ms。
void setupPCMCCMPSS (void)
{
CMPSS_enableModule (CMPSS6_BASE);CMPSS_enableModule (CMPSS5_base);CMPSS_configHighComparator (CMPSS6_BASE、CMPSS_INSRC_DAC);
CMPSS_CONFIGHighComparator (CMPSS5_base、CMPSS_INSRC_DAC);
CMPSS_CONFIGLowComparator (CMPSS6_BASE、CMPSS_INSRC_DAC | CMPSS_INV_INVERRIDE);CMPSS_CONFIGLowComparator (CMPSS5_base、CMPSS_INSRC_DAC | CMPSS_INV_INVERRIDE);ASysCtl_selectCMPLUX (PMSCTL_CMPHPUX、PMASY0);
ASysCtl_selectCMPHPMUX (ASYSCTL_CMPHPMUX_SELECT_5、0);
ASysCtl_selectCMPLPMux (ASYSCTL_CMPLPMUX_SELECT_6、0);
ASysCtl_selectCMPLPMux (ASYSCTL_CMPLPMUX_SELECT_5、0);
CMPSS_CONFIGDAC (CMPSS6_BASE、(CMPSS_DACVAL_PWMSYNC | CMPSS_DACREF_VDDA | CMPSS_DACSRC_SHDW);CMPSS_CONFIGDAC (CMPSS5_BASE、(CMPSS_DACVAL_PWMSYNC | CMPSS_DACREF_VDDA)| CMPSS_DACSS_DACREF_VDDW;
EALLOW;
CMPSS_CONFIGureSyncSource (CMPSS6_BASE、2);
CMPSS_CONFIGureSyncSource (CMPSS5_base、3);
EDIS;
CMPSS_setDACValueHigh (CMPSS6_BASE、4096);
CMPSS_setDACValueHigh (CMPSS5_base、4096);
CMPSS_setDACValueLow (CMPSS6_BASE、0);
CMPSS_setDACValueLow (CMPSS5_base、0);
CMPSS_configOutputsHigh (CMPSS6_BASE、CMPSS_TRIP_ASYNC_COMP);
CMPSS_configOutputsHigh (CMPSS5_base、CMPSS_TRIP_ASYNC_COMP);
CMPSS_configOutputsLow (CMPSS6_BASE、CMPSS_TRIP_ASYNC_COMP);
CMPSS_configOutputsLow (CMPSS5_base、CMPSS_TRIP_ASYNC_COMP);
CMPSS_clearFilterLatchHigh (CMPSS6_BASE);
CMPSS_clearFilterLatchHigh (CMPSS5_base);
CMPSS_clearFilterLatchLow (CMPSS6_BASE);
CMPSS_clearFilterLatchLow (CMPSS5_base);
}