diff --git a/doc/develop/test/twister.rst b/doc/develop/test/twister.rst index 948a487439a..63fe6bcd395 100644 --- a/doc/develop/test/twister.rst +++ b/doc/develop/test/twister.rst @@ -561,6 +561,7 @@ harness: - robot - ctest - shell + - power See :ref:`twister_harnesses` for more information. @@ -972,6 +973,44 @@ robot_testsuite: (default empty) robot_option: (default empty) One or more options to be send to robotframework. +Power +===== +The ``power`` harness is used to measure and validate the current consumption. +It integrates with 'pytest' to perform automated data collection and analysis using a hardware power monitor. + +The harness executes the following steps: + +1. Initializes a power monitoring device (e.g., ``stm_powershield``) via the ``PowerMonitor`` abstract interface. +#. Starts current measurement for a defined ``measurement_duration``. +#. Collects raw current waveform data. +#. Uses a peak detection algorithm to segment data into defined execution phases based on power transitions. +#. Computes RMS current values for each phase using a utility function. +#. Compares the computed values with user-defined expected RMS values. + +.. code-block:: yaml + + harness: power + harness_config: + fixture: pm_probe + power_measurements: + element_to_trim: 100 + min_peak_distance: 40 + min_peak_height: 0.008 + peak_padding: 40 + measurement_duration: 6 + num_of_transitions: 4 + expected_rms_values: [56.0, 4.0, 1.2, 0.26, 140] + tolerance_percentage: 20 + +- **elements_to_trim** – Number of samples to discard at the start of measurement to eliminate noise. +- **min_peak_distance** – Minimum distance between detected current peaks (helps detect distinct transitions). +- **min_peak_height** – Minimum current threshold to qualify as a peak (in amps). +- **peak_padding** – Number of samples to extend around each detected peak. +- **measurement_duration** – Total time (in seconds) to record current data. +- **num_of_transitions** – Expected number of power state transitions in the DUT during test execution. +- **expected_rms_values** – Target RMS values for each identified execution phase (in milliamps). +- **tolerance_percentage** – Allowed deviation percentage from the expected RMS values. + Bsim ====