ZHCU480A April   2018  – November 2024

 

  1.   1
  2.   说明
  3.   资源
  4.   特性
  5.   应用
  6.   6
  7. 1系统说明
    1. 1.1 主要系统规格
  8. 2系统概述
    1. 2.1 方框图
    2. 2.2 主要产品
      1. 2.2.1 C2000 实时 MCU LaunchPad
      2. 2.2.2 SN65HVD78
      3. 2.2.3 TLV702
      4. 2.2.4 TPS22918-Q1
    3. 2.3 设计注意事项
      1. 2.3.1 BiSS-C 协议
        1. 2.3.1.1 线路延迟补偿
        2. 2.3.1.2 编码器处理时间请求
        3. 2.3.1.3 控制通信
      2. 2.3.2 C2000 BiSS-C 编码器接口概述
      3. 2.3.3 TIDM-1010 板实现
      4. 2.3.4 MCU 资源要求
        1. 2.3.4.1 输入、输出信号和 CLB 逻辑块
      5. 2.3.5 CLB BiSS-C 实现详细信息
        1. 2.3.5.1 事务波形
        2. 2.3.5.2 FRAME_STATE 生成
        3. 2.3.5.3 CLB_SPI_CLOCK 生成
        4. 2.3.5.4 ENCODER_CLOCK (MA) 生成
      6. 2.3.6 PM BiSS-C 接口库
        1. 2.3.6.1 PM BiSS-C 库函数
  9. 3硬件、软件、测试要求和测试结果
    1. 3.1 硬件
      1. 3.1.1 TIDM-1010 跳线配置
    2. 3.2 软件
      1. 3.2.1 C2000 驱动程序库 (DriverLib)
      2. 3.2.2 C2000 SysConfig
      3. 3.2.3 C2000 可配置逻辑块工具
      4. 3.2.4 安装 Code Composer Studio™ 和 C2000WARE-MOTORCONTROL-SDK
      5. 3.2.5 查找参考软件
    3. 3.3 测试和结果
      1. 3.3.1 硬件配置
      2. 3.3.2 构建和加载工程
      3. 3.3.3 运行示例代码
      4. 3.3.4 编码器测试
      5. 3.3.5 基准测试
      6. 3.3.6 故障排除
  10. 4设计文件
  11. 5软件文件
  12. 6相关文档
    1.     商标
  13. 7术语
  14. 8关于作者
  15. 9修订历史记录

事务波形

在实现 CLB 设计时,首先使用波形直观地显示所需的 CLB 行为可能会有所帮助。为此,首先考虑一个示例事务。回想一下,BiSS-C 事务包含 MA 信号和编码器的响应。传输可以拆分成 FRAME_STATE,如图 2-11 所示。第一步是将事务的每个元素映射到 CLB 子模块。表 2-4 展示了一个示例映射。

表 2-4 BiSS-C 事务到 CLB 映射
事务行为 CLB 映射
跟踪 FRAME_STATE 有限状态机 (FSM):在给定先前状态和当前输入的情况下转换到新状态。
生成两个特定宽度的时钟信号:一个用于 MA,一个用于 SPI 时钟。 对于每个信号,此要求会映射到计数器。利用匹配值来生成上升/下降沿的时序。然后,LUT(查找表)会根据该时序生成实际的边沿。
为 MA 和 SPI 时钟传输特定数量的时钟脉冲。 对于每个时钟,这会映射到计数器。在时钟的边沿,计数器递增,MATCH 指示何时达到数量。
将 SPI 时钟与编码器的响应对齐 生成 SPI 时钟的计数器可以进行配置,使得边沿转换与编码器的响应正确对齐。
仅在接收到编码器的响应时允许为 SPI 提供时钟 LUT 会在不需要时钟时阻止时钟。
在 BiSS 超时期间,将 MA 信号保持为高电平或低电平(CDM 位) 使用 GPREG 输入,C28 可向 CLB 指示 CDM 必须为高电平还是低电平。这与 LUT 组合,然后在传输特定数量的时钟后将值保持在 MA 上。
控制 TxEN 对于 BiSS-C,TxEN 保持低电平。CLB 输出 LUT 可对输出应用常量“0”。
通过发送 MA,指示 CLB 开始事务 C28x 配置用于事务的计数器和 SPI。CLB GPREG 允许 C28x CPU 直接更改 CLB 输入以开始事务。
TIDM-1010 BiSS-C 单周期数据事务示例图 2-11 BiSS-C 单周期数据事务示例

下一步是实现特定子模块行为的可视化。从快速草图开始,然后在设计开发过程中添加其他详细信息。图 2-12 展示了使用 CLB SystemC 仿真模型生成的波形示例,该模型使用自定义输入作为编码器的响应。虽然 图 2-12 是由实际设计生成的,但图的细节与初步草图类似。

TIDM-1010 CLB 通信波形图 2-12 CLB 通信波形

以下部分中使用了 图 2-12 中的标记 1 至 4 来描述设计中与该标记相对应的特定行为。标记为:

  1. 从 IDLE 转换到 TRANSMIT_MA
  2. 从 TRANSMIT_MA 转换到 TRANSMIT_MA_AND_RECEIVE_SL
  3. 在 TRANSMIT_MA_AND_RECEIVE_SL 期间
  4. 转换到 RECEIVE_SL

在 IDLE 状态期间,接口上没有任何活动。C28x 必须通过以下方式发起事务:

  • 配置 CLB 和 SPI
  • 通过 CLB 逻辑块的 GPREG 寄存器将 START_OPERATION 信号拉高。GPREG 是 CLB 的通用寄存器,允许 C28x 直接控制逻辑块的输入。

参阅:图 2-12,标记 (1)。

START_OPERATION 会在一个 CLB_CLOCK 内保持高电平,因为针对该输入启用了 CLB 的上升沿滤波器。在标记 (1) 处,主状态机(逻辑块 4 上的 FSM1)会通过将 FRAME_STATE 从 IDLE 移到 TRANSMIT_MA 状态进行响应。

在 TRANSMIT_MA 期间:编码器接口向编码器发送 MA 信号。此信号是具有特定占空比和所定义数量时钟周期的时钟。周期数取决于编码器的分辨率。在为 MA 提供时钟时,CLB 监控 SL 线路以获得编码器响应。

参阅:图 2-12,标记 (2)。

为了检测编码器的响应,CLB 监控 SL 的上升沿。上升沿对应于 ACK 之后的开始位。检测响应所需的时间可以是任意数量的时钟,具体取决于编码器的状态和电缆长度。此外,如果编码器需要额外的响应时间,则延长 ACK 状态。

检测到编码器的起始位时,FRAME_STATE 转换用于发送 MA 和接收 SL。

参阅:图 2-12,标记 (3)。

CLB 开始为 SPI 外设提供时钟以接收响应。

  • CLB 会将 CLB_SPI_CLOCK 与响应对齐。在 CLB 生成的时钟的上升沿对响应进行采样。
  • 通过直接覆盖外设的输入来将 CLB_SPI_CLOCK 连接到 SPI_CLK_IN。
  • 计数器会跟踪所生成的 SPI 时钟数量。此计数器的 Match1 指示何时发送了所需的 SPI 时钟。有时需要超出响应长度要求的额外 SPI 时钟,以将 SPI 的 FIFO 填充到 FIFO 中断级别。

参阅:图 2-12,标记 (4)。