ZHCU712B april 2020 – july 2023
此示例演示如何配置 CLB 逻辑块以充当单次 PWM 发生器。该示例使用组合逻辑 (LUT)、状态机 (FSM)、计数器和 HLC 来演示收到外部/软件触发时的单次 PWM 输出生成功能。
图 4-13 示例 17:单次 PWM 输出CLB 逻辑块配置为在接收到触发信号时模拟单次触发计时器。计时器从零开始计数,达到匹配值、然后停止计数,直到接收到下一个触发信号。输出在计数器正在计数时被驱动为高电平,在计数器达到最大值并停止计数时被驱动为低电平。上述逻辑是使用 LUT、FSM 和计数器实现的。另一个计数器用于确保后续系统仅响应上升沿事件,不响应输入电平。该示例还使用 HLC 子模块和 CLB 中断机制支持可变脉冲宽度。HLC 用于在每个第 3 个触发信号事件(由另一个计数器跟踪)之后生成中断,并且脉冲宽度由应用更新。示例中配置的输出脉冲范围是 0.2μs - 0.8μs,每个中断 ISR 的阶跃增加 50ns。PWM 寄存器配置为使用活动和影子寄存器,这也是使用 HLC 块完成的。
整体 CLB 配置如图 4-14 所示。
图 4-14 示例 17:整体 CLB 配置该示例支持两种配置模式:基于软件的触发和基于外部信号的触发。可以通过将 EXAMPLE_MODE 设置为 0/1 来选择所需的模式。对于基于软件的触发,您可以在 CCS“Expressions”窗口中手动将 SOFT_TRIGGER 从 0 更新为 1,并观察示波器上的单次脉冲输出。请注意,在将该变量设置为“1”之前,该变量已设置为“0”,因为 CLB 系统仅响应上升沿。而对于基于外部信号的触发,EPWM 模块配置为生成 1MHz 的触发信号,并且导通时间非常短(10% 占空比)。GPIO0 上生成的此 EPWM 信号在内部路由为 CLB 的触发信号输入,因此无需外部连接。
要运行该示例,请执行以下过程: