主题:SysConfig 中讨论的其他器件
工具/软件:
大家好:
在过去的几天里、我一直在调试一个我想分享的棘手且零星的问题、希望如果其他人遇到同样的问题、它可以节省一些时间。
我的设置:
- EPWM0–2 用于电机 PWM
- 在 ICSSG0 上运行的 SDFM 和 EnDat
- 由 IEP0 比较事件触发的周期性采样
- IEP0 旨在与 EPWM0 同步、因此我通过 CMP1 禁用了 IEP0 的周期性复位
问题: 启动后、SDFM 和 EnDat 采样运行良好或根本无法正常运行。 我发现在非工作情况下、尽管 EPWM 和 IEP 的所有配置寄存器都与工作情况相同、但 IEP0 绝不会被 EPWM 同步输出事件复位。
有趣的是、我可以通过在 EPWM0 上手动触发软件同步来使其再次正常工作。
根本原因: EPWM 在 250MHz 下运行 、而 IEP0 设置为 200MHz 的 SysConfig 默认值 。 我怀疑 IEP0 未正确锁存或同步 EPWM 同步输出信号、导致由于频率不匹配而每隔第 5 个同步事件就会丢失。
因此、根据启动期间同步输出事件是否恰好落入该“盲点“、同步可能会失败。
解决方案: 将 IEP0 频率增加到 ≥EPWM 频率 。 这可确保 IEP0 能够可靠地检测同步输出事件。
理想情况下、该条件应由 SysConfig 强制执行或由 SDFM 驱动程序进行验证。
此致、
Stefan