Mplab x ide как работать

Обновлено: 06.07.2024

Многие устройства на микроконтроллерах связывались с внешней аппаратурой по последовательному интерфейсу RS-232 (com-порт). Но на современных персональных компьютерах такой интерфейс оказался недоступен. Из-за отсутствия com-порта возникают сложности при разработке новой аппаратуры на микроконтроллерах, а также теряется возможность подключения к компьютеру старых устройств. Можно решить проблему, оснастив устройство интерфейсом USB (UniversalSerialBus). Как вариант можно пойти путём аппаратурного преобразования RS-232 в USB, но для такого метода потребуется дополнительная микросхема и дополнительные компоненты. А возможно передавать сигналы RS-232 на шину USB через аппаратный модуль микроконтроллера, воспользовавшись библиотекой microchip. Достоинство последнего метода в том, что не требуется изменений в имеющемся программном обеспечении для компьютера – компьютерное приложение будет видеть USB как соединение по RS-232. Другое преимущество в том, что не нужно разрабатывать сложный драйвер модуля USB для микроконтроллера, а старую программу просто импортировать на микроконтроллер с интерфейсом USB, добавив к имеющемуся в библиотеке коду свой исходный текст программы.

В этой статье рассматривается создание CDC-устройства, эмулирующего RS-232 через USB. Для прочтения статьи не требуется особых знаний о стандарте USB. Необходимо только знание базовых конструкций языка СИ и умение работать в Windows. Прошивку микроконтроллера можно осуществлять через bootloader, который нужно будет один раз прошить в микроконтроллер при помощи программатора. Затем можно обновлять программу контроллера не используя программатор, что может оказаться удобным при программировании в «полевых» условиях.

Глава 1. Аппаратура и программы, необходимые для работы

Аппаратура, необходимая для работы: компьютер, плата PICDEMFSUSB на микроконтроллере PIC18F4550 с блоком питания, шнур USB и программатор, например, PICkit3, для того, чтобы один раз прошить bootloader. После этого можно программировать через bootloader.

  • Среда разработки MPLABXIDE (версия 3.20)
  • Библиотека Microchip Library for Application (mla_v2015_08_10)
  • Компилятор языка СИ – XC8 (при написании статьи использована версия 1.36), компилятор MCC18 (я использовал MPLABC18v3.47), который может понадобиться для компиляции HIDbootloader, если у Вас XC8 не версии PRO

Если у Вас имеется необходимое аппаратное обеспечение и весь набор программ уже установлен на Ваш компьютер, то можно приступать к работе.

Глава 2. Начало работы после установки программ

После того, как все необходимые программы скачаны и установлены можно приступать к работе. Запустим среду разработки MPLABXIDE. Для того, чтобы открыть готовый проект из библиотеки mla_v2015_08_10 сначала выбираем File->OpenProject (рис. 1):


Рис. 1. Открытие проекта в среде разработки MPLABXIDE.

В появившемся окне нужно будет перейти в каталог проекта из библиотеки и выбрать папку с изображением микросхемы (рис. 2) C:\microchip\mla\v2015_08_10\apps\usb\device\cdc_basic\firmware\MPLAB.X:


Рис. 2. Выбор проекта из библиотеки MLA.

Нажимаем кнопку OpenProject, после этого проект откроется во вкладке Projects (рис. 3).


Рис. 3. Вид проекта из библиотеки MLA.

Поскольку библиотека предназначена для множества разных микроконтроллеров и разных плат, в ней имеется большое количество файлов и папок, которые нам не понадобятся. Чтобы не нарушать имеющихся настроек, которые могут пригодиться, например, после смены платы, продублируем необходимую конфигурацию, затем изменим скопированный проект под наши нужды. Для начала наведём мышку на папку нашего проекта (папка с изображением микросхемы) и щёлкнем правой кнопкой. В появившемся окне настроек проекта выберем самую нижнюю строку – Properties (рис. 4):


Рис. 4. Окно настройки проекта.

После этого появится окно Project Properties, где в поле Categories показаны все возможные конфигурации проекта USBDevice–CDC–Basic из раздела USB библиотеки MLA (рис. 5).


