您好、专家!
我要求在这里为我的客户提供帮助。
客户遇到 AQCSFRC 无法将 EPWMxA 拉低。
它们使用 S/W 将"0x1"写入 EPWM1、EPWM2、EPWM3上的 AQCSFRC.CSFA、并发现只有 EPWM2无法 将 EPWM2A 拉至低电平、其他 EPWM1A、EPWM3A 是正确的。 EPWM2A 将 始终为高电 平、但在大约200ms 后、 AQCSFRC.CSFA 可将 EPWM2A 变为低电平。 由于终端客户发现了故障、因此无法通过硬件方法找到问题。
因此、我们检查以下步骤:
#1.F2803x ADC 采样和通信可以正常工作, 系统时钟正常。
#2.我们使用20ms 的中断来读取 ePWM 的寄存器值。 例如 EPWM1.TBPRD、 EPWM2.TBPRD、EPWM3.TBPRD 都为右3000、AQCSFRC 都为"0x01" 、EPWM2.TZFLG = 18;EPWM2.TZCTL = 2、关于 PWM 输出引脚的 GPIO_DATA、PWM1A 为0;PWM2A 为1;PWM3A 为0。 因此、PWM2A 通常不会被拉至低电平。
#3.我们检查 loadmode 关于 AQCSFRC ,加载时事件计数器等于零。 我们将检查零事件 是否生成。
#4.我们检查 TZ 配置代码,发现 EPWM2 CBC 和 DCAEVT2 生成。
#5.it 将在 PWM1A、PWM2A、PWM3A 之间移相。 PWM1A 是主控、 相移120°至 PWM2A、 相移240°至 PWM3A。
是否正是相移导致过零事件长时间丢失? 还有其他原因吗? 是否有任何关于其他软件排除的建议? 非常感谢~