Перейти к основному содержимому

Работа с платами ELBEAR в PlatformIO

Установка

Компания Микрон предоставляет библиотеки и инструменты, позволяющие работать с микроконтроллером MIK32 АМУР в редакторе Visual Studio Code через плагин PlatformIO. Процесс установки плагина и необходимых пакетов описан в wiki компании Микрон:

к сведению

Ссылки на ресурсы компании Микрон актуальны на ноябрь 2025 года. Если ссылки недействительны, необходимо найти актуальные ссылки на официальном сайте компании Микрон.

Создание нового проекта

Обратите внимание

При создании проекта и дальнейшей работе с ним необходимо удостовериться, что в настройках проекта (в файле platformio.ini) и при выборе активного проекта (при создании/открытии каждого нового проекта) везде, где указана версия контроллера mik32v_, выбрана версия v2 (mik32v2), а не v0.

Для создания нового проекта:

  • Открыть VS Code, в боковой панели перейти на вкладку PlatformIO.
  • Выбрать Quick Access -> PIO Home -> Open. Откроется вкладка PIO Home.
  • На вкладке PIO Home нажать кнопку New Project. В диалоговом окне ввести название проекта, в графе Board выбрать MIK32V2 Generic Board (Mikron). Содержимое графы Framework должно заполниться автоматически после выбора платы. При необходимости можно выбрать расположение для сохранения проекта в графе Location.
  • В созданном проекте открыть файл platformio.ini и убедиться, что везде указана версия v2, а не v0.
  • В файле platformio.ini задать параметр линковщика board_build.ldscript в соответствии с областью памяти, для которой пишется программа. Для памяти EEPROM указать eeprom, для RAM памяти - ram, для SPIFI FLASH - spifi. Проект будет собран и записан в указанную область памяти (при использовании программатора для загрузки программ). Например:
    board_build.ldscript = spifi
  • В нижнем меню быстрого доступа найти кнопку Switch PlatformIO Project Environment, нажать ее и выбрать созданный проект в качестве активного.
  • Для добавления файлов в боковой панели выбрать Проводник, раскрыть содержимое проекта, нажать правой кнопкой мыши на папку, в которую необходимо добавить файл, и выбрать Создать файл. Ввести название файла вместе с расширением, например, main.c.
  • В созданный файл добавить необходимый код.
  • Для сборки проекта нажать кнопку PlatformIO: Build в нижнем меню быстрого доступа.

Пример файла main.c, реализующий моргание пользовательским светодиодом:

#include <mik32_memory_map.h>
#include <pad_config.h>
#include <gpio.h>
#include <power_manager.h>
#include <wakeup.h>

// Вывод, к которому подключен светодиод - PORT_2_7
#define PIN_LED 7

void InitClock()
{
// Включение тактирования GPIO
PM->CLK_APB_P_SET |= PM_CLOCK_APB_P_UART_0_M | PM_CLOCK_APB_P_GPIO_0_M | PM_CLOCK_APB_P_GPIO_1_M | PM_CLOCK_APB_P_GPIO_2_M;
// Включение тактирования блока для смены режима выводов
PM->CLK_APB_M_SET |= PM_CLOCK_APB_M_PAD_CONFIG_M | PM_CLOCK_APB_M_WU_M | PM_CLOCK_APB_M_PM_M;
}
void ledBlink()
{
// Инвертирование вывода
GPIO_2->OUTPUT ^= 1 << PIN_LED;
// Задержка
for (volatile int i = 0; i < 500000; i++)
;
}
int main()
{
// Включение тактирования GPIO
InitClock();
// Установка вывода 7 порта 2 в режим GPIO
PAD_CONFIG->PORT_2_CFG &= ~(0b11 << (2 * PIN_LED));
// Установка направления вывода 7 порта 2 на выход
GPIO_2->DIRECTION_OUT = 1 << PIN_LED;

while (1)
{
// Моргание светодиода
ledBlink();
}
}

Загрузка прошивки в микроконтроллер

