ZHCAC41 February   2023 TMS320F280025C

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2串行端口设计方法
    1. 2.1 步骤 1:了解设计要求
    2. 2.2 步骤 2:识别至 CLB 逻辑块的所需输入
      1. 2.2.1 GPIO 输入限定
      2. 2.2.2 CLB 输入设置
    3. 2.3 步骤 3:识别来自 CLB 逻辑的所需输出
      1. 2.3.1 同步输出信号
      2. 2.3.2 输出信号调节
    4. 2.4 步骤 4:设计 CLB 逻辑
      1. 2.4.1 资源分配
      2. 2.4.2 在 CLB FIFO 和 MCU RAM 之间交换数据
      3. 2.4.3 CLB 逻辑状态和触发标志
        1. 2.4.3.1 状态/标志位
        2. 2.4.3.2 触发位
    5. 2.5 步骤 5 :仿真逻辑设计
    6. 2.6 步骤 6 :测试 CLB 逻辑
  5. 3示例 A:在音频应用中使用 CLB 输入和输出 TDM 流
    1. 3.1 示例概述
    2. 3.2 步骤 1:了解设计要求
    3. 3.3 步骤 2:识别至 CLB 逻辑块的所需输入
    4. 3.4 步骤 3:识别来自 CLB 逻辑的所需输出
    5. 3.5 步骤 4:设计 CLB 逻辑
      1. 3.5.1 资源分配
      2. 3.5.2 TDM 字计数器
      3. 3.5.3 FSYNC 和 DATA1 输出同步
    6. 3.6 步骤 5 :仿真逻辑设计
    7. 3.7 步骤 6 :测试 CLB 逻辑
      1. 3.7.1 硬件设置和连接
      2. 3.7.2 软件设置
      3. 3.7.3 测试输出建立时间和保持时间
      4. 3.7.4 测试数据完整性
  6. 4示例 B:在照明应用中使用 CLB 为 LED 驱动器实施定制通信总线
    1. 4.1 示例概述
    2. 4.2 步骤 1:了解设计要求
    3. 4.3 步骤 2:识别至 CLB 逻辑块的所需输入
    4. 4.4 步骤 3:识别来自 CLB 逻辑的所需输出
    5. 4.5 步骤 4:设计 CLB 逻辑
      1. 4.5.1 TX 逻辑块逻辑
      2. 4.5.2 RX 逻辑块逻辑
      3. 4.5.3 数据时钟
    6. 4.6 步骤 5 :仿真逻辑设计
    7. 4.7 步骤 6 :测试 CLB 逻辑
      1. 4.7.1 硬件设置和连接
      2. 4.7.2 软件设置
      3. 4.7.3 测试输出建立时间和保持时间
  7. 5参考文献

RX 逻辑块逻辑

#GUID-84E4984C-B845-405E-92BD-B6F335FA2F04 展示了接收逻辑块的逻辑。

图 4-9 CLB RX 逻辑块逻辑

以下 CLB 逻辑块资源用于实施 CCSI 总线接收 (RX) 功能:

  • COUNTER0 用于检测接收帧的结束。
  • COUNTER1 用于在 SCLKX2 下降沿接收输入数据。它在串行器模式下运行。
  • COUNTER2 用于对 SCLKX2 下降沿进行计数。它在正常计数器模式下运行。
  • HLC 用于将数据从 COUNTER1 移动到 CLB PUSH FIFO。当接收到四个 16 位字以及检测到 CHECK 位错误和帧结束条件时,它还会向 CPU 生成中断。
  • FSM0 用于定义和循环遍历两种状态:IDLE 和 ACTIVE。
  • 当接收到四个 16 位字时,FSM1 用于计数。当接收计数达到四时,向 HLC 生成一个事件。
  • 仅当处于 ACTIVE 状态时,FSM2 才用于生成帧结束中断。
  • LUT0 用于检测相应的“0”位,该位用于检测 START 位和 END 字节。通过清除 ENABLE_RX 输入,可以强制将 LUT0 输出置为低电平,从而有效地禁用接收操作。
  • LUT1 用于验证每个 16 位字上的 CHECK 位。如果 CHECK 位与预期状态不匹配,LUT1 输出会触发 HLC 中断。
  • 当禁用接收操作(即 ENABLE_RX = 0)时,LUT2 用于使 COUNTER2 保持在复位状态。

FSM0 定义了 RX 逻辑块的两种运行状态。#GUID-7B6E728C-9904-4313-B56B-A0F7C91CE59C表 4-4 显示了 FSM0 状态图和真值表。

图 4-10 RX 逻辑块的 FSM0 状态图
表 4-4 FSM0 真值表
S0 E1 (LUT0_OUT) E0 (C0_MATCH1) S0 次态 输出 (FSM0_OUTPUT)
0 0 0 0 0
0 0 1 0 0
0 1 0 1 0
0 1 1 1 0
1 0 0 1 1
1 0 1 0 1
1 1 0 1 1
1 1 1 0 1

完整的逻辑方程为:

  • S0 = !S1&!S0&E1&!E0 | !S1&!S0&E1&E0 | !S1&S0&!E1&!E0 | !S1&S0&E1&!E0
  • OUTPUT = !S1&S0&!E1&!E0 | !S1&S0&!E1&E0 | !S1&S0&E1&!E0 | !S1&S0&E1&E0

FSM1 用于在接收到四个 16 位字后触发 HLC 事件。#GUID-361D0B5E-EEB4-4698-ADBD-3ED2521BBF14表 4-5 显示了 FSM1 状态图和真值表。

图 4-11 RX 逻辑块的 FSM1 状态图
表 4-5 FSM1 真值表
S1 S0 E1 (FSM0_OUT) E0 (C2_MATCH2) S1 次态 S0 次态 输出 (HLC_INT)
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 1 0 0 0 0
0 0 1 1 0 1 0
0 1 0 0 0 0 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
0 1 1 1 1 0 0
1 0 0 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 0 1 1 1 1 0
1 1 0 0 0 0 0
1 1 0 1 0 0 0
1 1 1 0 1 1 0
1 1 1 1 0 0 1

逻辑方程是:

  • S1 = !S1&S0&E1&E0 | S1&!S0&E1&!E0 | S1&!S0&E1&E0 | S1&S0&E1&!E0
  • S0 = !S1&!S0&E1&E0 | !S1&S0&E1&!E0 | S1&!S0&E1&E0 | S1&S0&E1&!E0
  • OUTPUT = S1&S0&E1&E0