Настройка среды разработки для микроконтроллеров Миландр (К1986ВЕ92QI)

Мы начинаем написание цикла статей по разработке под микроконтроллеры (далее МК) фирмы Миландр, а более конкретно - под микроконтроллер К1986ВЕ92QI, являющихся одним из самых дешевых и производительных в линейке данной фирмы.

В качестве платы для разработки и отладки мы будем использовать плату LDM-K1986BE92QI. Для изучения микроконтроллера придется затратить человеко-месяцы труда, в сравнении с которыми стоимость платы невелика.

В качестве среды разработки мы будем использовать Keil. По состоянию на 2024 год сайт недоступен для российских пользователей, но пытливый ум всегда найдет возможность.

Ниже будет представлена последовательность действий, в виде алгоритма, для начала работы с микроконтроллером К1986ВЕ92QI фирмы Миландр.

1) Заходим на страницу производителя и продавца отладочной платы LDM-K1986BE92QI и на закладке «Документация» скачиваем все файлы:

1.1) Руководство по эксплуатации отладочной платы LDM-K1986BE92QI;

1.2) Схема отладочной платы LDM-K1986BE92QI;

1.3) Спецификация микроконтроллеров серии 1986ВЕ9х и К1986ВЕ9х;

1.4) USB-UART загрузчик. Данная программа позволит программировать отладочную плату LDM-K1986BE92QI без внешнего программатора, а также может быть полезна если вы завесили ПО микроконтроллера так, что порты JTAG или SWD недоступны (да это возможно если писать в их пины не нули, смотрим второй абзац пункта 16 спецификации микроконтроллеров серии 1986ВЕ9х и К1986ВЕ9х;

1.5) Драйвер USB-UART, нужен для определения подключенного USB-A отладочной платы LDM-K1986BE92QI-H как COM-порта в ОС Windows;

1.6) Примеры проектов от производителя МК;

1.7) Полезное ПО от AntonAS Milandr_PLLv2.2 содержит кодогенераторы периферии для микроконтроллера Миландр MDR32F9Q2I (K1986BE92QI). Мне не удалось спокойно открыть современными браузерами без проблем приложенные файлы, ругалось на безопасность. Для меня решением проблемы стало запуск данных файлов с отключенной безопасностью браузера Google Chrome, который я использую. Для этого нужно разместить в распакованном архиве, рядом с *.html файлами, bat файл со следующим содержимым и запускать через это bat файл:


start chrome "%~dp0index.HTML"  --user-data-dir="%%~fQ" --disable-web-security

1.8) Конвертер BMP to HEX array позволяющий из bmp файла размером 64х128 пикселов создать код масива на языке Си для вывода картинки на ЖКИ индикатор MT-12864J-2FLB-3V0, размещенный на отладочной плате. Со страницы индикатора также нужно скачать файлы. Данный конвертер мне показался «недостаточно хорош» и я написал свой конвертер с блэкджеком и плюшками, где изображение 128х64 размещается горизонтально и может быть не однобитовым и не монохромным. Также есть регулировка «контрастности» (выбор порога черный-белый пиксел) для не монохромных изображений.

2) Скачать и установить IDE Keil

2.1) Скачать и установить пакет «Software pack для Keil MDK 5 для МК К1986ВЕ92QI, К1986ВЕ1QI, К1901ВЦ1QI»

3) Создаем проект Keil

3.1) Запускаем Keil и создаем проект через меню 'Project->new uVision Project'. В появившемся диалоговом окне "Create New Project", в соответствии с рисунком 1, создаем папку и задаем имя для проекта, например test.

Рисунок 1. Диалоговое окно создания проекта Keil.

3.2) В появившемся диалоговом окне "Select Device for Target 'Target 1'...", в соответствии с рисунком 2, выбираем наш МК MDR32F9Q2I

Рисунок 2. Диалоговое окно выбора МК..

3.3) В появившемся диалоговом окне "Manage Run-Time Enviroment", в соответствии с рисунком 3, раскрываем вкладки слева "CMSIS" и "Device" и ставим галочки справа в пунктах "CMSIS-CORE for Cortex-M..." и "System Startup for MDR32F9Q2I".

Рисунок 3. Выбор используемых модулей в проекте Keil.

3.4) Откроется IDE с проектом. В соответствии с рисунком 4, раскрыть узел "Target 1" и выделив дочерний узел "Source Group 1" правым кликом мышки выбрать в контекстном меню "Add New Item to Group 'Source Group 1'..."

