Перевод статьи Visualize Embedded Power Data in VS Code — MCU on Eclipse.

С помощью отладочного зонда NXP MCU-Link Pro можно измерять ток, мощность и энергию, которые потребляет встраиваемая плата. В этой статье расскажу, как эти данные использовать и визуализировать в VS Code.

Введение#

NXP MCU-Link Pro — это отладочный зонд со встроенной схемой измерения тока и мощности. В среду MCUXpresso IDE на базе Eclipse входит просмотрщик собранных данных (см. «MCU-Link Pro»: отладочный зонд с измерением энергии). Здесь же я покажу, как импортировать эти данные и работать с ними в VS Code. Для визуализации использую два способа: Python с Pandas и Gnuplot.

Что понадобится#

В VS Code у меня установлены такие расширения:

  • MCUXpresso for VS Code (nxpsemiconductors.mcuxpresso);
  • Python (ms-python.python);
  • Gnuplot Preview (fizzybreezy.gnuplot);
  • по желанию — Rainbow CSV (mechatroner.rainbow-csv).

Для работы с Gnuplot установите его с gnuplot.info и убедитесь, что он прописан в PATH.

Для Python/Pandas я использую Python 3.13.3 с библиотеками pandas и matplotlib:

pip install pandas matplotlib

Импорт через расширение NXP#

Данные анализа в формате .zip с MCU-Link Pro (или со схем измерения на отладочных платах, если они там есть) можно импортировать прямо в VS Code:

Пункт меню импорта архива с данными измерения энергии в VS Code

Импорт данных измерения энергии

После импорта отображается сводка:

Сводные значения тока и энергии после импорта

Итоговые значения измерения

Конвертация в CSV#

Данные легко перевести в формат .csv — см. конвертер данных измерения энергии MCUXpresso. После этого их можно визуализировать любым инструментом, который умеет читать CSV. Время указано в микросекундах, ток — в миллиамперах:

us,mA
1729032683.000000,6.772331
1729032703.000000,6.714966
1729032723.000000,6.747086
1729032743.000000,6.674423
...

Gnuplot#

Сила расширения Gnuplot Preview в том, что можно писать скрипты на языке Gnuplot. Вот скрипт, которым я пользовался (csv.gnuplot):

# файл: csv.gnuplot
set datafile separator ','          # CSV с запятой в качестве разделителя

set key autotitle columnhead        # первая строка — заголовки
set ylabel "Current (mA)"           # подпись оси Y
set xlabel 'Time (us)'              # подпись оси X

set style line 100 lt 1 lc rgb "grey" lw 0.5    # стиль линий сетки
set grid ls 100                 # включаем сетку с этим стилем

set title "MCU-LINK Pro (r0CF) CMSIS-DAP V3.108 (USWQBRYTBAMJC)"
plot "data.csv" using 1:2 with lines

Откройте файл gnuplot в редакторе VS Code, нажмите Ctrl+Shift+P и выберите GnuPlot: Preview Figure:

Команда GnuPlot: Preview Figure в палитре команд VS Code

Запуск предпросмотра графика

Предпросмотр откроется прямо внутри VS Code:

График потребляемого тока, построенный Gnuplot, во вкладке VS Code

График Gnuplot в VS Code

Python и Pandas#

Другой вариант — Python с Pandas. Вот пример скрипта:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("./power/data.csv")

# Относительное время в секундах
df["time_s"] = (df["us"] - df["us"].iloc[0]) / 1_000_000

plt.figure(figsize=(10,5))

plt.plot(df["time_s"], df["mA"], marker='o')

plt.xlabel("Time (s)")
plt.ylabel("Current (mA)")
plt.title("Current Consumption")

plt.grid(True)

plt.show()

Запускаем скрипт — и получаем график:

График потребляемого тока, построенный с помощью Python, Pandas и Matplotlib

График потребления тока, построенный на Python с Pandas

Итоги#

Визуализировать потребляемый ток или данные о мощности и энергии с MCU-Link/LinkServer в VS Code можно множеством способов. Мне нравится Gnuplot, потому что им же я пользуюсь для документации в LaTeX. Python с Pandas — универсальный инструмент для анализа и отображения данных. Ещё один вариант — Jupyter. Что мне действительно нравится в VS Code — это несколько вариантов и свобода выбора. А Gnuplot и Pandas из примеров работают и без VS Code.

Удачного анализа!

Ссылки#