Информационный портал технической поддержки Центра проектирования интегральных микросхем |
Перспективный микроконтроллер К1986ВК01QI (далее "Электросила") поддерживает современные методы управления электроприводами. Содержит два ядра Cortex-M4F и обладает широким набором цифро-аналоговых устройств и интерфейсных контроллеров. Достоинством данного процессора является большая надежность и эффективность в решении специализированных задач, требующих бессбойный ход выполнения программы и высокую точность наряду с высокой производительностью.
При написании статьи применялась отладочная плата «Электросилы» производства компании Миландр EVB v0.3. Проект, рассмотренный в статье, предназначен для включения RGB-светодиода при помощи трёх ШИМ-сигналов по каждому каналу цвета (красному, зеленому и синему). Рассмотренный проект "pwm_rgb" включен в состав установочного пака для IDE Keil, который доступен для загрузки на отдельной странице официального сайта компании Миландр с выпускаемым программным обеспечением.
Необходимо произвести установку пака в IDE Keil версии 5 и выше, желательно, в директорию по умолчанию. После завершения процесса можно перейти в выбранную для установки папку и обнаружить, что добавились все необходимые файлы поддержки микроконтроллера "Электросила" в среде, включая множество примеров по работе с периферийными блоками микроконтроллера, но из папки "Examples" для работы по данной статье потребуется пример "pwm_rgb". Запустим его.
В проекте содержится два набора настроек: для запуска из оперативной памяти и из ПЗУ. Необходимо убедиться, что в Select Target выбран параметр RAM (Оперативная память). Показано на рисунке 1. Выбор любого из параметров автоматически задаёт адреса и прочие настройки, позволяющие запуститься микроконтроллеру из нужной памяти. Однако, в статье всё равно приведены особенности выставления всех необходимых параметров.
Рисунок 1 - Выбор проекта для ОЗУ в Select Target
Следом необходимо перейти в настройки "Options for Target", далее "Device", и выбрать микроконтроллер "MDR1986VK01" из всплывающего меню "Cortex-M4". Настройка показана на рисунке 2.
Рисунок 2 - Выбор поднастройки MDR1986VK01 для работы с микроконтроллером "Электросила"
Далее необходимо убедиться в том, что в "Options for Target", вкладка Target, выставлены правильные адреса для ОЗУ. 128 Кбайт ОЗУ разбиты на два банка по 64 Кбайт: первый банк начинается с адреса 0x20000000, второй с 0x20010000. Наглядно показано на рисунке 3.
Рисунок 3 - Настройки адресов памяти в IDE Keil для работы с ОЗУ
Для подключения средств отладки будет использоваться JTAG-B. Режим загрузки JTAG-B по выводам MODE - “10001”. Для программирования/отладки был применён программатор J-Link, выбор же программатора необходимо производить согласно информации из статьи "Совместимость средств разработки Keil, IAR, CodeMaster и программаторов".
Из важного, что следует отметить в настроенном проекте, так это файл инициализации, который описан в папке с проектом под названием “0x20000000.ini” – его подключение видно на рисунке 4. Данный файл позволяет запускать проект в режиме отладки из ОЗУ (именно с адреса 0x20000000 в микроконтроллере расположена ОЗУ).
Рисунок 4 - Подключение файла 0x20000000 к проекту для корректного запуска из ОЗУ
Подробнее о запуске кода из ОЗУ написано в статье "Запуск программы из ОЗУ в среде Keil"
Согласно спецификации на данный микроконтроллер, большинство блоков имеют регистр KEY, и при записи в этот регистр значения 0x8555AAA1, разрешается запись других регистров конкретного блока:
CLK_CNTR->KEY = 0x8555AAA1; // разрешаем запись регистров CNTR (Clock Control)
// Настройка регистров разрешения тактирования шин периферийных блоков
CLK_CNTR->PER0_CLK = 0xFFFFFFFF;
CLK_CNTR->PER1_CLK = 0xFFFFFFFF;
Фрагмент кода 1 После компиляции проекта необходимо перейти в режим отладки комбинацией Ctrl+F5.
Остаётся запустить проект кнопкой F5. RGB-светодиод будет статично гореть согласно настройкам в файле leds.h. Поскольку в составе файлов поддержки имеется также файл .SFR, который содержит информацию об адресах регистров микроконтроллера, к которым можно получить доступ к режиме отладки, можно корректировать яркость светодиодов в реальном времени без перепрограммирования микроконтроллера. Для этого необходимо во время выполнения программы нажать на иконку "System Viewer Windows", как это показано на рисунке 5, а далее открыть окно необходимого таймера, например, MDR_TIMER2. После чего откроется отдельное окно в правой части экрана с содержимым всех регистров блока MDR_TIMER2. Здесь, меняя значение поля регистра CCR1, можно регулировать свечение зеленого канала RGB-светодиода. Аналогичную конфигурацию можно выполнить и для двух других каналов RGB-светодиода, тем самым, можно получить любой цвет.
Рисунок 5 - Регулировка каналов RGB-светодиода в режиме отладки
Теперь будет рассмотрен процесс запуска данного проекта из внутренней памяти микроконтроллера, которая составляет 1 Мбайт.
Перед работой важно не забыть установить кластер настроек в Select Target на FLASH. Это настроит Keil на работу с внутренней памятью. Показано на рисунке 6.
Рисунок 6 - Выбор проекта для FLASH в Select Target
Согласно спецификации на данный микроконтроллер, FLASH-память расположена по адресу 0х01000000. Это значение и диапазон (1 Мбайт = 0х100000) нужно указать в Options for Target, во вкладке Target для значений ROM, значения RAM выставляются в соответствии со вторым банком статического ОЗУ в размере 64 Кбайт, находящимся по адресу 0х20010000. Настройка показана на рисунке 7.
Рисунок 7 - Настройки адресов памяти в IDE Keil для работы с FLASH
Теперь необходимо перейти во вкладку Debug. Здесь важно отсутствие файла инициализации, который присутствовал в настройке проекта для работы с ОЗУ, так как проект будет записываться в память микроконтроллера посредством FLM-файла. В настройках программатора нужно выставить в поле"Connect and Reset Pin" параметры, которые показаны на рисунке 8.
Рисунок 8 - Настройки вкладки Debug для работы с FLASH
Теперь следует в настройках программатора, вкладка "Flash Download", выставить параметры, представленные на рисунке 9.
Именно здесь задается файл c алгоритмом программирования, добавленный в папку с Keil при установке пака.
Важно также соблюдать достаточное для алгоритма FLM значение Size 0хF000 (на рисунке 9 поле "RAM for Algorithm").
Рисунок 9 - Дополнительные настройки вкладки Debug для работы с FLASH
Во вкладке Utilities важно выбрать Use Target Driver for Flash Programming, поскольку теперь программа будет выполняться из FLASH-памяти. Выставление нужного параметра показано на рисунке 10.
Рисунок 10 - Настройки вкладки Utilities для работы с FLASH
Проект готов к тому, чтобы его записать в микроконтроллер "Электросила".
Сайт: | https://support.milandr.ru |
E-mail: | support@milandr.ru |
Телефон: | +7 495 221-13-55 |