Загрузить HEX в микроконтроллер PIC

Методические рекомендации,
приводящие в порядок рутину совместных работ
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

Настоящая инструкция содержит типовой алгоритм действий при загрузке (записи, обновлении) программного обеспечения микроконтроллеров семейств PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC30/33 и PIC32 от компании Microchip Technology Inc. Дальнейшие аппаратные и программные манипуляции описываются на базе компьютера под управлением операционной системы Windows 7, 64-битная версия.

Для загрузки «прошивки» в микроконтроллер потребуются:
  1. интегрированная среда разработки MPLAB® X IDE от Microchip;
  2. программатор и отладчик PICkitTM3;
  3. интерфейсный кабель USB 1.0-2.0 с разъемами «тип A» и «тип Mini-B»;
  4. 6-и жильный сигнальный кабель DuPont;
  5. плата с PIC'ом, поддерживающая внутрисхемное программирование ICSPTM.

Описанная ниже методика является гарантированно рабочей, но это не делает её уникальной или исключающей другие способы загрузки кода в микроконтроллер: «залить прошивку» можно и через Linix, и с применением командной строки альтернативного «софта», и подключив сторонний программатор (в том числе аналог PICkitTM3 из Поднебесной) - это вопрос навыков и предпочтений.

Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

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

Для подключения к компьютеру PICkitTM3 содержит интерфейсный разъем USB mini-B, а для подключения к отлаживаемой плате - сигнальный разъем PBS-06R (6-и контактная угловая рядная розетка с шагом 2,54 мм). Программатор желательно подключать напрямую к разъему ICSPTM, но если нет возможности - использовать кабель DuPont минимальной длины: до 300 мм чтение/запись осуществляются без проблем, при большей длине возможны ошибки.

К основным функциям PICkitTM3 относятся:
  • поддержка микроконтроллеров PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC30/33, PIC32;
  • подключение по USB, используя стандартные драйвера Windows;
  • отладка программного обеспечения в режиме реального времени;
  • встроенный монитор перенапряжения и короткого замыкания;
  • поддержка микроконтроллеров в широком диапазоне питающих напряжений от 1,8 до 5 вольт;
  • диагностическая светодиодная индикация;
  • чтение/запись памяти программ и памяти данных микроконтроллера;
  • стирание всех типов памяти (EEPROM, FLASH, ID, конфигурация) с подтверждением;
  • фиксация состояния периферии в точке останова.
Изображение

Описание контактов сигнального разъема PICkitTM3 (первый контакт обозначен белым треугольником на корпусе):

PICkitTM3СигналНазначение
1MCLRVppНапряжение программирования
2VddTargetКонтроль напряжения питания микроконтроллера
3VssGroundОбщий (земля)
4PGDICSPDATСигнал данных
5PGCICSPCLKТактовый сигнал
6PGMLVPНизковольтное программирование

Документация от Microchip:
  1. PICkitTM3 Programmer/Debugger User’s Guide, DS51795B
  2. In-Circuit Serial ProgrammingTM (ICSPTM) Guide, DS30277D
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

Для исключения ошибок при коммутации программатора необходимо на разработанной печатной плате обозначить все контакты разъема внутрисхемного программирования ICSPTM, который должен быть рядной 6-и контактной вилкой с шагом 2,54 миллиметра (тип PLS-06). Такой вариант подключения задействует 4 вывода микроконтроллера, а возможности PICkitTM3 будут доступны как в режиме низко-, так и высоковольтного программирования.

Однако, реальность полнится нюансами, вынуждая оптимизировать способ подключения программатора и видоизменять разъем внутрисхемного программирования, при этом сохраняя взаимное расположение контактов ICSPTM на печатной плате. Несколько примеров из практики:
  • ограничено место на печатной плате или требуется освободить вывод микроконтроллера: использовать режим только высоковольтного программирования - задействованы 3 (вместо 4) вывода микросхемы и можно сократить ICSPTM до 5 контактов;
  • высота стандартной вилки PLS-06 превышает максимально допустимый габарит: использовать такую же рядную вилку, но в угловом исполнении PLS-06R - высота разъема над уровнем печатной платы уменьшается с 8,5 до 2,54 мм;
  • разъем ICSPTM устанавливать нельзя (нарушается балансировка, мешает прокладке проводов и др.) или нет маркировки: в сигнальном слое печатной платы первый контакт посадочного места под разъем ICSPTM выделить - его сделать квадратным, а остальные контакты круглыми.
  • необходимо адаптировать плату под другой (отличный от PLS-06) разъем внутрисхемного программирования - такое бывает при использовании аналогов PICkitTM3.
Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

