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

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

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

  • TILE3_COUNTER_1:负责时钟的占空比和频率(宽度)。SPI_CLOCK 高电平转换和低电平转换之间的时间以 CLB 时钟数进行测量。使用以下匹配信号:
    • 零匹配:对应于时钟的低电平转换
    • match1:对应于时钟的高电平转换
    • match2:对应于时钟的宽度
  • TILE3_FSM_1:根据 COUNTER_1 匹配值生成时钟边沿:match1 和零匹配
  • TILE3_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-15 所示。

  • SPI_CLOCK 的生成持续时间比 SPI 接收响应所需的时间更长
  • CLB_SPI_CLOCK 仅输出接收响应所需的时钟数
这是通过使用 TILE4_FSM_2 生成 SPI_CLOCK_OUTPUT_ENABLE 信号来实现的。OUTLUT 使用此信号来根据需要允许/阻止 SPI_CLOCK。

TIDM-1010 CLB_SPI_CLOCK 生成图 2-14 CLB_SPI_CLOCK 生成
TIDM-1010 SPI 时钟生成仿真波形图 2-15 SPI 时钟生成仿真波形