TIDUE73A April   2018  – November 2024

 

  1.   1
  2.   Description
  3.   Resources
  4.   Features
  5.   Applications
  6.   6
  7. 1System Description
    1. 1.1 Key System Specifications
  8. 2System Overview
    1. 2.1 Block Diagram
    2. 2.2 Highlighted Products
      1. 2.2.1 C2000 Real-Time MCU LaunchPad
      2. 2.2.2 SN65HVD78
      3. 2.2.3 TLV702
      4. 2.2.4 TPS22918-Q1
    3. 2.3 Design Considerations
      1. 2.3.1 BiSS-C Protocol
        1. 2.3.1.1 Line Delay Compensation
        2. 2.3.1.2 Processing Time Request by Encoder
        3. 2.3.1.3 Control Communication
      2. 2.3.2 C2000 BiSS-C Encoder Interface Overview
      3. 2.3.3 TIDM-1010 Board Implementation
      4. 2.3.4 MCU Resource Requirements
        1. 2.3.4.1 Input, Output Signals, and CLB Tiles
      5. 2.3.5 CLB BiSS-C Implementation Details
        1. 2.3.5.1 Transaction Waveforms
        2. 2.3.5.2 FRAME_STATE Generation
        3. 2.3.5.3 CLB_SPI_CLOCK Generation
        4. 2.3.5.4 ENCODER_CLOCK (MA) Generation
      6. 2.3.6 PM BiSS-C Interface Library
        1. 2.3.6.1 PM BiSS-C Library Functions
  9. 3Hardware, Software, Testing Requirements, and Test Results
    1. 3.1 Hardware
      1. 3.1.1 TIDM-1010 Jumper Configuration
    2. 3.2 Software
      1. 3.2.1 C2000 Driver Library (DriverLib)
      2. 3.2.2 C2000 SysConfig
      3. 3.2.3 C2000 Configurable Logic Block Tool
      4. 3.2.4 Installing Code Composer Studio™ and C2000WARE-MOTORCONTROL-SDK
      5. 3.2.5 Locating the Reference Software
    3. 3.3 Testing and Results
      1. 3.3.1 Hardware Configuration
      2. 3.3.2 Building and Loading Project
      3. 3.3.3 Running Example Code
      4. 3.3.4 Encoder Test
      5. 3.3.5 Benchmarks
      6. 3.3.6 Troubleshooting
  10. 4Design Files
  11. 5Software Files
  12. 6Related Documentation
    1.     Trademarks
  13. 7Terminology
  14. 8About the Authors
  15. 9Revision History

CLB_SPI_CLOCK Generation

The CLB is responsible for detecting the encoder's response and then clocking the SPI to receive the data. First consider the duty and frequency of the clock. Figure 2-14 shows the CLB logic which generates the SPI clock. The corresponding simulation waveform is shown in Figure 2-15.

The first step is to generate a clock (called SPI_CLOCK) with the specificed frequency and duty. In the generation of SPI_CLOCK:

  • TILE3_COUNTER_1: is responsible for the duty and frequency (width) of the clock. The time between the high transition and the low transition of the SPI_CLOCK is measured in the number of CLB clocks. The following match signals are used:
    • zero match: corresponds to the low transition of the clock
    • match1: corresponds to the high transition of the clock
    • match2: corresponds to the width of the clock
  • TILE3_FSM_1: Generates the clock edges based on the COUNTER_1 match values: match1 and zero match
  • TILE3_LUT_0: Resets the counter when the clock width has been reached as indicated by the COUNTER_1 match2 output

The second step is to align the clock with the received data. This is required for the SPI to receive the encoder's response correctly. There are two challenges to aligning the clock:

  1. The response can arrive at any time due to cable propagation delay as described in Section 2.3.1.1.
  2. The encoder can also delay the acknowledgment, ACK, to request additional processing time as described in Section 2.3.1.2.

To align the clock, LUT_0 monitors the RESPONSE signal for a rising edge. The first rising edge corresponds to the START bit after the acknowledge (ACK) bit. When this edge is detected, LUT_0 resets COUNTER_1 which aligns the SPI_CLOCK to the response.

The third step is to generate the CLB_SPI_CLOCK based on the internal SPI_CLOCK. As shown in Figure 2-15:

  • SPI_CLOCK is generated for a longer duration then required for the SPI to receive the response
  • CLB_SPI_CLOCK only outputs the number of clocks required to receive the response
This is achieved by using TILE4_FSM_2 to generate a SPI_CLOCK_OUTPUT_ENABLE signal. This signal is used by the OUTLUT to allow/block the SPI_CLOCK as required.

TIDM-1010 CLB_SPI_CLOCK Generation Figure 2-14 CLB_SPI_CLOCK Generation
TIDM-1010 SPI Clock Generation Simulation Waveform Figure 2-15 SPI Clock Generation Simulation Waveform