Для загрузки созданного в PlatformIO проекта необходимо:

  • подключить программатор ELJTAG к ПК. При подключении программатора к ПК через USB-хаб могут возникнуть проблемы в работе. Рекомендуется подключать ELJTAG напрямую к ПК.
  • подключить плату ELBEAR к программатору через выведенный на плату разъем. На плате ACE-UNO расположение ключа шлейфа от программатора обозначено белой полосой, а на плате ACE-NANO - надписью ELRON.
  • собрать проект в PlatformIO (PlatformIO: Build).
  • нажать кнопку загрузки PlatformIO: Upload в нижнем меню быстрого доступа.

Запуск отладки программы

Для отладки программы необходимо использовать программатор ELJTAG.
Последовательность действий:

  • подготовить и собрать программу, которую необходимо запускать в режиме отладки.
  • подключить плату ELBEAR к ПК через программатор ELJTAG.
  • загрузить подготовленную программу на плату.
  • открыть PlatformIO в боковой панели и в разделе Debug нажать Start Debugging. Откроется боковая панель управления отладкой.
  • в панели управления отладкой в окне RUN AND DEBUG выбрать PIO Debug и нажать на кнопку запуска отладки. Процесс отладки должен начаться, а сверху появится панель управления отладкой.
примечание

Для микроконтроллера Амур при отладке доступно всего две точки останова.

Добавление поддержки загрузки программ по USB-UART

внимание

Данный способ загрузки позволяет записывать программы только во Flash-память на плате и не поддерживает отладку загруженной программы. При этом в EEPROM память микроконтроллера должен быть записан начальный загрузчик elbear_fw_bootloader (платы поставляются с предварительно записанным загрузчиком).

Компания Микрон предоставляет инструменты, которые по умолчанию предполагают загрузку прошивки на платы ELBEAR через программатор. Для добавления поддержки загрузки программ при подключении платы к ПК по USB необходимо выполнить следующие действия:

  1. Загрузить на ПК последний релиз скрипта программирования elbear uploader. Загруженный пакет необходимо разархивировать.
  2. Открыть существующий проект в PlatformIO или создать новый.
  3. Найти файл platformio.ini и открыть его для редактирования. Изначально после установки инструментов от Микрон содержимое файла должно быть подобным:
    [env:mik32v2]
    platform = MIK32
    board = mik32v2
    framework = framework-mik32v2-sdk
  4. Добавить в platformio.ini параметр линковщика, указывающий сборку под SPIFI Flash-память:
    board_build.ldscript = spifi
  5. Добавить в файл platformio.ini флаг, указывающий, что будет использоваться сторонний инструмент для загрузки программы, а также команду для запуска скачанного скрипта программирования elbear uploader:
    upload_protocol = custom
    upload_command = полный_путь\elbear_uploader.exe .pio\build\mik32v2\firmware.hex --com=COM3
    В команде необходимо указать полный путь до исполняемого файла скрипта программирования, путь до загружаемого hex-файла (по умолчанию это .pio\build\mik32v2\firmware.hex), а также корректный номер COM порта, к которому подключена плата ELBEAR.
  6. Сохранить изменения и закрыть файл platformio.ini. После редактирования содержимое файла должно быть подобным:
    [env:mik32v2]
    platform = MIK32
    board = mik32v2
    framework = framework-mik32v2-sdk
    board_build.ldscript = spifi
    upload_protocol = custom
    upload_command = "C:\Users\user\elbear_uploader\elbear_uploader.exe" .pio\build\mik32v2\firmware.hex --com=COM14
    Теперь в текущем проекте при нажатии кнопки загрузки программы, если COM порт указан верно, загрузка будет производиться по интерфейсу USB-UART, и плату можно будет использовать без программатора.
внимание

Описанные изменения распространяются только на текущий проект с текущим файлом platformio.ini. При создании нового или открытии другого проекта необходимо внести все вышеперечисленные изменения в файл platformio.ini нового проекта.

примечание

Проверено на PlatformIO IDE версии 3.3.4, Core версии 6.1.18.

Использование проектов-примеров

Компания Микрон в репозитории gitflic предоставляет набор примеров на базе PlatformIO, с помощью которых можно протестировать микроконтроллер MIK32.

Для работы с примером:

  • открыть папку интересующего примера в VS Code,
  • выбрать открытый проект в качестве активного для версии mik32v2 через кнопку Switch PlatformIO Project Environment на нижней панели,
  • при необходимости изменить номера используемых в программе выводов в соответствии с подключением на вашей плате,
  • собрать проект и загрузить прошивку в микроконтроллер.