Рис. 5. Окно проектов из раздела USB библиотеки MLA.

Нажмём кнопку Manage Configurations… в появившемся окне найдём нужную нам конфигурацию (PICDEMFSUSB), кликнем по ней левой кнопкой мыши, чтобы выделить и нажмём кнопку Duplicate (рис. 6):


Рис. 6. Дублирование конфигурации PICDEMFSUSB.

В окне Configurations в самом конце списка появится копия нужной нам конфигурации:


Рис. 7. Копия конфигурации PICDEM FS USB.

После этого нажмем кнопку Rename и переименуем конфигурацию по своему усмотрению, например, в CDC_via_Bootloader_PICDEM_FSUSB (рис. 8), затем нажимаем OK:


Рис. 8. Переименование конфигурации.

Теперь нажимаем кнопку SetActive, и наша конфигурация – текущая для проекта, о чём говорит надпись active в скобках (рис. 9):


Рис. 9. Текущая конфигурация проекта.

После того, как наша конфигурация стала активной (текущей) для нашего проекта, изменится вид окошка конфигураций в главном окне среды разработки – здесь будет отображено название нашей новой конфигурации (рис. 10):


Рис. 10. Отображение текущей конфигурации в главном окне.

После того, как проект открыт, можно увидеть в каждой из папок достаточно много подпапок и файлов (рис. 11). Эти папки и файлы могут понадобиться при работе с другими платами, допустим, мы бы захотели работать с платой PICDEM FS USB, но с микроконтроллером PIC18F14K50. Тогда бы мы просто сделали активной конфигурацию PICDEM_FSUSB_K50 и все необходимые корректировки были бы автоматически установлены. Но поскольку мы будем использовать вариант с микроконтроллером PIC18F4550, а остальные нет, то удаляем из нашей копии проекта PICDEM FS USB всё, что не относится к нашей плате. Для удаления файлов из проекта наводим мышь на файл, нажимаем правую кнопку и выбираем Remove From Project (рис. 12). Затем появится окно подтверждения с предупреждением, что файлы с диска не удаляются, а просто становятся невидимыми для среды разработки (рис. 13).


Рис. 11. Структура проекта из библиотеки MLA.


Рис. 12. Удаление папок и файлов из проекта.


Рис. 13. Окно предупреждения об удалении файла из среды разработки.

Я бы порекомендовал выделить несколько папок, кликая мышкой при нажатой клавише Ctrl, удалять по одной папке внимательно читая каждое окно предупреждения (рис. 13), и после удаления каждой группы папок компилировать проект, чтобы убедиться в том, что проект сохраняет работоспособность и не было удалено что-то нужное. После удаления достаточно большого количества ненужных нам файлов и папок получаем необходимую структуру проекта (рис. 14). Также на рис. 14 изображён текст основной части программы, в котором, собственно говоря, и происходит обработка всех функций программ.


Рис. 14. Структура проекта после приведения в порядок.

Глава 3. Компиляция загрузчика

Для работы с проектом нам будет необходим загрузчик. Чтобы получить файл *.hex, который будет содержать нужный нам загрузчик нужно иметь компилятор XC8, работающий в режиме PRO. Режим PRO нужен для того, чтобы исходный текст программы скомпилировался в такой *.hex-файл (прошивку), в котором команды будут занимать адресное пространство размером не более чем 0x1000 байтов для корректной работы самого загрузчика и программ, которые потом будут работать на микроконтроллере. Если Ваш компилятор не в режиме PRO, то скомпилировать исходные тексты программ не удастся, так как будет возникать ошибка, в таком случае можно попробовать перенастроить проект и собрать загрузчик компилятором MPLAB C18.

Проект загрузчика имеется в библиотеке MLA, расположен в папке C:\microchip\mla\v2015_08_10\apps\usb\device\bootloaders\firmware\pic18_non_j.

Файл загрузчика нужно прошить в микроконтроллер при помощи программатора.

В проекте также имеется программа для компьютера, которая находится в папке C:\microchip\mla\v2015_08_10\apps\usb\device\bootloaders\utilities\bin\win.

