SPRAC77E January   2022  – February 2022 TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S

 

  1.   Trademarks
  2. 1Introduction
  3. 2PTO – PulseGen
    1. 2.1 PulseGen Implementation Overview
    2. 2.2 PulseGen Limitations
    3. 2.3 PulseGen CLB Configuration
    4. 2.4 PulseGen Input and Output Signals
  4. 3PTO – QepDiv
    1. 3.1 QepDiv Implementation Overview
    2. 3.2 QepDiv Limitations
    3. 3.3 QepDiv Divider Settings and Initialization
    4. 3.4 QepDiv CLB Configuration
  5. 4PTO – Abs2Qep
    1. 4.1 Abs2Qep Chip resources
    2. 4.2 Abs2Qep Theory of Operation
      1. 4.2.1 Abs2Qep Translation Equations
      2. 4.2.2 Abs2Qep Translation Example
      3. 4.2.3 Abs2Qep Zero Cross Detection
    3. 4.3 Abs2Qep CLB Configuration
      1. 4.3.1 Abs2Qep QEP-A/B Pulse Train Generation
      2. 4.3.2 Abs2Qep Halt Latch
      3. 4.3.3 Abs2Qep High Level Controller (HLC)
    4. 4.4 Abs2Qep Input and Output Signals
  6. 5PTO – QepOnClb QEP Decoder
    1. 5.1 QepOnClb and eQEP Comparison
    2. 5.2 QepOnClb Chip resources
    3. 5.3 QepOnClb Theory of Operation
    4. 5.4 QepOnClb CLB Resources
      1. 5.4.1 QepOnClb QCLK State Machine
      2. 5.4.2 QepOnClb Direction Decode
      3. 5.4.3 QepOnClb Error Detection
      4. 5.4.4 QepOnClb Simulation Waveforms
  7. 6Example Projects
    1. 6.1 Hardware Requirements
    2. 6.2 Installing Code Composer Studio and C2000WARE-MOTORCONTROL-SDK™
    3. 6.3 Import and Run Example Project
    4. 6.4 PulseGen Example
    5. 6.5 QepDiv Example
    6. 6.6 Abs2Qep Example
      1. 6.6.1 Watch Variables
      2. 6.6.2 Test Signals
      3. 6.6.3 Pin Usage and Test Connections
    7. 6.7 QepOnClb Example
      1. 6.7.1 Watch Variables
      2. 6.7.2 Header Pin Connections
  8. 7Library Source and Projects
    1. 7.1 Locating the Library Source Code
    2. 7.2 Import and Build the Library Project
    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 Configuration
      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. 8Using the Reference APIs in Projects
    1. 8.1 Adding PTO Support to a Project
    2. 8.2 Routing To and From the CLB
    3. 8.3 Initialization Steps
      1. 8.3.1 PTO-PulseGen API Initalization
      2. 8.3.2 PTO-QepDiv API Initialization
      3. 8.3.3 PTO-Abs2Qep API Initialization
      4. 8.3.4 PTO-QepOnClb API Initialization
  10. 9References
  11.   Revision History

QepOnClb and eQEP Comparison

This decoder implementation is similar to the C2000 eQEP peripheral operating in quadrature-count mode. Table 5-1 provides a high-level comparison of the features supported. In some cases, potential modifications have been provided. Refer to the device-specific Technical Reference Manual for a detailed description of the eQEP peripheral.

Table 5-1 QepOnClb and eQEP (Type 0) Comparison Overview
eQEP Feature QepOnClb Support
Quadrature-clock mode (QEP-A/B signals) Detect direction, count, and invalid state transitions. Implemented.
The current state of the QEP-A/B signals is compared to the previous state. The phase relationship determines the direction of movement. If both signals change at the same time, then an invalid state transition is detected.
An invalid state transition sets a flag or optionally generates an interrupt. Implemented.
The CLB will issue an interrupt on an invalid state transition. If instead a flag is desired, the CLB interrupt tag can be used and the interrupt left disabled.
Configure 4x count: both the rising and falling edge of both QEPA/B Implemented as:
Both the rising and falling edges of QEPA/B generate a count.
This behavior can be changed by modifiying the QCLK state machine.
Reverse count (reverse QEP-A/B inputs) Not implemented.
To implement, modify the CLB configuration to swap the QCLK state machine inputs.
Direction-count mode (XCLK and DIR signals) QEP-A becomes XCLK and QEP-B becomes DIR. Not implemented.
To implement, modify the CLB configuration and (1) disconnect DIR (QEP-B) from the direction decode LUT and (2) connect DIR directly to the direction control, mode 1, of the counter.
QEP-I (index or zero signal) Latch the position counter which can then be read using a driverlib function. This can be configured to be rising-edge, falling-edge or event marker/software index marker based. Implemented as:
Latch the position counter on the QEP-I rising-edge. The position counter value can be read from the HLC FIFO using a provided library function.
On some devices the HLC can be configured to respond to a falling-edge instead of rising-edge.
Initialize the position counter. Not implemented.
To implement, modify the HLC program to initalize the counter with a value pulled from the FIFO.
Reset the position counter. Not implemented.
To implement, route the QEP-I signal to the QEP reset generation LUT and it into the LUT's equation.
QEP-S (strobe signal) Latch the position counter o reset the position counter. Not implemented.
Can be implemented by following the QEP-I example.
Position counter operating modes Reset on index, maximum position, first index or unit time-out event. Implemented as:
Reset on a maximum position value. This value is configured through a provided library function pto_qeponclb_configMaxCounterPos(). Refer to Section 7.6.
Position compare unit Not implemented.
Edge capture unit Not implemented.
Watchdog Not implemented.
Unit timer base (QUTMR) Not implemented.