Далее все действия и фотографии экрана будут демонстрироваться на базе MPLAB® X IDE v5.45, потому что она является одной из последних, которая работает как на 32-х, так и на 64-битных версиях Windows, в том числе на Windows XP.

Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

Сначала необходимо импортировать (загрузить) файл «прошивки» в программу MPLAB® X IDE - структура имени моих файлов унифицирована и формируется по шаблону. Для импорта в меню главного окна выбрать «File > Import > Hex/ELF...(Prebuilt) File»:

Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

В появившемся окне настроить аппаратную основу проекта:
  1. Prebuilt Filename - выбрать файл «прошивки», которую необходимо загрузить;
  2. Family - выбрать семейство микроконтроллеров;
  3. Device - выбрать идентификатор микроконтроллера;
  4. Hardware Tool - выбрать программатор PICkit3TM (имя обычно содержит серийный номер);
  5. Нажать на кнопку Next.
Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

В появившемся окне настроить файловую структуру проекта:
  1. Project Name - имя проекта, которое будет использоваться для идентификации;
  2. Project Location - путь на диске компьютера, где будет создана папка с файлами проекта;
  3. Project Folder - название папки с файлами проекта (формируется на основании имени проекта);
  4. Set as main project - установить этот проект как главный (чтобы впоследствии меньше настраивать MPLAB® X IDE);
  5. Нажать на кнопку Finish.
Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

В результате должно появиться окно-вкладка «Output - [название проекта (Project Name)]» с сообщением «Loading completed» - загрузка «прошивки» в программу MPLAB® X IDE успешно завершена. Расположение окна-вкладки может отличаться из-за индивидуальных настроек программы.

Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

В большинстве моих разработок схемотехника реализована таким образом, чтобы PICkitTM3 в процессе записи «прошивки» получал питание от целевой платы, но бывают и обратные ситуации - программатор сам формирует напряжение питания для микроконтроллера (или платы в целом). Перед записью «прошивки» необходимо настроить MPLAB® X IDE под текущий проект на основании руководства по проведению приёмо-сдаточных испытаний (оно входит в пакет обязательной сопроводительной документации). В меню главного окна выбрать «File > Project Properties (название проекта)»:

Изображение


В появившемся окне существуют два варианта настроек в отношении «птички» по позиции 3 [Power target circuit from PICkit3] и выпадающего списка по позиции 4 [Voltage level]:
  • питание от целевой платы = «птичку» снять + выбор уровня напряжения игнорировать;
  • питание от PICkitTM3 = «птичку» установить + выбрать уровень напряжения в соответствии с руководством.

Изображение
Аватара пользователя
shatskikh
Начальник лаборатории
Начальник лаборатории
Сообщения: 153
Зарегистрирован: 03 мар 2020, 15:47
Откуда: НИЯУ МИФИ
Контактная информация:

Re: Загрузить HEX в микроконтроллер PIC

Сообщение shatskikh »

Для записи «прошивки» в микроконтроллер необходимо нажать на стрелку около кнопки загрузки в инструментальной панели и в выпадающем списке выбрать пункт «Make and Program Device (название проекта)» - Подготовить и запрограммировать устройство:

Изображение

Если в настройках MPLAB® X IDE не были заблокированы информационные сообщения («Do not show this message again» - Больше не показывать это сообщение), то должно появиться окно следующего содержания: Ещё раз проверьте, что микроконтроллер выбран правильно и устройство, в составе которого он находится, поддерживает выбранный уровень напряжения (для случаев питания схемы от PICkitTM3) - иначе программирование приведёт к повреждению устройства. Если уверены в настройках - нажмите ОК:

Изображение
Закрыто