Программа называется HIDBootloader.exe. Через эту программу можно загружать файлы прошивки *.hex, которые получены пользователем в результате компиляции проекта. Для перевода платы PICDEM FS USB в режим загрузки нужно нажать на кнопку S1 (reset) и, удерживая кнопку S2, отпустить кнопку S1, затем через секунду отпустить S2. Тогда программа на компьютере сможет связаться с платой PICDEM FS USB для загрузки программы пользователя (файла *.hex).

Глава 4. Компиляция программы

После того, как проект избавлен от ненужных файлов, а в микроконтроллер уже помещён загрузчик, можно перейти к настройке проекта для работы с загрузчиком HIDBootloader. Поскольку загрузчик занимает определённое место в памяти команд, то исполняемую программу надо «сдвинуть» так, чтобы не возникало конфликтов при совместной работе. Этот процесс описан в файле Readme Usage Notes for Bootloader with XC8, расположенном в папке C:\microchip\mla\v2015_08_10\apps\usb\device\bootloaders\firmware\pic18_non_j.

Во-первых, нужно установить смещение для программы. Для этого опять наведём мышку на папку нашего проекта (папка с изображением микросхемы) и щёлкнем правой кнопкой. В появившемся окне настроек проекта выберем самую нижнюю строку – Properties (рис. 4). Затем в окне Categories найдём строку Conf: [CDC_via_Bootloader_PICDEM_FSUSB] – это настройки нашей конфигурации, щёлкнем левой кнопкой мыши на этой строке, выделив строку, а затем таким же образом выделим строку XC-8 linker, которая связана с нашей конфигурацией. В выпадающем списке Option categories выбираем Additional options, в графу Code offset вписываем адрес 0x1000, с которого будет начинаться программа (рис. 15) и нажимаем кнопку Apply.

Во-вторых, в выпадающем списке Option categories выбираем Memory model, в графу ROM ranges помещаем запись default,-0-FFF,-1006-1007,-1016-1017, которая настроит компилятор таким образом, что эти адреса памяти не будут заняты командами из нашей программы (рис. 16) и нажимаем кнопку OK.

При таких параметрах программа будет работать только совместно с загрузчиком. Если такую прошивку загрузить через программатор, то работать она уже не будет.


Рис. 15. Установка смещения начала программы.


Рис. 16. Установка защиты адресов в памяти программ.

Теперь можно компилировать программу. Для этого нажимаем кнопку Clean and Built…(рис. 17).


Рис. 17. Компиляция проекта.


Рис. 18. Вид окна Output после успешной компиляции.

После успешной компиляции можно приступать к прошивке микроконтроллера.

Глава 5. Загрузка программы в микроконтроллер

Для начала откроем программу загрузчика на компьютере. Программа находится в папке C:\microchip\mla\v2015_08_10\apps\usb\device\bootloaders\utilities\bin\win\HIDBootloader.exe.

Подключаем плату PICDEM FS USB к блоку питания и к USB порту компьютера. После включения микроконтроллер находится не в режиме загрузки, поэтому на начальном экране программы компьютера будет надпись «Device not detected. Verify device is attached and in firmware update mode» (рис. 19).


Рис. 19. Начальный экран программы для компьютера.

Переводим плату в режим загрузки программы – нажимаем на кнопку S1 (reset) и, удерживая кнопку S2, отпускаем кнопку S1, затем через секунду отпускаем S2. Теперь программа на компьютере сможет связаться с платой PICDEM FS USB для загрузки программы пользователя (рис. 20). Выбираем файл *.hex, который был получен после компиляции проекта пользователя (рис. 21 и 22). Нажав на кнопочку с изображением «стрелка из листа в микросхему» загружаем hex-файл в микроконтроллер (рис. 23). В окне загрузчика на компьютере появляется синяя полоска, которая заполняет полосу по мере загрузки программы. Как только программ загружена, появляется надпись «You may now unplug or reset the device». После появления этой записи, перезагружаем микроконтроллер, нажав на кнопку Reset Device (рис. 24). Плата PICDEM FS USB тут же перезагружается, отсоединяется от компьютерного загрузчика, в окне загрузчика появляется надпись «Device Detached» (рис. 25). Плата переходит на связь с компьютером в режиме CDC-устройства.


