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

如映射表所示,测试输入和 PTO 输出在内部进行路由。在表 6-4 中列出的函数中可找到用于路由信号的代码。

表 6-4 QepDiv 示例输入/输出信号路由
函数 位置 注意事项
输入信号路由:GPIO 至 CLB
pto_qepdiv_setup_GPIO() 示例应用 将输入 GPIO 连接到 INPUTXBAR。
pto_qepdiv_initCLBXBAR() 将 INPUTXBAR 路由到全局 CLB AUXSIGx 信号。
pto_qepdiv_setupPeriph() 将逻辑块输入连接到 CLB 全局多路复用器、CLB 本地多路复用器或逻辑块的 GPREG。
输出路由:CLB 至 GPIO
函数 位置 注意事项
pto_qepdiv_initCLBXBAR 将逻辑块的 out4 或 out5 连接到 OUTPUTXBAR
pto_qepdiv_startOperation() 通过 setOutputMask() 使 CLB 输出能够覆盖外设信号
pto_qepdiv_setup_GPIO() 示例应用 将 GPIO 输出连接到外设或 OUTPUTXBAR

表 6-5 F28002x、F28003x、F28004x、F2837x 和 F2838x QepDiv 输出 GPIO 映射
QepDiv 输入 QepDiv 输出
输入信号 连接目标(供演示)(1) 路由到 CLB 输出信号 从 CLB 路由 GPIO 引脚
QEP-A:GPIO10 EPWM4A/GPIO6
或外部信号
INPUTXBAR4 →
AUXSIG0 →
Tile1 in1、in2 和
Tile2 in1、in2
PTO_QEP-A 覆盖 PWM2A GPIO2
QEP-B:GPIO11 EPWM5A/GPIO8
或外部信号
INPUTXBAR5 →
AUXSIG1 →
Tile1 in4、in5 和
Tile2 in4
PTO_QEP-B 覆盖 PWM2B GPIO3
QEP-I:GPIO9 EPWM4B/GPIO7
或外部信号
INPUTXBAR6 →
AUXSIG2 →
Tile1 in7
PTO_QEP-I Tile1 out5 → OUTPUTXBAR3 GPIO5
本示例使用备用 EPWM 来提供 QEP 输入。这些仅用于测试目的,并不对应于实时使用情况。您可以选择将这些 EPWM 输出连接到 QepDiv 输入信号,也可以选择连接其他外部信号。

表 6-6 列出了使用 EPWM 作为 QepDiv 输入时所需的连接。

表 6-6 QepDiv 测试输入连接
EPWM4A 至 QEP-A EPWM5A 至 QEP-B EPWM4B 至 QEP-I
LAUNCHXL-F280025C 78 (IO.6) 至 14 (IO.10) 76 (IO.16) 至 15 (IO.11) 77 (IO.7) 至 7 (IO.9)
LAUNCHXL-F280039C 78 (IO.6) 至 36 (IO.10) 76 (IO.16) 至 35 (IO.11) 77 (IO.7) 至 7 (IO.9)
LAUNCHXL-F280049C 78 至 40 38 至 39 77 至 37
LAUNCHXL-F28379D 80 至 76 78 至 75 79 至 77
TMDSCNCD28388D 54 至 61 57 至 63 56 至 59