Всегда верное решение!
ГАММА-САНКТ-ПЕТЕРБУРГ
Поставки электронных компонентов и модулей на рынки
России, стран СНГ и Прибалтики
Russian English
(812) 493-51-15
197101, Санкт-Петербург, Певческий пер., 12
(ст.м. "Горьковская"), БЦ "LIGHTHOUSE"

посмотреть на карте

(812) 493-51-15

Начало работы с Microchip MPLAB Code Configurator. Создаём проект для Curiosity Development Board

Введение
Глава 1. Установка MPLAB Code Configurator
Глава 2. Начало работы с платой Curiosity
Глава 3. Начало работы с Code Configurator
Глава 4. Использование логических ячеек
Рекомендуемые материалы

Введение

В ассортименте микроконтроллеров, выпускаемых фирмой Microchip, появилось перспективное направление 8-битных микроконтроллеров с независимой от ядра периферией (Core Independent Peripherals) и возможностью коммутации периферийных модулей на различные ножки корпуса микроконтроллера (Peripheral Pin Select).

Независимая от ядра периферия высвобождает вычислительные ресурсы микроконтроллера, работая самостоятельно. Будучи однажды настроенными, периферийные модули не загружают и не прерывают основную программу микроконтроллера, требуется меньше Flash памяти. Ядро может быть приостановлено или переведено в режим SLEEP для уменьшения потребляемой мощности. Независимая периферия работает быстрее, обеспечивая почти нулевую задержку при обработке данных или аналоговых сигналов. В результате упрощается управление, предоставляются более гибкие средства разработки. Замена дискретных компонентов на встроенную периферию микроконтроллера помогает снизить стоимость изделия.

Коммутация периферийных модулей на различные ножки корпуса микроконтроллера расширяет возможности при разводке печатной платы, что может оказаться особенно важным при замене старых моделей микроконтроллеров на новые. Коммутация модуля на несколько ножек повышает допустимый ток.

Для удобства работы с новыми микроконтроллерами предназначена программа MPLAB Code Configurator, которая имеет удобный графический интерфейс и понятное меню, устанавливается как плагин, прямо из среды разработки. Благодаря MPLAB Code Configurator обеспечивается новый уровень автоматизации и абстракции при настройке периферийных модулей микроконтроллера, что в свою очередь, сокращает усилия и время на разработку кода, уменьшает необходимость глубоко вникать в документы на микроконтроллер. MPLAB Code Configurator генерирует исходный код в виде текстовых файлов, которые автоматически добавляются в проект и при необходимости текст функций можно изменять. С помощью этого плагина легко удалять или добавлять периферийные модули в проект, настраивать порты ввода-вывода, конфигурировать прерывания и коммутировать ножки на периферийные модули.

Для освоения новых микроконтроллеров предназначена плата Curiosity Development Board. На плате установлен программатор Curiosity Development Board's PICkit on board (PKOB), электрическое питание платы можно получать от компьютера через разъём USB, или от внешнего источника питания.

В этой статье обсуждается начало работы с MPLAB Code Configurator в связке с платой Curiosity Development Board. На плате установлен микроконтроллер PIC16F1619. Программы, необходимые для работы, можно скачать с сайта www.microchip.com и установить на компьютер.

Глава 1. Установка MPLAB Code Configurator

Перед тем, как начать работу с платой Curiosity Development Board нужно установить плагин MPLAB Code Configurator [1]. При помощи этого плагина значительно облегчается работа программиста по начальной настройке микроконтроллера. Code Configurator обеспечивает удобный графический интерфейс, автоматический расчёт регистров периферийных модулей и генерирование файлов с исходным текстом. Среда разработки MPLAB X IDE и компилятор XC8 уже должны быть установлены, компьютер должен быть подключен к интернету. Для установки плагина запустим MPLAB X IDE, откроем Tools -> Plugins (рис. 1).

Рис. 1. Запуск окна плагинов.

В появившемся окне выбираем вкладку Available Plugins (доступные плагины). Затем прокручиваем окно вниз и находим MPLAB Code Configurator, ставим галочку в квадрате напротив нужной нам программы – в правой половине окна появится описание пргограммы, затем нажимаем кнопку Install (рис. 2). После этого нажимаем кнопку Next, затем Install. Для установки плагина потребуется некоторое время, после чего нажимаем кнопку Finish – окно установщика закроется. Более подробно с возможностями программы MPLAB Code Configurator (MCC) можно ознакомиться на странице программы [2] на сайте microchip.