Рис. 20. Компьютер связался с PICDEM FS USB.


Рис. 21. Открываем файл *.hex.


Рис. 22. Выбор файла для загрузки в микроконтроллер.


Рис. 23. Загружаем hex-файл в микроконтроллер.


Рис. 24. Перезагружаем микроконтроллер.


Рис. 25. Плата PICDEM FS USB отключилась от программатора.

Глава 6. Работа с платой PICDEM FS USB в режиме CDC

При подключении к компьютеру платы с прошивкой cdc_basic может потребоваться установка драйвера, который расположен в папке: C:\microchip\mla\v2015_08_10\apps\usb\device\cdc_basic\utilities\inf.

Для связи с платой можно воспользоваться терминальной программой, например, Hyper Terminal. Но в составе библиотеки MLA имеется программа для компьютера, которая сама находит плату и может связаться с платой PICDEM FS USB. Эта программа находится в папке: C:\microchip\mla\v2015_08_10\apps\usb\device\cdc_basic\utilities\bin.

Главное окно программы dynamic_cdc_demo.exe показано на рис. 26.


Рис. 26. Главное окно программы dynamic_cdc_demo.exe.


Рис. 27. Пример работы программы dynamic_cdc_demo.exe.

Исходные тексты программы находятся в папке: C:\microchip\mla\v2015_08_10\apps\usb\device\cdc_basic\utilities\src.

Глава 7. Настройка программы cdc_basic

После того, как удалось установить связь между компьютером и платой PICDEM FS USB, можно изменить исходный текст программы cdc_basic для улучшения понимания работы библиотеки. В тексте файла main.c имеется функция main, где, собственно говоря, и описаны все функции программы. Прежде всего, рассмотрим функцию APP_DeviceCDCBasicDemoTasks. Внутри этой функции обрабатывается информация, поступающая из USB. Функция описывается в файле app_device_cdc_basic.c. Если навести мышь на этот файл в проекте, то всплывающая подсказка напомнит его расположение на компьютере:


Рис. 28. Указание на место расположения файла.

В тексте функции в части связанной с обработкой кнопки есть вызов функции стека USB: putrsUSBUSART(buttonMessage).

В документе AN956 эта функция описывается так:

Функция putrsUSBUSART записывает строку данных, включая нулевой символ, в USB. Используйте эту функцию для передачи на хост символьной строки или строки данных, из памяти программ. Синтаксис:

void putrsUSBUSART (const rom char *data)

Первое: в файле app_device_cdc_basic.c в секции VARIABLES находим строку

static char buttonMessage[] = "Button pressed.\r\n";

и добавляем свою строку

static char buttonMessage1[] = "You pressed S2 button.\r\n";

Компилируем, прошиваем микроконтроллер и получаем другой ответ от платы PICDEM FS USB (рис. 29).


Рис. 29. Ответ на нажатие кнопки после изменения текста программы.

Далее в тексте программы попадается такая строка:

numBytesRead = getsUSBUSART(readBuffer, sizeof(readBuffer));

В документе AN956 функция getsUSBUSART описывается следующим образом:

Функция getsUSBUSART копирует строку байтов, принятых через конечную точку USB – CDC bulk OUT в место, которое указано. Синтаксис:

byte getsUSBUSART(char *buffer, byte len)

Следовательно, readBuffer – это буфер приёма данных.

В другой строке описывается процесс прибавления единицы к полученным данным:

writeBuffer[i] = readBuffer[i] + 1;

Откуда мы делаем вывод, что writeBuffer – это буфер, в который записываются передаваемые данные.

А далее попадается функция, передающая данные:

static uint8_t Message [] = "Symbol received!\r\n";

и исправив функцию

putUSBUSART(Message, sizeof (Message));

Image00

И попадаем на следующую страницу, в которой выбираем закладку Downloads, в которой скачаем последнюю версию среды разработки (нажмите на картинку для увеличения изображения)

Image02_0500

Image03
Image04

