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.   修订历史记录

Abs2Qep 工作原理

图 4-2 绝对位置编码器

绝对编码器输出表示旋转轴的准确位置。如果 Qmax 是单次旋转的分辨率,则位置范围将是从 0 到 Qmax。Q17 = 217 或 Q20 = 220 范围内的分辨率很常见。当方向为正向(顺时针)时绝对位置增大,当方向为反向(逆时针)时绝对位置减小。

图 4-3 增量位置编码器

增量编码器的输出是正交编码器脉冲 (QEP)。此脉冲序列包含以下输出:QEP-A、QEP-B 和 QEP-I,这些输出具有以下特性:

  • QEP-A 和 QEP-B 之间的相位指示运动的方向。如果 QEP-A 领先 90°,则方向为正向(顺时针)。如果 QEP-A 滞后 90°,则方向为反向(逆时针)。
  • QEP-A/B 频率与码盘速度成正比。
  • 索引信号 QEP-I 表示过绝对零。

增量编码器的分辨率由码盘周围的线数决定。当每条线通过传感器时,QEP-A 上都会产生一个边沿(下降沿或上升沿),如图 4-3 所示。可通过第二个线环添加第二个通道(位于外环内部并偏离外环)。在这种情况下,该内部线环可以生成 QEP-B。例如,一个 1024 线编码器将有 1024 条 QEP-A 线和 1024 条 QEP-B 线,因此在一次完整旋转中总共有 2048 个 QEP 状态变化。

在 Abs2Qep 中,头文件中的一个可配置参数将定义每条线产生多少个 QEP 状态转换。QEP 状态转换由被称为 QCLK 的内部 CLB 信号进行控制,如图 4-3 所示。默认设置是每条线对应两个 QCLK 脉冲。

表 4-1 中的示例进一步阐明了这一点。

表 4-1 Abs2Qep 中线和 QCLK 之间的关系(正向)
线路 QCLK QEP-A QEP-B
1 号线外环 QCLK 1 上升沿
1 号线内环 QCLK 2 上升沿
2 号线外环 QCLK 3 下降沿
2 号线内环 QCLK 4 下降沿