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

QepDiv CLB 配置

PTO API 实现的源文件位于 [C2000Ware_MotorControl_SDK]\libraries\position_sensing\pto\source 下。

若要实现Topic Link Label3.1中描述的所需功能,需要在 CLB 逻辑块中使用以下资源。

GUID-C6E65D1A-1EF3-48BD-B1DA-CED98AD1E1F7-low.gif图 3-4 QepDiv CLB 逻辑块图
注: 您可以为每个相应的器件导入并构建 QepDiv API 参考工程(位于 [C2000Ware_MotorControl_SDK]\libraries\position_sensing\pto\ccs 中)。通过重新构建编译的对象,将重新生成 CLB 逻辑块图(clb.svg 或 clb.html)和对象 (.lib)。CLB 逻辑块图将位于 RELEASE/syscfg 目录下。

具体实现请参阅以下详细说明和图 3-4 中的图示。

表 3-1 QepDiv CLB 逻辑块 1
资源 功能 注意事项
输入
In0 开/关控制(通过 GPREG) 启用 CLB
In1 开/关控制(通过 GPREG) QEPA(通过 EPWM4A)
In2 边沿检测 QEPA(通过 EPWM4A)
In3 未使用 未使用
In4 开/关控制(通过 GPREG) QEPB(通过 EPWM5A)
In5 边沿检测 QEPB(通过 EPWM5A)
In6 未使用 未使用
In7 边沿检测 QEPI(通过 EPWM4B)
输出
Out0 未使用 未使用
Out1 未使用 未使用
Out2 未使用 未使用
Out3 未使用 未使用
Out4 发送使能 PTO 方向(通过输出 XBar);CLB 2 的输入
Out5 发送使能 QEPI 输出(通过 OUTPUTXBAR3)
Out6 未使用 未使用
Out7 未使用 未使用
逻辑资源
LUT0 未使用 未使用
LUT1 结合 FSM0 和 FSM1 以确定 QCLK 方向 为 FSM1 提供外部输入 0 的输入
LUT2 未使用 未使用
FSM0 QEPA 和 QEPB 之间的交替输入 该状态机检查 QEP 信号并在不同信号之间交替
FSM1 设置 QCLK 方向 使用 LUT1 和 FSM0 的输出来设置 QCLK,进而设置方向。输出将路由到 CLB2 作为输入方向
FSM2 索引脉冲生成 接受 QEPI 输入并使用 CNT2 Match2 值来设置 QEPI 输出周期和占空比。
CNT0 设置索引脉冲宽度值 加载通过 CLB_writeInterface 函数设置的 indexWidth-1 值
CNT1 设置分频器值 加载通过 CLB_writeInterface 函数设置的 divider*4 值
CNT2 设置分频器值 加载通过 CLB_writeInterface 函数设置的 divider*2 值
高级控制器
HLC 未使用 未使用
表 3-2 QepDiv CLB 逻辑块 2
资源 功能 注意事项
输入
In0 开/关控制(通过 GPREG) 启用 CLB
In1 开/关控制(通过 GPREG) QEPA(通过 EPWM4A)
In2 边沿检测 QEPA(通过 EPWM4A)
In3 未使用 未使用
In4 边沿检测 QEPB(通过 EPWM5A)
In5 未使用 未使用
In6 未使用 未使用
In7 开/关控制(通过 GPREG) 从 CLB1 out4 路由的 PTO 方向
输出
Out0 发送使能 QEPA 输出(通过 EPWM2A)
Out1 未使用 未使用
Out2 发送使能 QEPB 输出(通过 EPWM2B)
Out3 未使用 未使用
Out4 发送使能 旁路逻辑
Out5 未使用 未使用
Out6 未使用 未使用
Out7 未使用 未使用
逻辑资源
LUT0 QEPA/QEPB 信号输入 当逻辑块为开启状态时,将所选的 QEP 信号发送到 CNT0 作为 mode0 输入
LUT1 生成高低值 高低交替
LUT2 未使用 未使用
FSM0 QEP 脉宽生成 该状态机将与 CNT0 一同为 LUT1 和 LUT2 生成若干高和低脉冲宽度。
FSM1 QEPA 信号生成 使用 CNT0 和 LUT1 生成 QEPA 输出。
FSM2 QEPB 信号生成 使用 CNT0 和 LUT2 生成 QEPB 输出。
CNT0 用于输出 QEP 信号生成的计数器 计数器 Match1 值是 FSM0 的外部输入。Match2 值是计数器的复位值。match2 值传递给 LUT1 和 LUT2。
CNT1 未使用 未使用
CNT2 未使用 未使用
高级控制器
HLC 未使用 未使用