Путь оставим предложенный по умолчанию, если у нас нет Proxy, то отключим их

Image05

Далее тоже оставим всё по умолчанию

Image06
Image07

И программа установится на наш компьютер

Отключаем все галки и жмём Finish

Image09

Эти галки гласят о том, что у нас не установлен компилятор, также советуют установить фреймворк для удобства разработки. Всё это мы проделаем самостоятельно потом. Компилятор в среде уже есть, правда только для ассемблера. Но, так как мы решили писать на C, то компилятор нам всё-таки скачать и установить придётся, но чуть позже.

Попробуем запустить нашу среду разработки, чтобы хотя бы убедиться, что всё у нас нормально установилось. И, не создавая никаких проектов, закроем её.

Теперь, соответственно, чтобы нам писать код на C, потребуется компилятор. Компиляторы для контроллеров разной битности (8, 16 и 32) отдельные.

На официальном сайт Microchip проследуем по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® XC Compilers

Image10

Image11_0500

Image12
Image14
Image13

Путь оставляем по умолчанию

Image15

Включим все галочки

Image16
Image17

После установки жмём Next, никакой ID не запоминаем, нам профессиональная лицензия не нужна, воспользуемся свободно-распространяемой. На сайте можно почитать об ограничениях свободной лицензии. Они очень незначительны

Image19
Image20

Ещё раз запустим среду программирования MPLAB X IDE. Закроем там стартовое окно и перейдём на вкладку Projects

Image21

Image22

Выбираем Standalone Project и идём далее

Image23

Выберем из выпадающего списка наш контроллер, отфильтровав выше для удобства по семейству

Image24

Выбираем Sinulator, так как пока мы отлаживать проект будем именно в нём. Да и мой контроллер PICkit 2 неоригинальный не поддерживается данной средой. А загружить созданную нами впоследствии прошивку мы будем спомощью специальной программы

Image25

В следующем окне выбираем наш компилятор и идём далее

Image26

В следующем окне назовём наш первый проект BLINK01, выберем папку для его хранения и оставим галку напротив того, чтобы наш проект стал главным и заетм жмём Finish

Image27

Проект появится в дереве проектов.

Создадим в нём файл main.c, выбрав соответствующий пункт контекстного меню в папке Source Files

В открывшемся окне исправим имя файла, чтобы он был именно main.c ибо нам так как-то привычнее и нажмём Finish

Image29

Файл откроется самостоятельно. В нём будет уже некоторый код

void main( void )

return ;

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

while (1)

Давайте соберём наш проект, нажав соответствующую кнопку в панели инструментов

Image31

Это информация о затраченных и свободных ресурсах различных типов памяти контроллера.

Image32_0500

Убедимся, что файл прошивки там действительно присутствует

Image34

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

Думаю, что на этом мы наш сегодняшний урок закончим. В дальнейшем мы напишем какой-то полезный код в наш проект, попробуем его прошить сначала в протеусе, а затем в настоящий контроллер, собрав соответствующую схему и подключив программатор.

После краткого изучения архитектуры и возможностей контроллеров PIC пришло время нам попробовать себя в программировании данных контроллеров, так как без программы микроконтроллер — это бесполезная микросхема.

Только чтобы попробовать себя в программировании, обычно требуется какая-то среда программирования (не в блокноте же мы будем писать код), а также компилятор. Для этого у компании Microchip есть бесплатный IDE — это MPLAB X IDE. Давайте её для начала скачаем. Для этого идём на официальный сайт Microchip и идём по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® X IDE


И попадаем на следующую страницу, в которой выбираем закладку Downloads, в которой скачаем последнюю версию среды разработки (нажмите на картинку для увеличения изображения)




Путь оставим предложенный по умолчанию, если у нас нет Proxy, то отключим их


Далее тоже оставим всё по умолчанию



И программа установится на наш компьютер

Отключаем все галки и жмём Finish


Эти галки гласят о том, что у нас не установлен компилятор, также советуют установить фреймворк для удобства разработки. Всё это мы проделаем самостоятельно потом. Компилятор в среде уже есть, правда только для ассемблера. Но, так как мы решили писать на C, то компилятор нам всё-таки скачать и установить придётся, но чуть позже.

