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 Simulation Waveforms

Simulations for the QEP implementation are provided in this section. For more information on CLB simulations, refer to the CLB Tool User's Guide https://www.ti.com/lit/pdf/SPRUIR8.

Note:
  1. The QEP-A/B input stimulus was generated by CLB tile 4 using a counter and two FSMs as shown in Figure 5-5. Each FSM s0 output toggles when its e0 input changes. The outputs from the FSM modules were connected to the tile 1 simulation inputs in3 and in5.
  2. To improve readability, only the last 5 bits of the position counter are shown.
  3. The specified maximum position, MAXPOS, for this example is 0xD.

GUID-20211213-SS0I-XXQZ-J6KR-5SBJ5KGHHLMV-low.png Figure 5-5 QepOnClb Simulation Stimulus

Figure 5-6 and Figure 5-7 show the simulation for movement in the forward direction. The match1 (MAXPOS) output is tied back to the reset (shown in orange) of the counter. When the counter reaches MAXPOS, it is reset to 0 on the next CLB clock.

GUID-20211213-SS0I-HNXC-7RBH-HXHR3STTWKM6-low.png Figure 5-6 QepOnClb Forward Direction Simulation Waveform
GUID-20211213-SS0I-NZJC-VJMS-MRMKLB98NW49-low.png Figure 5-7 QepOnClb Forward Direction MAXPOS Simulation

Figure 5-8 and Figure 5-9 show the simulation for movement in the reverse direction. The match2 output is tied back to the event input of the counter. When the counter transitions to less than zero (0xFFFFFFFF), the load value (MAXPOS -1) is loaded into the counter.

Note: Only the low 5 bits of the position counter are shown for readability. 0x1F corresponds to 0xFFFFFFFF.

GUID-20211213-SS0I-7SPC-X8DF-X95FMQ1L7ZRQ-low.png Figure 5-8 QepOnClb Reverse Direction Simulation Waveform
GUID-20211213-SS0I-ZNJV-VTC6-9GBXNPTZFDKJ-low.png Figure 5-9 QepOnClb Reverse Direction MAXPOS Simulation

Figure 5-10 shows the error detection signal is high anytime QEP-A/B transition at the same time.

GUID-20211213-SS0I-84D9-TVJJ-5V0GPL4G3LJT-low.png Figure 5-10 QepOnClb Error Detection Simulation Waveform