Рисунок 4. Добавление файла проект Keil.

3.5) В появившемся диалоговом окне, в соответствии с рисунком 5, выбрать тип файла "C File (.c)" и в поле "Name", задать имя файла, например main.

Рисунок 5. Добавление файла на языке Си в проект Keil.

3.6) В созданный файл вставляем содержимое минимального проекта


#include "MDR32F9Q2I.h"

#define PIN_LED 0	// Номер вывода светодиода

int main (void){
  MDR_RST_CLK->PER_CLOCK |= (1 << 22); // Разрешение тактирования порта B (п.14.7.8)

// Инициализация вывода 0, порта B (PORTB_0) как выхода. К выводу подключен светодиод VD5.
  MDR_PORTB->OE |= (1 << PIN_LED); // PORTB_0 - выход (п.16.1.2). Обязательно устанавливать в 1.
  MDR_PORTB->ANALOG |= ((1 << PIN_LED)); // Режим работы PORTB_0 - цифровой (п.16.1.4) Обязательно устанавливать в 1.
  MDR_PORTB->PWR |= (1 << PIN_LED * 2); // Включить передачик PORTB_0. Скорость фронта вывода - медленный (п.16.1.7). Обязательно устанавливать в 1, 2 или 3.
		
  while(1){
    for(int i = 0; i < 100000; i++){} // Задержка	
    MDR_PORTB->RXTX ^= (1 << PIN_LED); // Инвертировать значение 0-го бита порта B (п.16.1.1)
  }
}

3.7) Компилируем проект через меню "Project->Build Target F7" или нажатием горячей клавиши F7. И вот первый результат! Проект должен собраться, возможно с кучей предупреждений которые мы уберем в дальнейшем.

4) Настраиваем Keil:

4.1) Для нормального отображения русских комментариев в тексте - в меню Edit -> Configuration -> Закладка "Editor" -> Encoding установить "Encode in UTF-8 without signature" или "Russian Windows-1251". Минус кодировки UTF-8 в том, что русские символы в коде будут двухбайтовые и это может затруднить разработку, а минус CP1251 в том, что русские символы в коде, в редакторе подчеркиваются как ошибочные. В общем, у меня установлена кодировка CP1251;

4.2) Для отображения комментарии в тексте с двойным слешем // без предупреждений и использования современного стиля и синтаксиса написания кода, в меню Project -> Options for Target 'Target 1'... (Alt+F7) -> Закладка "C/C++(AC6)" ->Language C установить "с11";

4.3) Для автоматического запуска контроллера после прошивки, без необходимости нажатия кнопки Reset на плате - в меню Project -> Options for Target 'Target 1'... (Alt+F7) -> Закладка "Debug" -> Кнопка "Settings" -> Закладка "Flash Download" -> Reset and Run установить галку;

4.4) Для программирования микроконтроллера Миландр программатором ST-Link, как это делаю я, необходимо в меню Project -> Options for Target 'Target 1'... (Alt+F7) -> Закладка "Debug" в выпадающем списке возле кнопки "Settings" установить "ST-Link Debugger";

4.5) Если при прошивке МК Keil будет выдавать ошибку "Error: Flash Download failed - Target DLL has been cancelled", проблема описана и решена по ссылке. Нужно скачать dll и заменить исходную C:\Keil_v5\ARM\STLink\ST-LINKIII-KEIL_SWO.dll;

4.6) Если необходимо будет при компиляции генерировать hex файл в меню Project -> Options for Target 'Target 1'... (Alt+F7) -> Закладка "Output" установить галку "Create HEX File";

4.7) Если при прошивке МК Keil будет выдавать предупреждения о старой версии ST-LINK - в меню Project -> Options for Target 'Target 1'... (Alt+F7) -> Закладка "Debug" -> Кнопка "Settings" -> Check version on start снять галку.

2024-04-20



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

Управление тактовой частотой микроконтроллера Миландр К1986ВЕ92QI (MDR32F9Q2I)
Работа с портами ввода-вывода (GPIO) микроконтроллера Миландр на CMSIS
Прерывания в микроконтроллерах Миландр. Системный таймер.
Настройка среды разработки для микроконтроллеров Миландр (К1986ВЕ92QI)
Прошивка микроконтроллера К1986ВЕ92QI на отладочной плате LDM-K1986BE92QI через UART и SWD с использованием ST-LINK
Работа с UART микроконтроллера К1986ВЕ92QI (MDR32F9Q2I)