Попробуем запустить нашу среду разработки, чтобы хотя бы убедиться, что всё у нас нормально установилось. И, не создавая никаких проектов, закроем её.

Теперь, соответственно, чтобы нам писать код на C, потребуется компилятор. Компиляторы для контроллеров разной битности (8, 16 и 32) отдельные.

На официальном сайт Microchip проследуем по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® XC Compilers






Путь оставляем по умолчанию


Включим все галочки



После установки жмём Next, никакой ID не запоминаем, нам профессиональная лицензия не нужна, воспользуемся свободно-распространяемой. На сайте можно почитать об ограничениях свободной лицензии. Они очень незначительны



Ещё раз запустим среду программирования MPLAB X IDE. Закроем там стартовое окно и перейдём на вкладку Projects


Как видим, у нас тут пусто. Исправим эту ситуацию, создав новый проэкт. Для этого выберем пунк меню File -> New Project…


Выбираем Standalone Project и идём далее


Выберем из выпадающего списка наш контроллер, отфильтровав выше для удобства по семейству


Выбираем Sinulator, так как пока мы отлаживать проект будем именно в нём. Да и мой контроллер PICkit 2 неоригинальный не поддерживается данной средой. А загружить созданную нами впоследствии прошивку мы будем спомощью специальной программы


В следующем окне выбираем наш компилятор и идём далее


В следующем окне назовём наш первый проект BLINK01, выберем папку для его хранения и оставим галку напротив того, чтобы наш проект стал главным и заетм жмём Finish


Проект появится в дереве проектов.

Создадим в нём файл main.c, выбрав соответствующий пункт контекстного меню в папке Source Files

В открывшемся окне исправим имя файла, чтобы он был именно main.c ибо нам так как-то привычнее и нажмём Finish


Файл откроется самостоятельно. В нём будет уже некоторый код

void main( void ) <

return ;

То есть у нас уже подключена стандартная библиотека, которой нам на первых порах будет достаточно, так как в ней внутри находится подключение многих необходимых библиотек. И также у нас есть точка входа в программу — главная функция main.

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

while (1)

Давайте соберём наш проект, нажав соответствующую кнопку в панели инструментов



Это информация о затраченных и свободных ресурсах различных типов памяти контроллера.


Убедимся, что файл прошивки там действительно присутствует


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

Думаю, что на этом мы наш сегодняшний урок закончим. В дальнейшем мы напишем какой-то полезный код в наш проект, попробуем его прошить сначала в протеусе, а затем в настоящий контроллер, собрав соответствующую схему и подключив программатор.

После краткого изучения архитектуры и возможностей контроллеров PIC пришло время нам попробовать себя в программировании данных контроллеров, так как без программы микроконтроллер — это бесполезная микросхема.

Только чтобы попробовать себя в программировании, обычно требуется какая-то среда программирования (не в блокноте же мы будем писать код), а также компилятор. Для этого у компании Microchip есть бесплатный IDE — это MPLAB X IDE. Давайте её для начала скачаем. Для этого идём на официальный сайт Microchip и идём по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® X IDE


И попадаем на следующую страницу, в которой выбираем закладку Downloads, в которой скачаем последнюю версию среды разработки (нажмите на картинку для увеличения изображения)




Путь оставим предложенный по умолчанию, если у нас нет Proxy, то отключим их


Далее тоже оставим всё по умолчанию



И программа установится на наш компьютер

Отключаем все галки и жмём Finish


Эти галки гласят о том, что у нас не установлен компилятор, также советуют установить фреймворк для удобства разработки. Всё это мы проделаем самостоятельно потом. Компилятор в среде уже есть, правда только для ассемблера. Но, так как мы решили писать на C, то компилятор нам всё-таки скачать и установить придётся, но чуть позже.

Попробуем запустить нашу среду разработки, чтобы хотя бы убедиться, что всё у нас нормально установилось. И, не создавая никаких проектов, закроем её.

Теперь, соответственно, чтобы нам писать код на C, потребуется компилятор. Компиляторы для контроллеров разной битности (8, 16 и 32) отдельные.

