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 和 eQEP 的比较

此解码器实现方式与正交计数模式下运行的 C2000 eQEP 外设类似。表 5-1 简要比较了支持的特性。在某些情况下可能进行了修改。请参考器件特定的技术参考手册,了解 eQEP 外设的详细说明。

表 5-1 QepOnClb 和 eQEP(0 类)比较概述
eQEP 特性 QepOnClb 支持
正交时钟模式(QEP-A/B 信号) 检测方向、计数和无效状态转换。 已实现。
比较 QEP-A/B 信号的当前状态与之前状态。相位关系决定了运动方向。如果两个信号同时改变,将检测到无效状态转换。
无效状态转换会设置标志,还有可能生成中断。 已实现。
CLB 将针对无效状态转换发出中断。如果需要标志,可使用 CLB 中断标签,中断会被禁用。
配置 4 个计数器:QEPA/B 的上升和下降沿 实现的结果:
QEPA/B 的上升和下降沿都会生成计数。
修改 QCLK 状态机可改变此行为。
反向计数(反向 QEP-A/B 输入) 未实现。
实现方式为修改 CLB 配置,交换 QCLK 状态机输入。
方向计数模式(XCLK 和 DIR 信号) QEP-A 成为 XCLK,QEP-B 成为 DIR。 未实现。
实现方式为修改 CLB 配置并 (1) 从方向解码 LUT 断开 DIR (QEP-B) 连接,(2) 将 DIR 直接连接到计数器的方向控制,模式 1。
QEP-I(索引或零信号) 锁存位置计数器,稍后可使用 driverlib 函数进行读取。可配置为上升沿、下降沿或基于事件标记/软件索引标记。 实现方式为:
在 QEP-I 上升沿锁存位置计数器。可使用提供的库函数从 HLC FIFO 读取位置计数器值。
在一些器件上可配置 HLC,以响应下降沿而不是上升沿。
初始化位置计数器。 未实现。
实现方式是修改 HLC 程序,在初始化计数器时使用从 FIFO 提取的值。
复位位置计数器。 未实现。
实现方式是将 QEP-I 信号路由到 QEP 复位生成 LUT 和 LUT 方程。
QEP-S(选通信号) 锁存或复位位置计数器。 未实现。
可通过以下 QEP-I 示例实现。
位置计数器工作模式 在发生索引、位置上限、第一索引或单位超时事件时复位。 实现方式为:
在达到位置上限值时复位。此值通过提供的库函数 pto_qeponclb_configMaxCounterPos() 进行配置。请参阅Topic Link Label7.6
位置比较器件 未实现。
边沿捕捉器件 未实现。
看门狗 未实现。
单位时基计时器 (QUTMR) 未实现。