Контрактное производство электроники иногда сопряжено с ситуациями, при которых разработанное устройство уже отправлено заказчику, но по результатам приёмо-сдаточных испытаний или последующей опытной эксплуатации стороны принимают решение изменить алгоритм работы изделия. Подобные обстоятельства возникают из-за сложности учёта нюансов на этапе согласования технического задания, которое является неотъемлемым атрибутом при материализации идей в реальном секторе экономики.
Решение: дополнить существующий механизм удалённой поддержки своих разработок новой инструкцией, в которой способ подачи материала и терминология ориентированы на человека, не обладающего специфическими знаниями по электронике и программированию, но, не смотря на это, ему поставлена задача: записать в микроконтроллер новую версию программного обеспечения, то есть «залить прошивку».
Если у Читателя присутствует некий пиетет, определённый страх или даже сакральность (мало ли!) перед аппаратным интеллектом, то низвести загрузку «прошивки» до рутинного производственного процесса поможет аналогия: обыватель весьма абстрактно представляет девиацию несущей в частотном диапазоне 2,4 ГГц и структуру транзакций протокола TCP-IP, но это не мешает ему периодически загружать обновления на свой домашний WiFi роутер.
Загрузить HEX в микроконтроллер PIC
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Настоящая инструкция содержит типовой алгоритм действий при загрузке (записи, обновлении) программного обеспечения микроконтроллеров семейств PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC30/33 и PIC32 от компании Microchip Technology Inc. Дальнейшие аппаратные и программные манипуляции описываются на базе компьютера под управлением операционной системы Windows 7, 64-битная версия.
Для загрузки «прошивки» в микроконтроллер потребуются:
Описанная ниже методика является гарантированно рабочей, но это не делает её уникальной или исключающей другие способы загрузки кода в микроконтроллер: «залить прошивку» можно и через Linix, и с применением командной строки альтернативного «софта», и подключив сторонний программатор (в том числе аналог PICkitTM3 из Поднебесной) - это вопрос навыков и предпочтений.
Для загрузки «прошивки» в микроконтроллер потребуются:
- интегрированная среда разработки MPLAB® X IDE от Microchip;
- программатор и отладчик PICkitTM3;
- интерфейсный кабель USB 1.0-2.0 с разъемами «тип A» и «тип Mini-B»;
- 6-и жильный сигнальный кабель DuPont;
- плата с PIC'ом, поддерживающая внутрисхемное программирование ICSPTM.
Описанная ниже методика является гарантированно рабочей, но это не делает её уникальной или исключающей другие способы загрузки кода в микроконтроллер: «залить прошивку» можно и через Linix, и с применением командной строки альтернативного «софта», и подключив сторонний программатор (в том числе аналог PICkitTM3 из Поднебесной) - это вопрос навыков и предпочтений.
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Программатор и отладчик PICkitTM3 представляет собой простое и недорогое устройство, которое используется в качестве аппаратной основы при разработке, отладке и эмуляции программного обеспечения микроконтроллеров Microchip, поддерживающих последовательное внутрисхемное программирование ICSPTM.
Для подключения к компьютеру PICkitTM3 содержит интерфейсный разъем USB mini-B, а для подключения к отлаживаемой плате - сигнальный разъем PBS-06R (6-и контактная угловая рядная розетка с шагом 2,54 мм). Программатор желательно подключать напрямую к разъему ICSPTM, но если нет возможности - использовать кабель DuPont минимальной длины: до 300 мм чтение/запись осуществляются без проблем, при большей длине возможны ошибки.
К основным функциям PICkitTM3 относятся:
Описание контактов сигнального разъема PICkitTM3 (первый контакт обозначен белым треугольником на корпусе):
Документация от Microchip:
Для подключения к компьютеру 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 | Сигнал | Назначение |
---|---|---|---|
1 | MCLR | Vpp | Напряжение программирования |
2 | Vdd | Target | Контроль напряжения питания микроконтроллера |
3 | Vss | Ground | Общий (земля) |
4 | PGD | ICSPDAT | Сигнал данных |
5 | PGC | ICSPCLK | Тактовый сигнал |
6 | PGM | LVP | Низковольтное программирование |
Документация от Microchip:
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Топология печатной платы, ведомость покупных изделий, монтажное производство - лишь некоторые из этапов разработки и производства электроники, которая с позиций налогового кодекса уже на этапе опытного образца классифицируется как товарно-материальные ценности, а значит попадает под бухгалтерский учёт: код товара, себестоимость, налоги и прочее.
Для обеспечения прозрачности финансовой стороны инженерной деятельности, а также с целью уменьшить издержки при сопровождении жизненного цикла своих изделий принял решение: присвоить каждой разработанной печатной плате уникальный идентификатор, под которым она (а также основанное на её базе устройство) будет «жить», начиная от разработки конструкторской документации и заканчивая накладными на отгрузку готовой продукции.
Внедрение этой идентификации формировалось посредством творческих экспериментов, но сейчас глифы на печатной плате унифицированы как по структуре, так и по начертанию. Размещается вышеописанный идентификатор в верхнем или нижнем сигнальном слое печатной платы и формируется по шаблону: текстовый префикс «sva» (первые буквы из Shatskikh Vladimir Aleksandrovich) и шестизначный числовой код. Примеры идентификаторов: sva172605, sva217903, sva243308. а их отображение в программе для разработки топологии (P-CAD, слой bottom), на готовом текстолите и в бухгалтерских документах следующее:
Для обеспечения прозрачности финансовой стороны инженерной деятельности, а также с целью уменьшить издержки при сопровождении жизненного цикла своих изделий принял решение: присвоить каждой разработанной печатной плате уникальный идентификатор, под которым она (а также основанное на её базе устройство) будет «жить», начиная от разработки конструкторской документации и заканчивая накладными на отгрузку готовой продукции.
Внедрение этой идентификации формировалось посредством творческих экспериментов, но сейчас глифы на печатной плате унифицированы как по структуре, так и по начертанию. Размещается вышеописанный идентификатор в верхнем или нижнем сигнальном слое печатной платы и формируется по шаблону: текстовый префикс «sva» (первые буквы из Shatskikh Vladimir Aleksandrovich) и шестизначный числовой код. Примеры идентификаторов: sva172605, sva217903, sva243308. а их отображение в программе для разработки топологии (P-CAD, слой bottom), на готовом текстолите и в бухгалтерских документах следующее:
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Для исключения ошибок при коммутации программатора необходимо на разработанной печатной плате обозначить все контакты разъема внутрисхемного программирования ICSPTM, который должен быть рядной 6-и контактной вилкой с шагом 2,54 миллиметра (тип PLS-06). Такой вариант подключения задействует 4 вывода микроконтроллера, а возможности PICkitTM3 будут доступны как в режиме низко-, так и высоковольтного программирования.
Однако, реальность полнится нюансами, вынуждая оптимизировать способ подключения программатора и видоизменять разъем внутрисхемного программирования, при этом сохраняя взаимное расположение контактов ICSPTM на печатной плате. Несколько примеров из практики:
Однако, реальность полнится нюансами, вынуждая оптимизировать способ подключения программатора и видоизменять разъем внутрисхемного программирования, при этом сохраняя взаимное расположение контактов ICSPTM на печатной плате. Несколько примеров из практики:
- ограничено место на печатной плате или требуется освободить вывод микроконтроллера: использовать режим только высоковольтного программирования - задействованы 3 (вместо 4) вывода микросхемы и можно сократить ICSPTM до 5 контактов;
- высота стандартного разъема ICSPTM превышает максимально допустимый габарит: использовать такую же рядную вилку, но в угловом исполнении PLS-06R - высота разъема над уровнем печатной платы уменьшается с 8,5 до 2,54 мм.;
- разъем внутрисхемного программирования устанавливать нельзя (изменяется балансировка, нарушается внутренняя конвекция и др.) или на печатной плате нет маркировки: в сигнальном слое печатной платы первый контакт посадочного места под разъем ICSPTM сделать в виде квадратной площадки - при идентификации цоколёвки ошибки исключены.
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Внутренняя память микроконтроллеров Microchip, предназначенная для хранения управляющей программы («прошивки»), является энергонезависимой и локализована в трёх тематических разделах: конфигурационная память, программная память и память пользователя - первые две изготавливаются по технологии FLASH, а третья по EEPROM.
Имя файла «прошивки» формируется по шаблону hexИИИИИИ_ГГММДД_ХХХ.hex, где:
Например, файл hex174308_210524_usb.hex содержит «прошивку», которая:
- Конфигурационная память содержит настройки ядра микроконтроллера, на основании которых функционирует конвейер команд: выбор тактового сигнала, фазовая автоподстройка частоты PLL, аппаратные делители/умножители, биты защиты и т.д.
- Программная память содержит пользовательские команды, которые адаптированы компилятором в машинные инструкции для целевого микроконтроллера - выполнение этих команд формирует алгоритм работы устройства в целом.
- Память пользователя предназначена для долговременного хранения изменяемых значений программы пользователя: таблицы калибровки детекторов, настройки устройства в процессе эксплуатации, параметры технологического процесса и др.
Имя файла «прошивки» формируется по шаблону hexИИИИИИ_ГГММДД_ХХХ.hex, где:
Поле | Ширина | Назначение | Диапазон |
---|---|---|---|
hex | 3 | неизменяемый префикс файла | |
ИИИИИИ | 6 | цифровой код из идентификатора печатной платы | 000001..999999 |
ГГ | 2 | две последние цифры года формирования «прошивки» | 00,01..99 |
ММ | 2 | месяц формирования «прошивки» | 01,02..12 |
ДД | 2 | день месяца формирования «прошивки» | 01,02..31 |
ХХХ | 1..100 | краткое описание внесённых изменений | |
hex | 3 | фиксированное расширение файла |
Например, файл hex174308_210524_usb.hex содержит «прошивку», которая:
- предназначена для устройства с идентификатором sva174308;
- сформирована 24 мая 2021 года;
- изменения в ней касаются алгоритма работы USB.
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Ещё не готово ...
Здесь будет краткое пояснение концептуальных моментов применительно к ПО.
Почему версия 5.45 у MPLAB® X IDE? Потому что является одной последних, которая работает на 32-х и на 64-битных Windows, в том числе на Windows XP.
выбор напряжений питания
Здесь будет краткое пояснение концептуальных моментов применительно к ПО.
Почему версия 5.45 у MPLAB® X IDE? Потому что является одной последних, которая работает на 32-х и на 64-битных Windows, в том числе на Windows XP.
выбор напряжений питания
- shatskikh
- Начальник лаборатории
- Сообщения: 136
- Зарегистрирован: 03 мар 2020, 15:47
- Откуда: НИЯУ МИФИ
- Контактная информация:
Re: Загрузить HEX в микроконтроллер PIC
Ещё не готово ...
1. Сначала необходимо импортировать «прошивку» в MPLAB® X IDE - для этого в меню главного окна выбрать «File > Import > HEX/ELF...(Prebuilt) File»:
Изображение
2. Затем выбрать аппаратную основу проекта - для этого в появившемся окне заполнить поля:
2.1. Prebuilt Filename - файл «прошивки»;
2.2. Family - семейство микроконтроллеров;
2.3. Device - марка микроконтроллера;
2.4. Hardware Tool - идентификатор программатора PICkit3TM (обычно содержит серийный номер).
Изображение
3. После этого выбрать имя проекта и расположение папки с файлами проекта:
3.1. Project Name - символьное имя, которое будет использоваться для создания папки с файлами проекта;
3.2. Project Location - путь на диске компьютера, где будет создана папка с файлами проекта по п.3.1.
Изображение
4. В результате вышеописанных действий должно появиться окно-вкладка «Output - [название проекта по п.3.1]» с сообщением «Loading completed» (Загрузка завершена). Расположение окна-вкладки может отличаться из-за индивидуальных настроек программы.
Изображение
5. Для записи «прошивки» в микроконтроллер необходимо нажать на стрелку около кнопки загрузки (в инструментальной панели - см. рисунок) и в выпадающем списке выбрать пункт «Make and Program Device (Project [название проекта по п.3.1])» (Подготовить и запрограммировать устройство):
Изображение
6. В результате успешного программирования микроконтроллера должно появиться окно-вкладка «Output» с сообщением «Programming/Verify complete» (Программирование и проверка завершены).
Изображение
1. Сначала необходимо импортировать «прошивку» в MPLAB® X IDE - для этого в меню главного окна выбрать «File > Import > HEX/ELF...(Prebuilt) File»:
Изображение
2. Затем выбрать аппаратную основу проекта - для этого в появившемся окне заполнить поля:
2.1. Prebuilt Filename - файл «прошивки»;
2.2. Family - семейство микроконтроллеров;
2.3. Device - марка микроконтроллера;
2.4. Hardware Tool - идентификатор программатора PICkit3TM (обычно содержит серийный номер).
Изображение
3. После этого выбрать имя проекта и расположение папки с файлами проекта:
3.1. Project Name - символьное имя, которое будет использоваться для создания папки с файлами проекта;
3.2. Project Location - путь на диске компьютера, где будет создана папка с файлами проекта по п.3.1.
Изображение
4. В результате вышеописанных действий должно появиться окно-вкладка «Output - [название проекта по п.3.1]» с сообщением «Loading completed» (Загрузка завершена). Расположение окна-вкладки может отличаться из-за индивидуальных настроек программы.
Изображение
5. Для записи «прошивки» в микроконтроллер необходимо нажать на стрелку около кнопки загрузки (в инструментальной панели - см. рисунок) и в выпадающем списке выбрать пункт «Make and Program Device (Project [название проекта по п.3.1])» (Подготовить и запрограммировать устройство):
Изображение
6. В результате успешного программирования микроконтроллера должно появиться окно-вкладка «Output» с сообщением «Programming/Verify complete» (Программирование и проверка завершены).
Изображение