ZHCU480B April   2018  – February 2026

 

  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_SPI_CLOCK 生成

CLB 负责检测编码器的响应,然后为 SPI 提供时钟以接收数据。首先考虑时钟的占空比和频率。图 2-15 展示了生成 SPI 时钟的 CLB 逻辑。图 2-16 显示了相应的仿真波形。

第一步是生成具有指定频率和占空比的时钟(称为 SPI_CLOCK)。在 CLK_GEN_TILE 上生成 SPI_CLOCK 时:

  • COUNTER_1:负责时钟的占空比和频率(宽度)。SPI_CLOCK 高电平转换和低电平转换之间的时间以 CLB 时钟数进行测量。使用以下匹配信号:
    • 零匹配:对应于时钟的低电平转换
    • match1:对应于时钟的高电平转换
    • match2:对应于时钟的宽度
  • FSM_1:根据 COUNTER_1 匹配值生成时钟边沿:match1 和零匹配
  • LUT_0:达到 COUNTER_1 match2 输出所指示的时钟宽度时复位计数器

第二步是将时钟与接收到的数据对齐。这是 SPI 正确接收编码器响应所必需的。对齐时钟面临两个挑战:

  1. 由于电缆传播延迟,响应可能随时到达,如 节 2.3.1.1 中所述。
  2. 编码器还可能延迟确认 ACK 以请求额外的处理时间,如 节 2.3.1.2 中所述。

为了对齐时钟,LUT_0 监控上升沿的响应信号。第一个上升沿对应于确认 (ACK) 位之后的开始位。检测到此边沿时,LUT_0 会复位 COUNTER_1,从而将 SPI_CLOCK 与响应对齐。

第三步是根据内部 SPI_CLOCK 生成 CLB_SPI_CLOCK。如 图 2-16 所示。

  • SPI_CLOCK 的生成持续时间比 SPI 接收响应所需的时间更长
  • CLB_SPI_CLOCK 仅输出接收响应所需的时钟数

这是通过使用 FSM_GEN_TILE 上的 FSM_2 生成 SPI_CLOCK_OUTPUT_ENABLE 信号来实现的。OUTLUT 使用此信号来根据需要允许或阻止 SPI_CLOCK。

TIDM-1010 CLB_SPI_CLOCK 生成图 2-15 CLB_SPI_CLOCK 生成
TIDM-1010 SPI 时钟生成仿真波形
注: 逻辑块实例 TILE4 对应 FSM_GEN_TILE。逻辑块实例 TILE3 对应 CLK_GEN_TILE。逻辑块的使用可能因设计而异。有关器件专用逻辑块的使用方法,请参阅节 2.3.4.1
图 2-16 SPI 时钟生成仿真波形