ZHCA963 August   2019 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28374D , TMS320F28375D , TMS320F28376D , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28378D , TMS320F28379D , TMS320F28379D-Q1

 

  1.   使用 C2000可配置逻辑块 (CLB) 进行设计
    1.     商标
    2. 简介
    3. 补充在线信息
    4. 设计概述
    5. 对输入采样
    6. 在 FSM 子模块中部署状态机
    7. 生成 PWM 信号
    8. 修改 PWM 周期和占空比
    9. 已完成的设计
    10. 输入 X-BAR、输出 X-BAR 和 CLB X-BAR
      1. 9.1 使用 X-BAR 将信号导入到 CLB 逻辑块中
      2. 9.2 使用 X-BAR 从 CLB 逻辑块中导出信号
    11. 10 运行示例项目
      1. 10.1 设置和连接
      2. 10.2 测试状态和转换
        1. 10.2.1 步骤 1
        2. 10.2.2 步骤 2
        3. 10.2.3 步骤 3
        4. 10.2.4 步骤 4
        5. 10.2.5 步骤 5
      3. 10.3 测试 PWM 周期和占空比
    12. 11 总结
    13. 12 参考文献

在 FSM 子模块中部署状态机

Figure 1 中的状态机是利用上一节所生成的采样输入部署的。首先创建一个完整的真值表,其中包含输入以及状态机的当前状态和次态。FSM 子模块也会生成一个输出信号。在此设计中,当系统的状态转换为正在打开或正在关闭时,会将输出设置为高电平。稍后会在设计中使用此输出(用于门控 PWM 信号)。Table 1 显示了此设计的完整真值表。

Table 1. FSM 真值表

s0 s1 e0 e1 s0 次态 s1 次态 输出
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 1 0 1 0 1
0 0 1 1 1 1 1
0 1 0 0 0 1 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
0 1 1 1 1 0 1
1 0 0 0 1 0 0
1 0 0 1 1 1 0
1 0 1 0 1 0 0
1 0 1 1 0 1 1
1 1 0 0 1 1 0
1 1 0 1 1 1 0
1 1 1 0 0 1 1
1 1 1 1 0 1 1

使用 FSM 真值表,为 FSM 的 s0 态、s1 态和输出创建卡诺图。卡诺图有助于查找用于 s0、s1 和输出的 FSM 公式。

s0 kmap.pngFigure 4. FSM1 S0 卡诺图
s1 kmap.pngFigure 5. FSM1 S1 卡诺图
output kmap.pngFigure 6. FSM1 输出卡诺图

F28379D LaunchPad(用于测试此设计)会在 LaunchPad 上的 LED 上显示 FSM1 的 s0 和 s1™。OUTLUT4 和 OUTLUT5 将这些信号从 FSM1 导出到输出 X-BAR 中, 并通过选择好的X-BAR 以驱动 GPIO。当 GPIO34 和 GPIO31 的输出被拉低时,LaunchPad 上的 LED 将打开。FSM1 的 s0 和 s1 会因此反相,随后会通过 OUTLUT4 和 OUTLUT5 从 CLB 中输出。当 s0 和 s1 为高电平时,此反相会将 LED 打开。Figure 7 显示了 OUTLUT4 和 OUTLUT5 的 SysConfig 配置。

outlut4_outlut5_config.pngFigure 7. OUTLUT4 和 OUTLUT5 配置