ZHCU712B april 2020 – july 2023
此示例将 CLB 逻辑块配置为辅助 PWM 发生器。该示例利用组合逻辑 (LUT)、状态机 (FSM)、计数器和高级控制器 (HLC) 来演示使用 CLB 的 PWM 输出生成功能。
PWM 发生器以 CLBCLK 频率运行。使用 FSM 来设置/清除 PWM。在发生 CMP 匹配事件时设置 PWM,该事件与 COUNTER_0 的 match2 相关。在发生零匹配事件 (Z) 时清除 PWM。此事件与 COUNTER_0 match1 输出相关。
PWM 寄存器配置为使用活动和影子寄存器,这是使用 HLC 块完成的。使用 HLC 在发生周期匹配事件 match1 时生成一个中断。在发生中断时,会将新的计数器匹配值加载到 HLC 寄存器 (R0) 中。然后将新计数器匹配值移动到 COUNTER_0 的 match2 寄存器中。这会更新 CMP 匹配值,进而更新正占空比的值。在此示例中,用户在正占空比的两个值之间进行交替。图 4-1 大体上显示了 PWM 发生器的功能。请注意下一个周期中的占空比是如何变化的。
CLB 逻辑块采用 PWM 使能信号作为输入,并向 CPU 生成一个中断。CLB 逻辑块配置为使用计数器进行向上计数,直到达到所需的周期和比较事件值。在输出“匹配 2”处计数器达到比较事件匹配值时,该输出被驱动为高电平并保持高电平,直到在输出“匹配 1”处达到周期匹配的计数器值或触发计数器复位。当发生周期事件或复位时,计数器重置为 0,输出被驱动为低电平,并且计数器开始向上计数。使用在 FSM 中输入的逻辑方程来配置该输出逻辑。在此示例中,周期为 300 个 CLBCLK 周期 (3µs)。比较事件在 100 个 CLBCLK 周期 (1μs) 或 150 个 CLBCLK 周期 (1.5μs) 时发生。
通过将 FSM 的输出馈送到 OUTLUT_4 中,可以查看 PWM 信号。为了在示波器上查看该输出,必须通过输出交叉开关将其传输到 GPIO 多路复用器。
要运行该示例,请执行以下过程:
在后续描述中,假设使用上述 C2000Ware 目录。
信号 | F28379D LaunchPad | F280049 controlCARD | F28388D controlCARD |
Interrupt | 引脚 J4/40 上的 GPIO0 | 引脚 49 (GPIO0) | 引脚 49 (GPIO0) |
辅助 PWM | 引脚 J4/34 上的 OutputXBAR1 信号 | 引脚 53 (OutputXBAR1) | 引脚 53 (OutputXBAR1) |