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 转换示例

给定以下参数:

  • CLB 时钟 = 10 纳秒
  • 位置采样周期 = 100 微秒或 10,000 个 CLB 时钟
  • 绝对编码器分辨率 = ABS_MAX_POSITION = Q20 = 1048576
  • 增量编码器分辨率 = 1024 条线。因此,QCLK_PER_REV = 2 x 1024 = 2048

ABS_TO_INCR 比率为:

Equation3. ABS_TO_INCR = 2 x Qmax = 2048 1048576 = 0.00195313

表 4-2 显示了从绝对位置变化到生成的 QCLK 数量的转换示例。

请注意,在样片 2 和样片 3 中,边沿小数累积值大于 1。发生这种情况时会生成一个额外的 QCLK,并从边沿小数累积值减去一。

注: 显示的绝对位置样片仅用于演示用途。实际位置变化值可能比显示的值大得多,或者可能方向相反。
表 4-2 Abs2Qep 计算示例
样片 位置 增量位置 (1) QCLK 小数边沿 生成的 QCLK 数 每个 QCLK 的 CLB 时钟数 (2)
0 0 0 0 0 0 0
1 24000 24000 46.875 0.875 46 217
2 53000 29000 56.6406 0.875 + 0.6406 = 1.515 → 0.515 (3) 56+1 (3) 175
3 62000 9000 17.5781 0.515 + 0.5781 = 1.09375 → 0.09375 (3) 17+1 (3) 555
位置(n) - 位置(n-1)。在本示例中,所有的变化都是正向的,并且没有过零。如果此值为负,则方向将相反。
每个 QCLK 脉冲之间的 CLB 时钟数。此值基于以 CLB 时钟表示的采样频率。本示例中将生成 10,000 个 CLB 时钟/QCLK
生成一个额外的 QCLK,并将小数部分调整 1。