Программирование микроконтроллеров PIC. Часть 6. Как перевести контроллер в режим программирования и залить в него прошивку — radiohlam.ru
В предыдущих частях мы разобрались что представляет из себя контроллер, как он работает и как написать для него программу. Следующее, что нам нужно сделать — это залить полученную программу в память контроллера (или ещё говорят «прошить контроллер»). Для этого существуют специальные инструменты — программаторы.
Программатор состоит из аппаратной части (обычно в быту именно эту аппаратную часть и называют программатором, поэтому мы тоже в дальнейшем сузим термин «программатор» только до его аппаратной части) и программной части. Аппаратная часть предназначена для физической организации необходимых для программирования сигналов (с правильными уровнями и фронтами). Программная часть предназначена для управления аппаратной частью, она реализует правильные алгоритмы (последовательности и задержки включения и выключения различных сигналов аппаратной части), необходимые для записи программы в память контроллера. Чаще всего программная часть делается в виде компьютерной программы, а управление аппаратной частью она осуществляет через какой-либо компьютерный интерфейс, к которому подключается аппаратная часть (обычно RS-232, LPT или USB).
Различные схемы и программы для программирования контроллеров можно легко найти в сети интернет или даже придумать самому. Некоторые из таких схем и программ выложены у нас на сайте, их можно найти вот по этим ссылкам: схемы различных программаторов, программы для прошивки контроллеров.
Как вообще происходит прошивка всяких разных контроллеров? Сначала контроллер специальным образом переводится в режим программирования (то есть контроллеру сообщают, что его собираются программировать). Способы перевода есть различные: специальная последовательность сигналов на определённых ногах, специальные уровни напряжения (например, подача напряжения 12В на определённую ногу, вместо обычных 5 вольт) или и то и другое вместе. Обычно после перехода в режим программирования все неиспользуемые в процессе программирования ноги автоматически переводятся контроллером в высокоомное состояние.
Далее в контроллер по последовательному или параллельному интерфейсу передаются команды (запись/чтение/стирание…) и, при необходимости, данные (если мы записываем прошивку, то мы передаём данные, если считываем — контроллер передаёт нам данные…). Подробнее о процессе программирования можно почитать в спецификациях по программированию, выпускаемых производителями контроллеров. Например, спецификации по программированию PIC-контроллеров можно скачать с сайта microchip.com (в разделе design support -> programming specifications). Спецификаций там очень много, поэтому мы вкратце обобщим размещённые в них сведения.Итак, в микроконтроллерах PIC, фирмы Microchip, обычно реализовано программирование по последовательному интерфейсу. При этом две ноги контроллера используются для организации самого интерфейса (сигналы clock — тактирование и data — данные) и ещё одна или несколько ног используются для перевода контроллера в режим программирования и удержания его в этом режиме (Vpp, PGM…).
Различают два основных метода программирования: высоковольтное (HVP — high voltage programming) и низковольтное (LVP — low voltage programming). В первом методе для перевода контроллера в режим программирования дополнительно используется более высокое напряжение (Vpp — напряжение программирования) по сравнению с рабочим (Vdd). Во втором методе никаких дополнительных напряжений использовать не нужно. В контроллерах, в зависимости от модели, могут быть реализованы оба метода сразу, а может быть реализован только какой-то один из методов.
В обоих методах существуют различные алгоритмы перевода контроллера в режим программирования (опять же, в зависимости от конкретной модели). Более того, в контроллере может быть заложено сразу несколько таких алгоритмов.
Далее я попробую описать наиболее распространённые алгоритмы перевода контроллеров PIC в режим программирования из обоих методов.
1. High Voltage Programming, «Vpp-first». Суть метода: сначала на специальную ногу подаётся напряжение программирования (Vpp), потом, не раньше, чем через определённый промежуток времени (T1), подаётся питание (Vdd). Через определённый промежуток после этого (T2) контроллер перейдёт в режим программирования и можно будет начинать обмен данными (используя линии clock и data). На начальном этапе, всё то время, пока контроллер переводится в режим программирования, на интерфейсных ногах должен быть нулевой уровень. Ниже представлена диаграмма сигналов, соответствующая этому алгоритму:
2. High Voltage Programming, «Vdd-first». Суть метода: сначала подаётся рабочее напряжение (Vdd), потом, не раньше, чем через определённый промежуток времени (T1), на специальную ногу подаётся напряжение программирования (Vpp). Через определённый промежуток после этого (T2) контроллер перейдёт в режим программирования и можно будет начинать обмен данными (используя линии clock и data). Так же, как и в предыдущем алгоритме, на начальном этапе (всё то время, пока контроллер переводится в режим программирования) на интерфейсных ногах должен быть нулевой уровень. Ниже представлена соответствующая диаграмма сигналов:
3. Low Voltage Programming, «Special Sequence». Суть метода: через определённый промежуток времени (T1) после подачи рабочего напряжения (Vdd), контроллеру посылается специальный 32-х битный ключ, после чего контроллер переходит в режим программирования. При этом нога MCLR/Vpp должна быть притянута к общему проводу. Второй вариант этого же алгоритма (если рабочее напряжение уже приложено к контроллеру) заключается в следующем: нога MCLR/Vpp притягивается к общему проводу, через определённое время (T 2) после этого контроллеру посылается специальный 32-х битный ключ, после чего контроллер переходит в режим программирования. Ниже представлены соответствующие диаграммы сигналов:
4. Low Voltage Programming, «Special Pin». Суть метода: при установке в слове конфигурации специального бита (LVP) один из выводов (PGM) контроллера начинает использоваться для перевода контроллера в режим программирования (соответственно, использовать этот пин в качестве цифрового входа/выхода уже нельзя). Так вот, в этом случае перевод контроллера в режим программирования осуществляется подачей высокого уровня (Vdd) на ногу PGM и через некоторое время после (T
При внимательном рассмотрении видно, что некоторые алгоритмы (2,3,4) позволяют перейти в режим программирования не снимая с контроллера рабочее напряжение питания. При специальной разводке платы эти алгоритмы позволяют программировать контроллер, что называется, «на лету». Способ, при котором контроллер программируется прямо в готовом изделии называется ICSP — in circuit serial programming (по-русски обычно говорят просто — внутрисхемное программирование).
На этом, пожалуй, и всё. Вот здесь можно найти таблицу контроллеров PIC фирмы Microchip, в которой указано, какие алгоритмы перевода в режим программирования поддерживают конкретные модели контроллеров, а также допустимые диапазоны значений Vpp (для контроллеров, поддерживающих HVP).
- Часть 1. Необходимые инструменты и программы. Основы MPLAB
- Часть 2. Что такое микроконтроллер и как с ним работать
- Часть 3. Структура программы на ассемблере
- Часть 4. Разработка рабочей части программы. Алгоритмы
- Часть 5. Ассемблер. Организация циклов и ветвлений
- Часть 6. Как перевести контроллер в режим программирования и залить в него прошивку
PIC-микроконтроллеры: архитектура и программирование
Электронный ресурс
цифровой образовательной среды СПО
Рейтинг издания
PIC-микроконтроллеры: архитектура и программирование
Подзаголовок: | |
Издательство: | Профобразование |
Авторы: | Майкл Предко |
Год издания: | 2019 |
ISBN: | 978-5-4488-0062-7 |
Тип издания: | практическое пособие |
Гриф: |
Библиографическая запись
Майкл, Предко PIC-микроконтроллеры: архитектура и программирование / Предко Майкл ; перевод Ю. В. Мищенко. — 2-е изд. — Саратов : Профобразование, 2019. — 511 c. — ISBN 978-5-4488-0062-7. — Текст : электронный // Электронный ресурс цифровой образовательной среды СПО PROFобразование : [сайт]. — URL: https://profspo.ru/books/87983 (дата обращения: 08.03.2023). — Режим доступа: для авторизир. пользователей
Об издании
Книга посвящена PIC-микроконтроллерам – одному из самых популярных семейств современных микроконтроллеров. В справочнике имеются все необходимые сведения, аппаратные и программные решения. По широте охвата и объему рассматриваемого материала книга претендует на статус малой энциклопедии. Здесь представлены классификация и архитектура различных подсемейств PIC-контроллеров, сравнительные характеристики типов, разводка выводов, системы команд, подробная спецификация управляющих регистров. Рассказывается о принципах работы основных узлов, приведены таблицы временных и электрических характеристик, алгоритмы программирования. Дано описание языков программирования и средств разработки приложений.
Издание предназначено для широкого круга читателей – от начинающих радиолюбителей до специалистов, работа которых связана с использованием PIC-микроконтроллеров.Скачать библиографическую запись
Основы управления в органах внутренних дел
Бавсун И.Г.
Umweltschutz
Рыхлова О.С.
Конструирование мебели и столярных изделий
Барташевич А.А.
Практикум по технологии конструкционных материалов и материаловедению
Некрасов С.С., Пономаренко А.М., Потапов…
Практическая грамматика немецкого языка. Морфология = Deutsch. Lehr- und Übungsbuch der deutschen Grammatik. Morphologie
Галай О.М., Черкас М.А., Кирись В.Н.
Волейбол для 12-13-летних
Тертычный А.В., Тертычная В.Т.
Основы врачебного контроля лечебной физической культуры и массажа в детской неврологии
Налобина А.Н., Таламова И.Г., Стоцкая Е.С.
Едем, плывём, летим. Простые модели своими руками
Красных А.В., Салахова А.А.
Ручной USB-программатор PIC для автономного программирования микроконтроллеров PIC
Ручной программатор PIC для микроконтроллеров PIC
Этот простой программатор PIC идеально подходит для программирования встроенного программного обеспечения микроконтроллеров PIC в полевых условиях или может использоваться в качестве
производственный программист. Однокнопочное управление предотвращает ошибки и снижает потребность в обучении. Как только он будет загружен с ПК с помощью стартового комплекта USB,
он может продолжать программировать целевые микроконтроллеры PIC без ошибок навсегда. Это самый простой мобильный программатор в мире.
Программатор One Botton — это самый простой способ обновления встроенной прошивки на месте. Нет необходимости в ноутбуке или ПК, полевое программирование не может быть проще. Загрузитесь с ПК, перейдите к своей цели и нажмите одну кнопку, чтобы обновить встроенную прошивку – портативное программирование в самом простом виде.
Идеален для нетехнических операторов, так как не допускает ошибок – просто нажмите кнопку, и правильный код ДОЛЖЕН быть загружен. Вы можете настроить его для программирования всего микроконтроллера PIC или только памяти данных (только для PIC16F). Он поддерживает микроконтроллеры PIC16F и PIC18F.
Важное примечание
Этот продукт представляет собой просто ручной программатор без загрузчика ПК
. Вам нужен один стартовый комплект PIC Handheld Programmer Starter Kit, чтобы загружать с ПК столько программаторов, сколько вам нужно. После того, как программатор загружен, он становится полностью переносимым.
Функции портативного программатора PIC
- Портативный программатор PIC использует батарею PP3 9 В или блок питания
- Управление одной кнопкой
- Загрузить один раз, запрограммировать цели навсегда
- Перезагружать новые программы при необходимости
- Неограниченное время хранения программного кода
- Методы программирования низкого или высокого напряжения
- 10-контактный DIL и 6 x 1-контактный провод в комплекте
- Программирование/проверка флэш-памяти или EEPROM или того и другого
- Программирует и проверяет слова конфигурации
- Существующие данные EEPROM могут быть сохранены
- Загрузочный блок можно сохранить на устройствах PIC18FxxK
- Возможность питания целевого устройства (до 150 мА) при напряжении 3,3 В или 5 В
- Некоторые семейства (PIC18FxxJ и некоторые PIC18FxxK) имеют только низкое напряжение (на момент написания), поэтому программист использует для них 3,3 В.
- Примечание. Некоторым устройствам PIC16Fxxx требуется минимум 4,5 В для стирания чипа, поэтому программист всегда использует для них 5 В.
- Мишень может быть запитана или обесточена
- Необходимые соединения: PGC, PGD, MCLR и GND. VDD и PGM не являются обязательными
- Размеры: Метрические – 106 мм x 58 мм x 25 мм
- Размеры: Британские единицы — 4,5 x 2,5 x 1 дюйм
- 256 КБ памяти
- Ограничить количество разрешенных программных операций, если необходимо
- Android-приложение для перезагрузки программатора
Операционные системы
Windows 2000, XP, Vista, Windows7, Windows 8, Windows 10, Windows 11
32- и 64-битные версии
Приложение для Android
Сохраните содержимое программатора в файл PRG, отправьте его на устройство Android, и программатор можно просто перезагрузить с новым содержимым. Это дает вам гораздо большую гибкость.
Подробнее, видео и загрузка приложений
Поддержка микроконтроллеров PIC
Микроконтроллеры PIC18F
- PIC18Fxxxx
- PIC18FxxJxx
- PIC18FxxKxx (9В ВПП)
- Теперь поддерживает PIC18FxxK80, PIC18F6xK22/8xK22, PIC18FxxJ50, PIC18F6xK90/8xK90 и PIC18FxxK83
- Поддерживает PIC18FxxQ10 и PIC18FxxQ4x
- Также поддерживает версии LF
БЕСПЛАТНЫЕ обновления доступны для поддержки новых устройств.
Микроконтроллеры PIC12F
- PIC12F1822, PIC12F1840
- ПИК12Ф609, ПИК12Ф615, ПИК12Ф617
- ПИК12Ф635, ПИК12Ф683
- ПИК12Ф1571, ПИК12Ф1572
Версии Plus LF/HV
Микроконтроллеры PIC16F
- PIC16F610
- PIC16F616
- PIC16F627
- PIC16F628
- PIC16F627A, PIC16F628A, PIC16F648A (программирование режима HVP, только если контакт сброса не перепрограммирован как ввод-вывод)
- ПИК16Ф631, ПИК16Ф636, ПИК16Ф639
- PIC16F677
- PIC16F68x, PIC16F690
- PIC16F7x
- PIC16F7x7
- PIC16F72x
- PIC16F785
- PIC16F818
- PIC16F819
- PIC16F8x
- PIC16F8xA
- PIC16F87x
- PIC16F873A
- ПИК16Ф874А
- ПИК16Ф876А
- PIC16F877A
- PIC16F88x
- PIC16F91x
- PIC16F946
- PIC16F19xx
- PIC16F15xx
- PIC16F161x
- PIC16F170x
- PIC16F171x
- PIC16F176x
- PIC16F177x
- PIC16F178x
- PIC16F18xx
- PIC16F183xx
- PIC16F188xx
- PIC16F153xx
- PIC16F184xx
- PIC16F152xx
- PIC16F180xx
- PIC16F181xx
- Версии LF также поддерживают
PIC12F и PIC16F Не поддерживается
- PIC12F629
- PIC16F630
- PIC16F676
- PIC16F5x
- PIC16F505
Примечания: новые программаторы поддерживают 9V VPP для PIC18FxxKxx и PIC16F1xxx. Режим LVP поддерживается микроконтроллерами PIC с LVP.
Блок питания
Если вы не хотите использовать внутреннюю батарею 9 В PP3, требуется источник питания 9 В с цилиндром 2,1 мм.
разъем, центр положительный. Они доступны в нашем магазине, или вы можете использовать любой настенный трансформатор с этими функциями.
9V International Источник питания для использования с этим программатором PIC.
Содержимое
- Ручной автономный программатор
- 10-жильный ленточный кабель
- 6-контактный адаптер SIL (MCLR, VCC, GND, PGD, PGC, PGM)
Если вам нужна другая распиновка, см. 10FLEX6 в аксессуарах ниже.
Программатор PIC
Обзор нашей линейки программаторов PIC см. Обзор PIC Programmer в новом окне
Задавать вопрос
спросил
Изменено 1 год, 7 месяцев назад
Просмотрено 366 раз
\$\начало группы\$
кажется, что на этот вопрос есть очевидный ответ, но, несмотря на то, что я просмотрел техническое описание микроконтроллера PIC, который я собираюсь использовать (PIC18F45K22), и руководство пользователя программатора SNAP, я не могу найти ответ.
Я хочу запрограммировать микроконтроллер с помощью этого программатора, но я не уверен, какие контакты на микросхеме должны соединяться с какими контактами на SNAP. Самая актуальная информация, которую я могу найти в руководстве пользователя, — это столбец «ISCP (MCHP)» в таблице «Распиновка интерфейсов отладки» на стр. 38:
Согласно этой таблице, кажется, что если я хочу запрограммировать мой микроконтроллер с помощью ICSP (что, я думаю, я делаю), я бы, например, подключил контакт 1 SNAP к MCLR. Это я могу сделать. А вот, где написано подключать пин 6 к AUX я путаюсь, потому что нигде в даташите на микроконтроллер такой пин не упоминается.
ICSP (MCHP) кажется наиболее важным из всех столбцов в этой таблице, поэтому я не понимаю, почему выводы не совпадают с тем, что сказано в таблице данных.
- пик
- программирование
\$\конечная группа\$
5
\$\начало группы\$
Серия PIC18F K использует старый Microchip PGC/PGD, это не часть JTAG.