SLUUDN8 July   2026 TMS320F28P550SJ , TMS320F28P650DK

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Library Notice
  6. 3Library Architecture
    1. 3.1 Background Processing
    2. 3.2 Foreground Processing
    3. 3.3 Data Transfer Mechanism
  7. 4Metrology Calculations
  8. 5Configuration and Data Structures
  9. 6Calibration Module
  10. 7User Specific Configurations
    1. 7.1 Debug Mode
      1. 7.1.1 The Function of Debug Mode
      2. 7.1.2 How to Configure DEBUG Mode Parameters
    2. 7.2 ADC Mode
      1. 7.2.1 Using the On-Chip ADC
      2. 7.2.2 Two Point Calibration
        1. 7.2.2.1 Step 1 – Offset Calibration (Zero-Input Point)
        2. 7.2.2.2 Step 2 – Gain Calibration (Full-Scale Point)
      3. 7.2.3 Using an External ADC
    3. 7.3 Switching Between Modes
    4. 7.4 THD Algorithm Selection
      1. 7.4.1 Method 1 – Based on PLL (Default When the HARMONICS_SUPPORT Macro is Not Defined)
      2. 7.4.2 Method 2 – Goertzel DFT (When the HARMONICS_SUPPORT and USE_GOERTZEL_THD Macros are Both Defined)
      3. 7.4.3 Method 3 – 2048-Point Real FFT (When the HARMONICS_SUPPORT Macro is Defined But the USE_GOERTZEL_THD Macro is Not)
    5. 7.5 Topology Selection
    6. 7.6 Enable Features
    7. 7.7 System Parameters
    8. 7.8 Scaling Factors Per Phase
  11. 8Running the Example
    1. 8.1 Accessing the Parameters Per Phase
    2. 8.2 Accessing the Total System Measurements
    3. 8.3 Accessing the Phase Status Flags

Accessing the Phase Status Flags

Each phase has a status field containing a bitmask of the PHASE_STATUS flags: gMetrologyWorkingData.phases[0].status.

The following lists useful flag values defined in the metrology_defines.h file:

  • PHASE_STATUS_NEW_LOG (0x0001) – The background has completed a measurement window; however, the foreground has not yet processed the measurement.
  • PHASE_STATUS_V_OVERRANGE (0x0010) – The voltage ADC input hits the end stops (clipping detected).
  • PHASE_STATUS_I_OVERRANGE (0x0020) – The current ADC input hits the end stops.
  • PHASE_STATUS_ZERO_CROSSING_MISSED (0x4000) – The expected zero crossing did not occur within the valid window (frequency out of range or signal lost).

To check if a flag is set, display the status field in hexadecimal format or use a bitwise AND expression: gMetrologyWorkingData.phases[0].status and 0x4000 are non-zero if a zero crossing was missed.

Note: For true real-time monitoring without halting, enable CCS continuous refresh mode (requires an XDS debug probe with real-time memory access capability). To enable continuous refresh mode:
  1. Right-select in the Expressions window → Continuous RefreshEnable.
    • This polls the target memory periodically while the CPU continues running.
    • This enablement adds to bus traffic and can potentially affect real-time performance. Therefore, use this mode sparingly.