Перед тем, как запустить MCC, нужно создать или открыть уже имеющийся проект MPLAB X IDE, чтобы был известен микроконтроллер, для которого создаём программу. В соответствии с этим MCC настроит специфичные для микроконтроллера регистры, биты конфигурации и др. А также настроит пользовательский интерфейс (GUI). На основе этих данных MCC создаёт исходные и заголовочные файлы и добавляет их в активный проект MPLAB X IDE.

Если плагин уже установлен, то чтобы его открыть выбираем в среде разработки Tools -> Embedded -> Open/Close MPLAB Code Configurator (рис. 3).

Рис. 2. Загрузка плагина из сети.

Рис. 3. Запуск плагина.

Глава 2. Начало работы с платой Curiosity

Запитать плату Curiosity Development Board можно от компьютера через разъём USB. Разъём стандарта mini USB расположен на обратной стороне платы и обозначен как J2. В случае питания от USB на разъёме J12 (расположен рядом с микроконтроллером) должна быть перемычка. Правая и средняя ножки разъёма J12 коммутируют 5 Вольт от разъёма USB (J2). Левая и средняя ножки разъёма J12 подключают 3,3 Вольт от регулятора напряжения USB, который расположен на задней стороне платы. Выбранное напряжение подаётся на микроконтроллер. При обоих положениях перемычки плата будет работать.

Если питание от USB подано на разъём J2, светодиод D1 «power» будет всё время светить, показывая, что напряжение 3,3 Вольт подано на плату.

На плате Curiosity Development Board устанавливается микроконтроллер PIC16F1619. Для начала работы заходим на домашнюю страницу платы: http://www.microchip.com/promo/curiosity.

Выбираем вкладку Code, затем выбираем микроконтроллер PIC16F1619, который установлен в плате. В архиве имеются следующие примеры кода: Hello World (Включение светодиода), Blink, Rotate LED's, ADC, Variable Speed Rotate, PWM, Timer 1, Sleep wake up on WDT, EEPROM, HEF.

Нажимаем кнопочку Download и скачиваем архив с программами.

Рис. 4. Загрузка программы для PIC16F1619.

Распаковываем архив, открываем проект. На плате установлен программатор Curiosity Development Board's PICkit on board (PKOB), который должен работать в режиме low-voltage programming. В коде приложения следует установить в «1» бит конфигурации «Low Voltage Programming» (LVP), тем самым разрешить программатору работать в режиме low-voltage программирования. Убедимся, что бит установлен – для этого в проекте PIC16F1619_Cur выбираем Window -> PIC Memory Views -> Configuration Bits (рис. 5).

Рис. 5. Выбор окна битов конфигурации.

В появившемся окне прокручиваем вниз и смотрим бит конфигурации LVP (рис. 6).

Рис. 6. Окно битов конфигурации.

Теперь можно компилировать и загружать программу. Для этого достаточно нажать кнопку Make and Program Device (Project PIC16F1619_Cur рис. 7). После сборки проекта и первой попытки прошить плату Curiosity выпадает окошко смены программатора (рис. 8). Нужно нажать кнопку OK, начнётся программирование микроконтроллера, в первый раз это займёт несколько больше времени чем обычно.

Рис. 7. Компиляция и загрузка программы.

Рис. 8. Окно смены программатора.

После того, как программирование закончится, переключение между лабораторными работами делают кнопкой S1, которая расположена на плате. Лабораторные работы интересны в плане демонстрации работы платы. В файле Readme описываются основные моменты лабораторных работ.

С точки зрения работы с плагином MPLAB Code Configurator скачанные лабораторные работы вряд ли помогут. Для освоения конфигуратора MCC целесообразно самому сделать проект.

Глава 3. Начало работы с Code Configurator

Создадим проект, выберем для этого в MPLAB X IDE File -> New Project, в открывшемся окне выбираем Microchip Embedded Standalone Project. Нажимаем кнопку Next. После этого выбираем микроконтроллер PIC16F1619, соответствующий установленному в плате Curiosity, затем нажимаем кнопку Next. В выпадающем списке Supported Debug Header выбираем None, нажимаем кнопку Next. В следующем окне Select Tool выбираем Curiosity (если плата подключена к компьютеру или, если не подключена, Starter Kits (PKOB)), нажимаем Next (рис. 9). Затем выбираем компилятор XC8, нажимаем Next. После этого указываем название и место расположения проекта, нажимаем Finish. Для просмотра характеристик проекта откроем окно Dashboard выбрав Window -> Dashboard (рис. 10). Убедимся, что выбран программатор Starter Kits (PKOB) и микроконтроллер PIC16F1619 (рис. 11).

После этого запускаем MPLAB Code Configurator [3], выбрав Tools -> Embedded -> Open/Close MPLAB Code configurator (рис. 3).

Рассмотрим подробнее окна плагина [4] (рис. 12). Слева расположены вкладки ресурсов. Project Resources – ресурсы микроконтроллера, которые задействованы в текущем проекте. Выделив System module увидим в окне MPLAB Code Configurator настройки этого модуля в проекте, например, частота тактового генератора, его настройки, настройки Watchdog таймера. Выбрав вкладку Registers можно настроить биты конфигурации, например, включить низковольтное программирование (рис. 13). В окне Device Resources настраивается вся доступная для выбранного микроконтроллера периферия, а также имеется ссылка на документ.

Рис. 9. Выбор программатора.

Рис. 10. Открытие окна Dashboard.

Рис. 11. Характеристики проекта в окне Dashboard.

Рис. 12. Окна плагина MCC.

Рис. 13. Вкладка Registers и настройка битов конфигурации.

Во вкладке Device Resources дважды щёлкнем мышью на строке PWM, затем дважды щёлкнем мышью на строке PWM3 (рис. 14). В этой же вкладке Device Resources дважды щёлкнем мышью на строке Timer, затем дважды щёлкнем мышью на таймере TMR4 (рис. 15), добавив тем самым выбранные модули в ресурсы проекта (рис. 16).

Рис. 14.Выбор модуля PWM3.

Рис. 15. Выбор таймера TMR4.

Рис. 16. Ресурсы проекта после выбора PWM и таймера.

Рис. 17. Настройка таймера на 100 миллисекунд.

В появившемся окне TMR4 во вкладке Easy Setup в поле Timer Period слева будет находиться значение 8 us, а справа 2.048 ms. В поле Timer Clock установим в выпадающем списке Prescaler выберем значение 1:64. Обратим при этом внимание, что в поле Timer Period слева теперь будет находиться значение 512 us, а справа 131.072 ms, что в 64 раза больше предыдущих значений и что соответствует логике работы предделителя.

Теперь в графе Timer Period введём значение 100 ms (рис. 17). Таким образом можно легко настраивать параметры периферийных модулей. Если непонятны какие-либо настройки модуля, то можно посмотреть информацию в документе на микроконтроллер. Благодаря такому упрощению нет необходимости глубоко вникать в документацию микроконтроллера. Ниже графы Timer Period можно увидеть надпись Actual Period 99.84 ms (доступное значение меньше, чем 100 мс.). Перейдём на вкладку Registers. В поле Register: T4CON в выпадающем списке T4CKPS можно наблюдать значение 1:64 – это значение битов соответствует нашей установке Prescaler 1:64 и периоду срабатывания таймера Actual Period 99.84 ms. Изменим в поле T4CKPS значение на 1:128. Вернёмся во вкладку Easy Setup; в поле Timer Clock значение Prescaler будет установлено 1:128, а Actual Period изменит своё значение с 99.84 ms на 100.352 ms. Затем в поле Ext Reset Source в выпадающем списке выбираем PWM3OUT (рис. 18).

Рис. 18. Изменение настроек и времени таймера.

Во вкладке Notifications можно увидеть сообщения, одно из которых сигнализирует о том, что для модуля PWM3 выбран Timer2 (рис. 19).

Рис. 19. Сообщения во вкладке Notifications.

Вернёмся к окну ресурсов проекта (рис. 16), в поле Peripherals дважды щёлкнем мышью на строке PWM3. Во вкладке Easy Setup, в поле Select a Timer в выпадающем списке выбираем Timer4 (рис. 20).

Рис. 20. Выбор таймера 4 для модуля PWM.

После этого одна из надписей во вкладке Notifications укажет, что к модулю PWM3 подключен Timer4 (рис. 21).

Рис. 21. Изменение строки во вкладке Notifications.

Переходим к менеджеру выводов микроконтроллера. Выбираем тип корпуса микроконтроллера, который установлен в устройство (рис. 22). Теперь можно соединить ножки корпуса с периферийными модулями микроконтроллера. Ножки, помеченные серым цветом, не используются, помеченные синим цветом – доступны к подключению, зелёным цветом помечаются ножки, которые уже присоединены, а жёлтым цветом помечены ножки, которые уже предустановлены и их возможно настроить как альтернативный вывод для имеющейся функции [3, 4]. Коммутируем периферийный модуль PWM3 с ножкой RC5. Для этого сначала в графе Module щёлкаем мышкой на строке PWM3, после того, как графа PWM3 выделена, щёлкаем мышкой на колонке PORT C на ножке RC5. После этого на пересечении строки PWM3 и колонки PORT C «5» цвет меняется с серого на зелёный и в таблице, и на изображении корпуса (рис. 23).

Рис. 22. Выбор типа корпуса микроконтроллера.

Рис. 23. Присоединение модуля PWM3 к PORTC, 5.

Переходим к Project Resources – выбираем строку Pin Module. В появившемся окне в строке RC5 в колонке Custom Name задаём имя ножки, например, led. Новое имя отображается в таблице Pin Module и на картинке корпуса. Затем нажимаем кнопку Generate (рис. 24). В появившемся окне нажимаем кнопку Save, после чего конфигурационный файл *.mc3 сохраняет все сделанные настройки.

Рис. 24. Переименование ножки RC5 в led.

В окне Output появляется сообщение о создании файлов и о сохранении конфигурационного файла (рис. 25).

Рис. 25. Сообщение в окне Output.

Если теперь открыть вкладку Projects, то можно увидеть все сгенерированные файлы, которые уже добавлены в проект, а также основной файл main.c (рис. 26).

Дважды щёлкнув мышью откроем файл main.c, прокрутив вниз увидим, что в тексте имеется специальное место для добавления кода приложения:

while (1)
{
// Add your application code
}

Рис. 26. Структура проекта после создания файлов.

В других файлах *.c и *.h находятся функции, которые сгенерированы MPLAB Code Configurator. Функции позволяют изменять характеристики периферийных модулей в зависимости от требований к системе. Откроем файл, к примеру, PWM3.h, прокрутим вниз и рассмотрим в тексте файла функцию, например,

void PWM3_LoadDutyValue(uint16_t dutyValue);

Эта функция позволяет изменять коэффициент заполнения модуля PWM3. Описание функции, параметры, и пример вызова можно посмотреть в комментариях, расположенных вверху каждой функции.

Теперь можно собрать проект и загрузить программу в микроконтроллер (рис. 27).

Рис. 27. Сборка проекта и программирование платы.

После программирования микроконтроллера на плате Curiosity будет моргать светодиод D7.

Глава 4. Использование логических ячеек

Соберём делитель частоты [5]. Откроем окно Configurable Logic Cells, для чего перейдём во вкладку Device Resources (рис. 14, 15), дважды щёлкнем мышью на строке CLC, затем дважды щёлкнем мышью на строке CLC4. В открывшемся окне в поле Mode выберем режим 2-input D flip-flop with R (рис. 28).

Рис. 28. Выбор режима ячеек CLC.

Теперь необходимо собрать схему. Для соединения источника сигнала с желаемой ячейкой необходимо навести курсор мыши на один из четырёх входов элемента, если курсор примет вид гиперссылки (рука) нажать на левую кнопку мыши. Подключение происходит по следующему алгоритму: первое нажатие – подключение, второе нажатие – подключение с инверсией, третье нажатие – отключение и так далее. На вход тактовой частоты триггера (треугольник) через элемент «OR» подаём PWM3_out, а на вход D подаём выход с этого же триггера, но с инверсией – LC4_out (рис. 29).

Затем аналогичным образом выбираем CLC3 и собираем схему для этой ячейки на вход подадим уже LC4_out, к оставшимся ячейкам CLC, подключаем вход предыдущей. Выход последнего делителя подключаем к ножке PORTA 2 к которой на плате Curiosity соединён светодиод D6 (рис. 30).

Рис. 29. Схема делителя.

Рис. 30. Соединения последней ячейки делителя частоты.

Нажимаем кнопку Generate, затем собираем проект и программируем плату (рис. 27). После программирования светодиод D7 будет моргать с одной частотой, а светодиод D6 с другой кратной частотой.

Рекомендуемые материалы.

[1] Установка MPLAB Code Configurator (A Closer Look At – Episode 1 – Installing the MPLAB® Code Configurator):
https://www.youtube.com/watch?v=TOtQMNzzRpw
[2] Страница программы MPLAB Code Configurator:
http://www.microchip.com/mplab/mplab-code-configurator
[3] Начало работы с MPLAB® Code Configurator (A Closer Look At – Episode 2 – Code Configurator Overview Walkthrough):
https://www.youtube.com/watch?v=An1O32eOSFQ
[4] MPLAB® Code Configurator User’s Guide
[5] Configurable Logic Cell Tips ’n Tricks
Curiosity Development Board User’s Guide

Автор: инженер М. В. Богураев.

Регистрация e-mail на получение новостей ::

Статьи для разработчиков

Новости производителей