25

Отладочная плата для PIC18 своими руками

Серия PIC

Если Вы давно мечтали сделать отладочную плату  на базе микроконтроллера PIC18  своими руками, но не знали как, то в этом деле поможет данная статья.

Рассматриваемый принцип является одним из вариантов реализации (причем устаревший), на рынке существует масса готовых отладочных плат для множества решений. Поэтому принципы изложенные в данной статье, я отношу к категории "сделай сам", чтобы накопить опыт и знания базисов.


Итак, всем кто остался в статье:

Для указанных целей потребуется реализовать несколько основных моментов:


1. Распайку микроконтроллера на плате;

1.а. Прошить программу bootloader'a, при помощи программатора;

2. Собрать модуль USB-UART для связи с ПК;

2.а. Установить драйвер на ПК;

2.б. Установить ПО на ПК для связи с микроконтроллером;

3. Написать целевую программу и записать ее в контроллер;


По п.1. создание печатной платы - здесь относительно всё просто, делаем разводку на плате для всех ног микроконтроллера, не забыв, для удобства вывести ноги ICSP разъема в отдельную группу, примерно так, как это выглядит на картинке. На плате желательно указать номера ног и имена портов.

Отладочную плату я выполнил с маской используя метод фоторезиста, хотя это не является обязательным. Принципиальная схема включения контроллера примитивна и должна соответствовать схеме включения по дататшиту. В моем случае, используется контроллер PIC18F46K22, так как он имеет два порта UART, что добавляет универсальности схеме.

Впаиваем контроллер, кварцевый резонатор можно и не впаивать, если предполагается использовать только интегрированный. Также, желателен резистор 10К подвесить к MCLR и организовать подключение ICSP-разъема следующим образом:

Организованная группа пинов ICSP разъема позволит использовать программатор подобным образом, чтобы не использовать провода при прошивке контроллера.

П. 1.а.  Прошивка контроллера программой bootloader , которую можно написать самому при желании, но в данном случае я использовал Исходники AN1310  из комплекта выпущенного Microchip - Serial Bootloader AN1310. (можно скачать в интернете),

Однако, этот метод организации Bootloader для PIC18 настолько дремуч, что я даже не смог найти ссылок на официальном сайте Microchip , так как давно уже не используется и не поддерживается. Но для целей электива по теме отладочных плат - сойдет.

Итак, Вы нашли и скачали исходники Bootloader AN1310 (и сам дистрибутив Serial Bootloader), для работы с ними потребуется MPLAB IDE v8.92.


До того, как вы скомпилируете проект и требуется выполнить несколько ключевых моментов:

- выбрать требуемый UART порт, так как PIC18F46K22 имеет два USART модуля, а программа Bootloader'а по умолчанию использует первый.

Требуется открыть код файла bootconfig.inc, идущего в комплекте AN1310 и этом в файле можно выбрать один из двух режимов работы Bootloader'а:

#define UARTNUM 1 , где 1 или 2 будет равняться UART1 или UART2

- выбрать участок занятой Flash-памяти, в моем примере весь Bootloader размещается в начале файла, Это позволяет более рационально и экономно распределить ресурсы Flash-памяти между микроконтроллером и Bootloader'ом. Во-вторых, весь код, который необходим для работы Bootloader'а можно аппаратно защитить от записи, ничто не cможет его повредить. Чтобы задействовать REMAPPED Bootloader, необходимо в bootconfig.inc указать

#define BOOTLOADER_ADDRESS 0. (такая строка там есть, возможно ее достаточно раскомментировать)

- биты конфигурации. Обязательное внимание уделяем битам, таким как:

FOSC - ставим в зависимости от того, какой осцилятор используется внешний/внутрений; 

PLLCFG - ускоритель частоты х 4 - не включаем.

PWRTEN - пауза для стаблизации питания, включаем.

WDTEN - ватч.дог, выключаем.

PBADEN - особенность для PIC18F46K22, переводит порты PORTB 5..0 в аналог или цифровой выход

MCLRE - активируем внешний сброс (MCLR Pin Enable bit (MCLR pin enabled, RE3 input pin disabled))

(Читаем даташит!)


Теперь всё готово, прошиваем контроллер используя программатор.



п.2 Собрать переходник USB-UART (или использовать промышленного производства)

С самостоятельной сборке ничего сложного нет, требуется использовать FT232 (есть и другие варианты, например, CP2102) для организации такого подключения. Можно, при желании выполнить сразу в составе отладочной платы, но я вынес в отдельную плату-модуль.

п. 2.а. Установить драйвер на ПК Главной сложностью, с которой можно здесь столкнуться - драйвер. В целом все просто, микросхема FT232 поддерживается компанией FTDI и поставляет драйвер, только он установится как USB устройство, однако, наш Serial Bootloader работает только с COM.

Поэтому, в драйвере INF потребуется поменять PID , добавив его в раздел

[FtdiHw]

%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001

и

[FtdiHw.NTamd64]

%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001


После его установки, драйвер относится к разделу COM портов.

п. 2.б. Установить ПО на ПК для связи с микроконтроллером

Берем ПО из архива с  Microchip Serial Bootloader AN1310 , в состав которого, входит ПО AN1310 v1.05r.


В настройках не забываем выбрать соответствующий порт. Программа умеет шить и конфигурационные биты (с чем надо обращаться с осторожностью) и eeprom.

Подключаем переходник UART-USB, к соответствующему порту контроллера и нажимаем кнопку Break/Reset.

Важно!

Тем самым, на выходах RX/TX формируется логические нули, что для прошивки bootloader является триггером определяющим, какую часть кода исполнять, т.е. запуска прошивки пользователя, либо прошивки bootloader.

С данного момент, после подачи нуля на MCLR (или банального отключения питания), контроллер в момент старта (перезагрузки) определит какую часть кода он запустит.


- Если пользовательское ПО еще на записано в контроллер, то запустится программа bootloader в любом случае.

- Если  на RX/TX сформированы логические нули (нажат Break/Reset) и контроллер перезапущен, то запустится программа bootloader.

- В других случаях, при перезагрузке контроллера, будет запущено пользовательское ПО (если оно есть).


Итак, Break/Reset нажат и контроллер перезагружен!, нажимаем, Bootloader mode. И если видите следующую картину, то bootloader запустился и с ним можно работать.

Например, прочитав можно изучить состав данных в CONFIG, EEPROM и пр.

п.3. Написать целевую программу и записать ее в контроллер;

Наиважнейшим этапом написания программы под bootloader является - offset (или смещение). В пункте п.1.а. указывалось, что программа bootloader'a размещается в самом начале и защищена от записи, следовательно, для целей смещения кода (внутри hex файла) пользовательской программы, обязательно используется linker. Для pic18 и компилятора XC8 это сделать достаточно просто (для PIC24 всё мягко говоря сложнее в разы):

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


Для большего понимания зачем это нужно, вот скрин из даташита к AN1310:

По факту завершения написания программы, компилируете и возвращаетесь в Serial Bootloader AN1310., затем:


Reset\Break + MCLR

Запускаем Bootloader, убеждаемся, что он запущен

Открываем скомпилированный код HEX и нажимаем Write Device

По завершение загрузки, нажимаем  Run

Контроллер сразу начнет выполнение пользовательского кода.

Вот как так это всё и работает. Зато это гораздо интереснее этой вашей арудины.



В следующий раз расскажу про Bootloader PIC24 и самописное ПО для ПК.

Ссылки на предыдущие части:

Тест LCD 16bit , ОЗУ, SDCARD на PIC24

Bluetooth термометр  или вариации на тему

Радиоприемник на базе цифрового радиочипа и контроллера PIC

Многофункциональное устройство своими руками, часть 2

Многофункциональное устройство своими руками

Часы пикабушника

Рукодельники

61.7K постов60.7K подписчиков

Правила сообщества

В сообществе запрещена торговля, обсуждение цен, ссылки на страницы с продажами, контакты автора в комментариях. Обязательна информация о материалах и инструментах в текстовом виде.

0. Соблюдайте основные правила Пикабу.


1. Будьте вежливы, старайтесь писать грамотно.


2. В публикациях используйте четкие и красивые фотографии.


3. Автор поста с тегом [моё] может оставить ссылку на свой профиль, группу или канал на других источниках, при условии, что ссылки (активные и не активные) не ведут на прямые продажи. Допускается не больше четырёх ссылок и только в конце поста (п. 8.5 основных правил).


Запрещены:

-ссылки рекламного характера/спам;

-ссылки, ведущие на магазины с указанием стоимости товара/услуги;

-ссылки, ведущие на призывы, покупки, продажи, подписки, репосты, голосование и тому подобное.

(нарушение основных правил сайта, п.8.1 и п. 8.2).

При переходе по ссылке запрещено наличие активных (кликабельных) ссылок, ведущих на вышеперечисленное в п.3, содержание таких ключевых слов как «товар», «услуга», «купить», «продам», «в наличии», «под заказ» и т.п.


3.1 Размещение контактов автора (самим автором или другими пользователями) в комментариях запрещено и подлежит удалению (п. 9.1 и 9.3 основных правил).


4. Обязательным для авторов является наличие технических характеристик изделия в публикациях (материалы, техники, авторские приемы, размеры, времязатраты и прочее) в текстовом виде.

Также помечайте свою работу тегом «Рукоделие с процессом» или «Рукоделие без процесса».


5. Пост-видео, пост-фото без текстового описания переносится в общую ленту. Даже если в видео показан подробный процесс изготовления, делайте краткое описание для тех, у кого нет возможности/желания смотреть видео.

Администрация оставляет за собой право решать, насколько описание соответствует п. 5.


6. Посты с нарушениями без предупреждения переносятся в общую ленту.

За неоднократные нарушения автор получает бан.

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества