工具/软件:
我实现了一个简单的功能: 使用 CMPSS1.LOW_COMPARIER 将外部电压与内部阈值电压 进行比较-内部阈值电压通过 CMPSS1的内部 DAC 生成(例如设置为1500)。 当 外部电压低于 内部阈值电压(例如1500)时、CMPSS1.CTRIPL 会触发所有 ePWM。
- 我确保 CMPSS1.LOW_COMPARIER 配置正确;我们通过以下实验进行了验证:
- 当 外部电 压低于 内部阈值电压(例如1500)时、CMPSS1regs.COMPSTS.COMPLSTS = 1 --这是正确的
- 当 外部电压 高于 内部阈值电压(例如1500)时、CMPSS1regs.COMPSTS.COMPLSTS = 0 --这是正确的
- CMPSS1.low_compiler.CTRIPL 用于通过以下线路使 ePWM 跳变、从而通过 ePWM X-BAR 连接到 TRIP10:
XBAR_setEPWMMuxConfig (XBAR_TRIP10、XBAR_EPWM_MUX01_CMPSS1_CTRIPL);
XBAR_enableEPWMMux (XBAR_TRIP10、XBAR_MUX01);
- 奇怪的是:
- 如果我注释掉 上面的" XBAR_enableEPWMMux (XBAR_TRIP10、XBAR_MUX01)"行以断开 XBAR、EPWM 正常工作且未跳变-这是正确的
- 如果我 在上面重新添加线路" XBAR_enableEPWMMux (XBAR_TRIP10、XBAR_MUX01)"以连接 XBAR、无论 外部电 压低于或高于 内部阈值电压(例如1500)、即:无论 CMPSS1regs.COMPSTS.COMPLSTS 是1 还是 =0、 ePWM 都会立即跳闸
但只有一个 显式跳闸源可通过实现:
XBP_setEPWMMuxConfig (XBAR_TRIP10、XBAR_EPWM_MUX01_CMPSS1_CTRIPL) ;
为什么无论 CMPSS1输出是什么、ePWM 都跳变? 为什么不管 外部电 压低于或高于 内部阈值电压(例如1500)、ePWM 都跳闸、例如:无论 CMPSS1regs.COMPSTS.COMPLSTS 是1 还是 =0?