SPRACA7A October   2017  – September 2022 TMS320F28075 , TMS320F28075-Q1 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S

 

  1.   C2000™ Hardware Built-In Self-Test
  2.   Trademarks
  3. 1Introduction
    1. 1.1 HWBIST Overview
      1. 1.1.1 HWBIST Working In-System
    2. 1.2 HWBIST Failure Response
    3. 1.3 Advantages of Using HWBIST In-System
  4. 2Using HWBIST In-System
    1. 2.1 Fundamental HWBIST Operation
      1. 2.1.1 Initializing the HWBIST Controller
      2. 2.1.2 Executing HWBIST
        1. 2.1.2.1 Executing HWBIST Micro-Run
        2. 2.1.2.2 Executing HWBIST Full-Run
      3. 2.1.3 Error Management
    2. 2.2 Managing HWBIST on Dual-Core Device
      1. 2.2.1 Semaphore Management
      2. 2.2.2 Interprocessor Communications
    3. 2.3 System Considerations When Using HWBIST
      1. 2.3.1 Interrupt Latency
      2. 2.3.2 Power Considerations
      3. 2.3.3 HWBIST Memory Requirements
      4. 2.3.4 Injecting Errors
    4. 2.4 Debugging HWBIST In-System
  5. 3References
  6. 4Revision History

Power Considerations

A minimum-sized micro-run takes more power than code running on the CPU. You should consider the following:

  • Immediately after a Power-On Reset (POR) and the completion of the boot ROM start-up code, most of the peripherals are not yet running. Therefore, running HWBIST before the system begins executing control loops allows for a more-than-adequate power margin to handle the extra current.
  • If the HWBIST is executed while a significant amount of the device circuitry is active and at a high temperature, then either:
    • Include some extra power margining in the system design
    • Execute micro-runs with /2 or /4 clocking

This second option increases the execution and interrupt latency time to 2x or 4x, respectively. Additionally, this option requires a source code change and additional testing of the HWBIST functions in the Software Diagnostic Library. To divide the clock by 2, a value of 1 must be written to bits 18-19 of CSTCGCR7. To divide the clock by 4, a value of 2 must be written to bits 18-19 of CSTCGCR7. This source code modification should be made in the appropriate location of the STL_HWBIST_init() function in stl_hwbist.c.