На официальном сайт Microchip проследуем по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® XC Compilers






Путь оставляем по умолчанию


Включим все галочки



После установки жмём Next, никакой ID не запоминаем, нам профессиональная лицензия не нужна, воспользуемся свободно-распространяемой. На сайте можно почитать об ограничениях свободной лицензии. Они очень незначительны



Ещё раз запустим среду программирования MPLAB X IDE. Закроем там стартовое окно и перейдём на вкладку Projects


Как видим, у нас тут пусто. Исправим эту ситуацию, создав новый проэкт. Для этого выберем пунк меню File -> New Project…


Выбираем Standalone Project и идём далее


Выберем из выпадающего списка наш контроллер, отфильтровав выше для удобства по семейству


Выбираем Sinulator, так как пока мы отлаживать проект будем именно в нём. Да и мой контроллер PICkit 2 неоригинальный не поддерживается данной средой. А загружить созданную нами впоследствии прошивку мы будем спомощью специальной программы


В следующем окне выбираем наш компилятор и идём далее


В следующем окне назовём наш первый проект BLINK01, выберем папку для его хранения и оставим галку напротив того, чтобы наш проект стал главным и заетм жмём Finish


Проект появится в дереве проектов.

Создадим в нём файл main.c, выбрав соответствующий пункт контекстного меню в папке Source Files

В открывшемся окне исправим имя файла, чтобы он был именно main.c ибо нам так как-то привычнее и нажмём Finish


Файл откроется самостоятельно. В нём будет уже некоторый код

void main( void ) <

return ;

То есть у нас уже подключена стандартная библиотека, которой нам на первых порах будет достаточно, так как в ней внутри находится подключение многих необходимых библиотек. И также у нас есть точка входа в программу — главная функция main.

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

while (1)

Давайте соберём наш проект, нажав соответствующую кнопку в панели инструментов



Это информация о затраченных и свободных ресурсах различных типов памяти контроллера.


Убедимся, что файл прошивки там действительно присутствует


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

Думаю, что на этом мы наш сегодняшний урок закончим. В дальнейшем мы напишем какой-то полезный код в наш проект, попробуем его прошить сначала в протеусе, а затем в настоящий контроллер, собрав соответствующую схему и подключив программатор.

Важно помнить , что путь к файлам проекта, как и название самих файлов, не должны содержать русских символов. Иначе MPLAB IDE не будет работать, т.к. не увидит файлы с такими названиями. В дальнейшем , что бы у нас не возникало по этому поводу проблем, создадим на диске "С" папку "Project". В этой папке мы и будем хранить наши проекты.

Итак, создаем папку "test_01", так будет называться наш первый проект. Соответственно путь к проекту будет C:Project est_01.

Откроем "блокнот" и сохраним его в созданной папке "test_01" с расширением "asm", назвав то же "test_01"


Далее запускаем программу, должно открыться вот такое окно:


Выбираем вкладку Projekt-> Project Wizard.


Нажимаем кнопку "далее".


Из выпадающего списка выбираем микроконтроллер PIC18F252.


Выбираем язык программирования по умалчиванию (ассемблер) и нажимаем кнопку "далее".


В окне создания проета нажимаем кнопку "Browse", и указываем путь к папке C:Project est_01. Проект назавем то же "test_01" , так же как и папку. Нажимаем кнопку "далее".


Выбираем наш файл (test_01.asm) нажатием кнопки "ADD" или двойным щелчком мышки.


Нажимаем кнопку "Да"


Вот практичеки и все. Осталось выбрать наш файл "test_01.asm " и откроется окно текстового редактора, где мы и будем писать нашу программу.

Привет новичкам и всем, кто только только столкнулся с миром микроконтроллеров. При первом же знакомстве с МК семейства PIC и ассемблером возникает много вопросов, а именно: чем и как прошить микроконтроллер?


Теперь нужно создать папку на диске, назовем ее start. В этой папке создаем файл с расширением .asm (н-р start.asm)

Внимание: Название папок и файлов в них не должны содержать русских букв, иначе MPLAB IDE не будет с ними работать!

