Графики энергопотребления микроконтроллера прямо в VS Code

Перевод статьи 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:

Импорт данных измерения энергии
После импорта отображается сводка:

Итоговые значения измерения
Конвертация в 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:

Запуск предпросмотра графика
Предпросмотр откроется прямо внутри 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
Итоги#
Визуализировать потребляемый ток или данные о мощности и энергии с MCU-Link/LinkServer в VS Code можно множеством способов. Мне нравится Gnuplot, потому что им же я пользуюсь для документации в LaTeX. Python с Pandas — универсальный инструмент для анализа и отображения данных. Ещё один вариант — Jupyter. Что мне действительно нравится в VS Code — это несколько вариантов и свобода выбора. А Gnuplot и Pandas из примеров работают и без VS Code.
Удачного анализа!
Ссылки#
- Gnuplot: gnuplot.info
- Библиотека анализа данных Pandas: pandas.pydata.org
- Data Converter for MCUXpresso Energy Measurement Data
- Исходники конвертера на GitHub: ErichStyger/mcuoneclipse
- Страница NXP MCU-Link Pro
- New «MCU-Link Pro»: Debug Probe with Energy Measurement