您好!
我已经使用 Launchpad 完成了原型设计、并开始使用 JTAG 在内部 DSP 上对 C2000微控制器进行编程。 之前我对 GPIO 的写操作会导致 EPWM1和 EPWM4发生跳闸、并且工作正常。
然而、现在、写入 GPIO12来导致所有 PWM 在经过 X 时间后的低跳闸不再起作用。 我使用 TZA 和 TSB 在超过 X 个时间后导致 EPWM1和 EPWM4上发生跳闸。 为此、我在运行时向 GPIO 写入1、并在多个开关周期后向其写入0。 但是、GPIO 永远不会变为1、在整个代码执行过程中保持为0、但仍然不会导致 PWM 发生任何跳闸。 我假设这是因为我要写入的 GPIO 未物理连接到输入交叉开关、但我认为这是在 DSP 内部根据程序员选择进行的连接?
在强制执行 Estop 之前、我还尝试直接写入两个 PWM 模块的 TZFRC 寄存器。 这个代码位肯定会执行、但是、同样、所有 TZFRC 寄存器仍然为0。 TZFRC.OST = 1和 TZFRC.ALL = 1会导致相同的问题-当代码退出时、所有寄存器只保持为0静态。
Launchpad 和内部 DSP 板有何不同? 当我转移到这个新平台时、我没有更改代码中的任何内容、但是寄存器不再需要更改为我希望它们的内容。 我认为问题可能出在 JTAG、但创建新变量以检查代码是否正确执行、例如、在执行 Estop 之前、名为 CODE_EXIT 的新变量会更改为1。
有什么建议可以解决这一问题? 正如我提到过的、该代码在 Launchpad 上完全按照需要工作。
此致、
Joel