Приступаем к созданию проекта. Самый простой вариант через вкладку Projekt-> Project Wizard.


На приглашение нажимаем далее.


Первый шаг: выбираем нами любимый пик 18f252.


Второй: выбираем язык программирования – ассемблер (по умолчанию).


Третий: создание проекта, щелкаем на Browse, и указываем путь созданной нами папки start. Наш проект так же назовем start, нажимаем далее.



Четвертый: фаил start.asm кнопкой add добавляем к проекту, далее, готово.


Поздравляю наш проект создан.

Теперь двойным щелкаем на файл start.asm и открываем окно в которое будем добавлять наш текст программы (пишем сами или вставляем текстовый исходник).


Написали, сохраняем дискеткой, щелкаем на значек компилятора.



Компиллятор радостно сообщает нам BUILD SUCCEEDED, все можно выдохнуть, все прошло успешно и в нашей папке start создан файл прошивки для МК start.hex который мы и будем заливать в микроконтроллер. Его же можно сохранить в другом месте, или под другим названием, с помощью File->Export, в окне ОК, и сохранить как.

Эпизод второй. Заливаем прошивку в контроллер.

У нас уже есть хекс и его нужно залить в пик. Первым шагом лезем в настройки программатора. Programmer- Select programmer- выбираю свой программатор ICD2.



Все, закрываем все окна, в предупреждении Mплаба щелкаем ОК.

Открылась панелька программатора.


Подключаем программатор с макеткой кабелем к ком порту, коннектимся (5), через File->Import открываем нужный нам хекс, щелкаем на значек прошивки (1) и ждем. Происходит прошивка пика, она может занять некоторое время. По окончании прошивки окно программатора радостно сообщит нам, что все прошло успешно.

Если наше устройство уже собрано на макетке достаточно запустить проц кнопкой (3), и можно наслаждаться его работой.

Эпизод третий.

С помощью обратных процедур можно скачать прошивку из мк (если конечно он не залочен). Для этого коннектим программатор, запускаем проц (3), нажимаем (2) вторую кнопку Read target device, окно нам сообщает, что прошивка считана, теперь можно ее сохранить.

Можно не парится с дизассемблерами, а делать это сразу в программе. Для этого открываем импортом (File-Import) нужный нам хекс, затем откроем окно


здесь мы видим наш дизассемблированный текст, правой кнопкой убираем галки с ненужных нам столбцов, и нажимаем Output to file…


выбираем папку и имя, куда будем сохранять, все «исходник» готов.

Итак, быстрый старт работы с МПлаб завершен, теперь мы умеем создавать свой проект, компилировать исходник, делать хекс и заливать его в контроллер. Надеюсь этот обзор поможет начинающим в знакомстве с МПлаб.

Цикл статей – PIC начинающим или основы основ

После установки среды MPLAB X и компиляторов, пришло время бегло ознакомиться с установленной IDE.

Находим вот такую иконку

и кликаем по ней. MPLAB X запустится, а вид стартового окна будет зависеть от настроек программы и предыдущих сессий. Впрочем, при первом запуске предыдущих сессий быть не может =)

Вид MPLAB X после открытия

Вид MPLAB X после открытия

Ниже пример окна MPLAB X с кодом:

Окно MPLAB X с кодом

Окно MPLAB X с кодом

Собственно в области 1 показана вкладка с кодами, в области 2 уже упоминавшийся навигатор.

MPLAB X - перетаскиваем внутренние окна

Обычно приходиться вести несколько проектов, как видно, MPLAB X позволяет это делать. Но что делать, если открыто несколько файлов из разных проектов, как MPLAB X определит какой из проектов нужно скомпилировать? Очень просто. MPLAB X работает только с активным проектом, как поменять активный (текущий) проект показано на рисунке:

MPLAB X - поменять активный проект

Настройки проекта в MPLAB X

Настройки проекта в MPLAB X

MPLAB X - настройка конфигурации микроконтроллера

Поскольку целью статьи не является полноценное обучение работе в MPLAB X, на этом заканчиваю. Возможно, что-то дополню, но несколько позже.

Читайте также: