ZHCAB39E January   2022  – February 2022 TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S

 

  1.   商标
  2. 1引言
  3. 2PTO – PulseGen
    1. 2.1 PulseGen 实现概述
    2. 2.2 PulseGen 限制
    3. 2.3 PulseGen CLB 配置
    4. 2.4 PulseGen 输入和输出信号
  4. 3PTO – QepDiv
    1. 3.1 QepDiv 实现概述
    2. 3.2 QepDiv 限制
    3. 3.3 QepDiv 分频器设置和初始化
    4. 3.4 QepDiv CLB 配置
  5. 4PTO – Abs2Qep
    1. 4.1 Abs2Qep 芯片资源
    2. 4.2 Abs2Qep 工作原理
      1. 4.2.1 Abs2Qep 转换公式
      2. 4.2.2 Abs2Qep 转换示例
      3. 4.2.3 Abs2Qep 过零检测
    3. 4.3 Abs2Qep CLB 配置
      1. 4.3.1 Abs2Qep QEP-A/B 脉冲序列生成
      2. 4.3.2 Abs2Qep 停止锁存器
      3. 4.3.3 Abs2Qep 高级控制器 (HLC)
    4. 4.4 Abs2Qep 输入和输出信号
  6. 5PTO – QepOnClb QEP 解码器
    1. 5.1 QepOnClb 和 eQEP 的比较
    2. 5.2 QepOnClb 芯片资源
    3. 5.3 QepOnClb 工作原理
    4. 5.4 QepOnClb CLB 资源
      1. 5.4.1 QepOnClb QCLK 状态机
      2. 5.4.2 QepOnClb 方向解码
      3. 5.4.3 QepOnClb 错误检测
      4. 5.4.4 QepOnClb 仿真波形
  7. 6示例工程
    1. 6.1 硬件要求
    2. 6.2 安装 Code Composer Studio 和 C2000WARE-MOTORCONTROL-SDK™
    3. 6.3 导入并运行示例工程
    4. 6.4 PulseGen 示例
    5. 6.5 QepDiv 示例
    6. 6.6 Abs2Qep 示例
      1. 6.6.1 观察变量
      2. 6.6.2 测试信号
      3. 6.6.3 引脚用途和测试连接
    7. 6.7 QepOnClb 示例
      1. 6.7.1 观察变量
      2. 6.7.2 接头引脚连接
  8. 7库源代码和工程
    1. 7.1 查找库源代码
    2. 7.2 导入和构建库工程
    3. 7.3 PTO - PulseGen API
      1. 7.3.1 pto_pulsegen_runPulseGen
      2. 7.3.2 pto_startOperation
      3. 7.3.3 pto_pulsegen_setupPeriph
      4. 7.3.4 pto_pulsegen_reset
    4. 7.4 PTO - QepDiv API
      1. 7.4.1 pto_qepdiv_config
      2. 7.4.2 pto_startOperation
      3. 7.4.3 pto_qepdiv_setupPeriph
      4. 7.4.4 pto_qepdiv_reset
    5. 7.5 PTO - Abs2Qep API
      1. 7.5.1 Abs2Qep API 配置
      2. 7.5.2 pto_abs2qep_runPulseGen
      3. 7.5.3 pto_abs2qep_setupPeriph
      4. 7.5.4 pto_abs2qep_translatePosition
    6. 7.6 PTO - QepOnClb API
      1. 7.6.1 pto_qeponclb_setupPeriph
      2. 7.6.2 pto_qeponclb_initCLBQEP
      3. 7.6.3 pto_qeponclb_configMaxCounterPos
      4. 7.6.4 pto_qeponclb_enableCLBQEP
      5. 7.6.5 pto_qeponclb_resetCLBQEP
      6. 7.6.6 pto_qeponclb_getCounterVal
      7. 7.6.7 pto_qeponclb_getCLBQEPPos
      8. 7.6.8 pto_qeponclb_clearFIFOptr
  9. 8在工程中使用参考 API
    1. 8.1 将 PTO 支持添加到工程中
    2. 8.2 往返于 CLB 的路由
    3. 8.3 初始化步骤
      1. 8.3.1 PTO-PulseGen API 初始化
      2. 8.3.2 PTO-QepDiv API 初始化
      3. 8.3.3 PTO-Abs2Qep API 初始化
      4. 8.3.4 PTO-QepOnClb API 初始化
  10. 9参考文献
  11.   修订历史记录

QepOnClb 工作原理

QEP 解码器解读来自增量编码器的脉冲序列输出。基本 QEP 脉冲序列包含信号 QEP-A、QEP-B 和 QEP-I,如图 5-3 中所示。这些信号具有以下特性:

  • QEP-A/B 相指示运动方向。如果 QEP-A 的上升沿超前 90°,则方向为正向(顺时针)。如果 QEP-A 的上升沿滞后,则方向为反向(逆时针)。如图 5-2 所示。
  • QEP-A/B 频率与码盘速度成正比。
  • 索引信号 QEP-I 表示过绝对零。

图 5-2 QEP-A、QEP-B 状态图

设计方法:

  1. 选择满足映射解码器要求的 CLB 组件。表 5-2 提供了此类映射的示例。
  2. 绘制波形,有助于直观展示 CLB 块之间的理想交互。图 5-3 包含示例 QEP 波形、CLB 生成的信号以及用于实现此特性的相应 CLB 块。
  3. 定义 LUT 和 FSM 模块的公式。Topic Link Label5.4提供了各模块的详细说明。

表 5-2 解码器特性与 CLB 块之间的映射示例
解码器功能 CLB 块映射
32 位位置计数器 直接映射 CLB 32 位计数器模块。连接 match1 和 match2 可进行复位,对于事件,可实现介于 0 和位置上限 (MAXPOS) 间的计数。
过去状态存储器 有效状态转换、方向和错误的检测都依赖于 QEP-A/B 过去的状态,这可映射能够存储过去状态的 FSM。
过去和当前状态的比较 如果可以从 FSM 中得到过去状态,LUT 即可比较当前和过去状态。如果没有 LUT,FSM 也可提供这一功能。需要对方向检测和错误检测进行比较。
中断和计数器捕捉 捕捉计数器的值并中断 CPU 映射 HLC 的功能。
CPU 对解码器的输入,例如复位和使能 控制位从 CPU 经过 GPREG 路由到 LUT,并与其他系统信号相结合(OR 或 AND)。
图 5-3 QepOnClb 波形示例