Программа для прошивки pic контроллеров
Обновлено: 23.11.2024
Я умею программировать прошивку с помощью c. Но это требует от меня более глубокого понимания механизма перепрошивки. Как мне подойти к этой проблеме? Есть ли какие-либо ресурсы, которые я могу использовать для начала?
Нужно ли мне создавать драйвер (ПК) для связи между PIC и ПК? Думаю, мне нужно изменить загрузчик.
Спасибо за помощь.. Большое спасибо..
Вы заново изобретаете велосипед в образовательных целях или по какой-то причине не хотите использовать существующее программное обеспечение, которое безупречно выполняет свою работу?
Переосмысление для целей компании. Компания, в которой работает компания, не может распространять продукт Microchip вместе с разрабатываемыми ими приложениями и оборудованием. Поэтому планирую создать графический интерфейс, который можно будет распространять самостоятельно. Кроме того, для моей образовательной цели тоже я хотел бы узнать это. Я все еще студент, прохожу стажировку в этой компании несколько месяцев.
Есть и другие способы решить эту проблему, хотя и не заморачиваясь. Вы слышали о TEAclipper?
2 ответа 2
Это зависит от того, какой уровень вы подразумеваете под "прошивкой" контроллера PIC.
Если у вас есть загрузчик на устройстве PIC с протоколом для приема обновлений встроенного ПО, вам необходимо реализовать ПК-сторону этого протокола, используя любую доступную ссылку. Например, если загрузчик ищет прошивку с использованием протокола RS-232, вам необходимо реализовать серверную часть этого. Это будет зависеть от того, с каким программным обеспечением вы имеете дело в PIC и как PIC подключается к ПК. Если вы можете изменить загрузчик, вы можете реализовать соответствующий протокол на обоих концах для обновления программного обеспечения.
В случае с загрузчиком вам не понадобится драйвер устройства на стороне ПК, если только вы не имеете дело с каким-то эзотерическим интерфейсом. Я ожидаю, что обновление загрузчика на стороне ПК будет полностью в пользовательском режиме.
Если вы хотите прошить устройство, не беспокоясь о программном обеспечении в PIC, вам необходимо реализовать протоколы в спецификации программирования прошивки. Для этого вам потребуется соответствующее устройство на стороне ПК и программное обеспечение для управления этим устройством.
учебники и проекты по электронике для начинающих
Откройте для себя радость понимания электроники!
12 апреля 2019 г. • руководство
Много интересных онлайн-проектов по электронике используют микроконтроллеры, и для новичков это слово может показаться довольно пугающим. По крайней мере, так было со мной, когда я начал увлекаться электроникой много лет назад. Но на самом деле нет причин бояться этой темы. Конечно, это немного сложно, но вы будете удивлены, как быстро вы сможете добиться прогресса, когда избавитесь от первоначального страха :)
Хорошо, допустим, вы нашли классный проект в области электроники, который хотите создать сами. На каком-то веб-сайте какого-то мастера, который был достаточно любезен, чтобы включить схему и все другие детали, которые вам нужны. Но проблема в том, что проект содержит микроконтроллер! Что вы можете сделать?
Можете ли вы создать проект с микроконтроллером, даже если ничего о нем не знаете? Ответ - да! Да, ты можешь! В этой статье я сосредоточусь на микроконтроллерах PIC от компании MicroChip, но общая идея работает и для всех остальных. Дайте мне знать в комментариях, если у вас есть какие-либо вопросы или если что-то было непонятно :)
Шаг 1. Получите файл .hex!
Микроконтроллеры — это маленькие компьютеры, и им нужна программа, которая говорит им, что делать. Это набор инструкций, и этот набор инструкций необходимо передать на контроллер, чтобы заставить его работать. Обычно этот набор инструкций написан на языке программирования, таком как C, Basic, Assembler или любом другом. Хорошо то, что вам не нужно знать ничего из этого, если все, что вы хотите сделать, это перенести эту программу на контроллер!
Все, что вам нужно, это так называемый файл .hex. Это файл размером всего в несколько килобайт, нечитаемый человеческим глазом. Он содержит машинный код, записанный в шестнадцатеричном формате, откуда и произошло название. Этот файл - все, что вам нужно, и если вы внимательно посмотрите на блог по электронике, где кто-то представляет свой проект, включающий микроконтроллер, вы найдете где-нибудь файл .hex для загрузки. Если это не так, просто спросите! ???
Шаг 2. Приобретите программатор
Хорошо, теперь у вас есть файл .hex. Дальше нужен программатор. Что это такое? Это устройство, обычно питаемое от USB, которое соединяет ваш компьютер с микроконтроллером. Используя специальное программное обеспечение (см. шаг 4 ниже), вы сможете перенести файл .hex в память микроконтроллера. Затем, когда контроллер включится, он будет делать все, что ему скажет файл .hex!
Я предлагаю использовать PICkit3. Простой поиск на Amazon покажет вам множество предложений, обычно около 30 долларов. Я использую его уже много лет, и он отлично подходит для программирования PIC.
Это мой PICkit3, который я купил много лет назад, и он до сих пор работает. Стоит денег!
О, чуть не забыл упомянуть: перенос файла .hex на контроллер в большинстве случаев называется «программированием» PIC или «прошивкой» PIC. Просто чтобы вы знали :)
Шаг 3. Подключите PIC-контроллер к программатору
Хорошо, теперь у вас есть PIC-контроллер, у вас есть PICkit3, и что теперь? Теперь вам, конечно же, нужно подключить PIC к PICkit3! ;-) Но как?
Есть пять взаимосвязей, о которых вам нужно знать, и мы поговорим о них по порядку. Во-первых, взгляните на это изображение моего PICkit3:
Шесть соединений в PICkit3.
В PICkit3 есть шесть соединений в контактном разъеме, которые называются LVP, PGC, PGD, VSS, VDD и MCLR. Мы не будем использовать LVP, поэтому давайте проигнорируем его в этой статье. Так что же означают остальные пять? Начнем с двух простых:
- VDD — положительное рабочее напряжение.
- VSS — это потенциал земли.
- MCLR означает Master Clear, и заземление этого контакта переводит PIC-контроллер в режим программирования. При нормальной работе он должен быть подключен к VDD, чтобы PIC-контроллер не сбрасывался.
- PGD означает Programming Data, и именно здесь передаются биты, которые записываются в контроллер во время программирования, так же, как в сдвиговом регистре. Это линия данных, и она может быть старшей или младшей, в зависимости от того, передает ли PICkit3 старший или младший бит в это время.
- Наконец, PGC — это часы программирования. Всякий раз, когда на этой линии есть импульс, текущий бит в PGD записывается в PIC, и внутри PIC перемещается к следующему слоту для записи следующего бита. Это сердцебиение цикла программирования.
Затем вы можете воткнуть PICkit3 в схему и подключить его к компьютеру. В моем случае у меня действительно не было 45-градусного разъема, поэтому я перевернул макетную плату на бок, но знаете что, она отлично работает :)
Но как его подключить к PIC-контроллеру? Это во многом зависит от конкретного контроллера, который вы хотите использовать. Каждый контроллер имеет назначенные выводы для программирования (MCLR, PGD и PGC), которые необходимо подключить к PICkit3. В качестве примера возьмем PIC16F627A. На этой картинке ниже вы можете увидеть соответствующие контакты:
Цвета соответствуют проводам, которые я использовал на рисунках выше для подключения PIC к PICkit3 на макетной плате. Попробуйте :)
Шаг 4. Программное обеспечение!
Теперь, наконец, нам нужно скачать бесплатное программное обеспечение от компании MicroChip. Он называется MPLAB X IPE, что означает Integrated Programming Environment 10. Вы можете скачать его здесь бесплатно. Да, я знаю, там написано MPLAB IDE вместо MPLAB IPE, но IPE включена в эту загрузку.
Установите программное обеспечение, а затем запустите MPLAB X IDE. это выглядит примерно так:
Убедитесь, что в разделе "Устройство" выбран ваш контроллер. В разделе «Инструмент» вы уже должны увидеть PICkit3, если он подключен. Если вы еще этого не сделали, подключите его сейчас :) Затем нажмите «Подключиться». Нажмите OK в появившемся сообщении:
Возможно, вы получите следующее сообщение об ошибке:
«Целевое устройство не найдено (не удалось обнаружить целевое напряжение VDD). Вы должны подключиться к целевому устройству, чтобы использовать PICkit 3».
Если да, нажмите Power слева и проверьте цепь Power Target в Tool. Убедитесь, что установлено правильное напряжение (5 В для контроллера 5 В, 3,3 В для контроллера 3,3 В):
Затем вернитесь к Operate и еще раз нажмите Connect. Возможно уже показывает, что подключено, если нет, то просто нажмите Connect еще раз. Теперь это должно выглядеть так:
Нажмите «Подтвердить» и нажмите «ОК» в этом приглашении:
Теперь все должно работать, но вы можете получить следующее сообщение об ошибке:
«Идентификатор целевого устройства (0x0) является недопустимым идентификатором устройства. Пожалуйста, проверьте ваши подключения к целевому устройству. Хотите продолжить?»
Проверьте свои соединения! Возможно, что один из кабелей ослаблен! После этого все должно быть в порядке, и вы должны увидеть это сообщение:
Хорошо! Теперь мы в деле! Пришло время загрузить файл .hex! Нажмите «Файл», затем «Импорт», а затем нажмите «Шестнадцатеричный», чтобы выбрать файл, после чего он должен выглядеть следующим образом:
Потрясающе! Теперь нажмите «Программа» и наблюдайте за происходящим чудом! Вот что вы увидите:
Программирование завершено! Ты сделал это! Теперь шестнадцатеричный файл надежно хранится на вашем контроллере!
Финиш! Вы сделали это!
Теперь просто отключите PICkit3, выключите программное обеспечение и отсоедините контроллер от макетной платы. Он готов к подключению к конечному пункту назначения!
Я надеюсь, что это руководство было полезным. Если вы чувствуете, что я пропустил несколько частей здесь и там, или что-то не так или неправильно, сообщите мне об этом в комментариях ниже, и я постараюсь добавить недостающую информацию!
От себя лично: я знаю, что может быть неприятно отправляться в неизвестность. Но это также может быть очень полезным. Научиться прошивать микроконтроллеры — значит сделать первый шаг в совершенно новый мир! То, что раньше было недостижимо, теперь доступно :)
В большинстве моих проектов используется микроконтроллер Microchip PIC, который должен быть запрограммирован соответствующей прошивкой для выполнения своей работы. Но программирование этих небольших процессоров может стать большим препятствием для многих людей.
Случается, что Microchip пытается облегчить вам задачу, предоставляя дешевых программистов и бесплатное программное обеспечение. Они надеются, что это побудит вас покупать больше их фишек. В результате получается беспроигрышная ситуация.
Итак, в этой статье я намерен показать, как легко запрограммировать микроконтроллер PIC, вложив менее 20 долларов США.
Обратите внимание, что эта страница посвящена только программированию процессоров Microchip серии PIC. Существует множество других микроконтроллеров (Atmel, TI и т. д.), и для них потребуются другие программисты и программное обеспечение.
Почти все современные микроконтроллеры используют флэш-память для хранения программы. Вот почему программирование микроконтроллера часто называют «перепрошивкой» чипа.
Флэш-память можно много раз стирать и перепрограммировать, а сохраненные данные сохраняются даже при отключении питания. В дополнение к программе в чипе есть другие запоминающие устройства, которые также запрограммированы на одну операцию; к ним относятся параметры конфигурации (иногда называемые «предохранителями»), EEPROM (еще один тип стираемой памяти) и области загрузки. Информация для программирования всего этого содержится в одном файле, который обычно имеет расширение .hex (например, «FirmwareV1.hex»). Часто этот файл называют «шестнадцатеричным файлом».
Есть несколько программаторов, которые можно приобрести для выполнения этой работы. Ниже приводится краткое изложение с комментариями, ориентированными на любителей, которым нужно программировать только случайный чип.
МКБ3 и МКБ4. Это высококачественные (и дорогие) программаторы/отладчики от Microchip. Они предназначены для использования разработчиками и являются излишними для обычного любителя.
PICkit3 и PICkit4. Это лучший выбор для любителей, так как они недороги и поддерживают все микросхемы производства Microchip. PICkit4 является последним и самым быстрым, но PICkit3 по-прежнему хорошо справляется со своей задачей. Преимущество PICkit3 в том, что многие китайские производители делают дешевые клоны, которые можно найти на eBay.
PICkit2. Это старый дизайн, и он не поддерживает более современные чипы, такие как серия PIC32. На eBay есть много PICkit2 по очень низким ценам, но вам следует избегать их, так как они практически бесполезны.
Внутрисхемный отладчик/программатор MPLAB® Snap — новейшая разработка Microchip, и она довольно дешевая (15 долларов США + доставка). Он отлично справляется со своей задачей, и его можно приобрести у самих Microchip, у дистрибьюторов, таких как Mouser, и на eBay. Это хороший выбор, если вы хотите держаться подальше от китайских клонов PICkit3
Если вы просто хотите запрограммировать чипы PIC32, используемые для Maximite и Micromite, еще более дешевой альтернативой является Microbridge. Это основано на одном чипе стоимостью менее 2 долларов США, и у него есть собственная веб-страница здесь.Основная проблема с Microbridge заключается в том, что вам нужно в первую очередь установить прошивку для программирования в чип, поэтому вы в конечном итоге получите ситуацию с курицей и яйцом, требующую покупки программатора, такого как PICkit3, в любом случае.
PICkit 3
Поскольку клоны PICkit 3 настолько дешевы, поддерживаются программным обеспечением Microchip и могут программировать практически любой микроконтроллер Microchip, нижеследующее будет сосредоточено на PICkit 3 в качестве предпочтительного программатора.
Вы можете купить подлинный PICkit 3 у Microchip за 48 долларов США + доставка (ссылка) или у их дистрибьюторов. Номер детали — PG164130, и если вы выполните поиск в Google по этому номеру детали, вы найдете множество поставщиков.
Однако я рекомендую клоны PICkit 3, которые работают так же хорошо, но намного дешевле. В качестве теста я купил один за 18,80 долларов США с бесплатной доставкой, и я не могу его винить. Программное обеспечение Microchip распознало его как настоящий PICkit 3, и он работал так же хорошо, как и оригинальный продукт.
Хорошим местом для поиска дешевых клонов является eBay. Просто найдите PICkit3.
Итак, если вам просто нужен дешевый метод программирования микроконтроллеров Microchip, покупка клона Pickit 3 будет лучшим выходом. По смехотворно низким ценам вы можете позволить себе купить его только для того, чтобы запрограммировать один чип, а затем добавить его в свой набор инструментов для возможного будущего проекта.
Внутрисхемное последовательное программирование
Большинство микроконтроллеров Microchip используют соединение для внутрисхемного последовательного программирования (сокращенно «ICSP») для передачи программы на микросхему. Обычно печатная плата (PCB) имеет разъем для этого, и он выглядит примерно так, как разъем, выделенный на фотографии справа.
Если у вас нет такого разъема (возможно, вы программируете голый чип), вам придется самостоятельно разбираться с подключениями. Следующая таблица, в которой перечислены выводы разъема ICSP, должна помочь:
PIN | ИМЯ | ИСПОЛЬЗОВАНИЕ |
1 | MCLR< /td> | Главный вывод сброса на микроконтроллере |
2 | Vdd | Напряжение питания микроконтроллера |
3 | Vss | Заземление или ноль вольт штифт |
4 | PGD | Программирование сигнала данных |
5 | PGC | Программирование тактового сигнала |
6 | - Не используется - |
PICkit 3 | Функция |
---|---|
VPP (или MCLR) td> | Напряжение программирования (обычно 13 В) |
VCC или VDD | Питание (обычно 5 В) |
VSS или GND | Заземление (0 вольт) |
ICSPDAT \ PGD | Данные — обычный порт и подключение RB7 (PGED) |
ICSPCLK\PGC | Часы — обычный порт и подключение RB6 (PGEC) |
PGM – LVP | Программирование низкого напряжения – обычный порт и подключение RB3/RB4 |
При подключении PICkit 3 к печатной плате для отладки нередко можно обнаружить на печатной плате соответствующий разъем для PIC ICSP. Пример этого показан ниже:
Также важно предположить, что заголовок ICSP может быть не закреплен, как ожидалось, а это означает, что простое подключение PICkit 3 может не дать ожидаемых результатов. Мы рекомендуем сначала проверить распиновку. Это лучше всего сделать с помощью таблицы данных для MCU и мультиметра, настроенного на непрерывность, чтобы прозвонить заголовок ICSP к фактическим контактам на чипе.
В этом примере, используя техническое описание микроконтроллера PIC32MX695F512H и мультиметр, мы обнаружили, что распиновка заголовка предназначена для ICSP микроконтроллера, но расположение контактов не соответствует правильному порядку контактов для прямого подключения, как показано ниже:< /p>
Как видите, перед подключением отладчика или анализатора к печатной плате полезно всегда перепроверять выводы. Это убережет вас от головной боли в будущем и может помочь предотвратить повреждение затронутых компонентов. Также обратите внимание, что контакт 6 PGM – LVP на PICkit 3 не используется. Этот контакт нужен только при программировании определенных устройств MCU, и, насколько я понимаю, он никогда не нужен при чтении флэш-памяти.
После того, как PICkit 3 будет успешно подключен к целевому устройству, вам потребуется загрузить и установить программное обеспечение MPLab X IDE, доступное от Microchip. После установки пришло время извлечь прошивку из MCU.
Откройте программу MPLAB X IDE и создайте новый проект. Вы можете использовать значения по умолчанию для категории и типа проекта. Когда будет предложено выбрать устройство, выберите семейство и тип тестируемого устройства. В нашем примере мы использовали следующее:
- Семейство: 32-разрядные микроконтроллеры (PIC32)
- Устройство: PIC32MX695F512H
При появлении запроса на выбор инструмента выберите используемый отладчик (в нашем случае PICkit 3). На следующем шаге вам нужно будет выбрать Компилятор для распаковки прошивки. Вам это не понадобится, но необходимо для настройки проекта. Выберите то, что доступно, или, если вы используете этот инструмент впервые, вам может потребоваться загрузить компилятор. Последним шагом является присвоение вашему проекту имени и нажатие кнопки "Готово".
Затем выберите «Чтение памяти устройства».
При правильной настройке и подключении индикатор состояния PICkit 3 должен начать мигать красным, и вы должны увидеть следующую информацию в приложении MPLAB, а затем запрос на сохранение файла:
При сохранении файла он будет сохранен как файл типа Intel Hex. Чтобы иметь возможность исследовать и тестировать микропрограмму дальше, вам необходимо преобразовать ее в двоичный тип файла. Это легко сделать с помощью приложения для Linux hex2bin, как показано ниже:
После того, как он будет преобразован в двоичный файл, вы сможете провести дальнейшее тестирование встроенного ПО и использовать другие приложения, такие как Binwalk, для извлечения данных.
Мы также рекомендуем изучить возможности MBLab X IDE. Например, после извлечения прошивки загляните в меню битов конфигурации. Это покажет вам конфигурацию чипа и настройки безопасности.
На следующей неделе вы увидите четвертую и последнюю часть этой серии, в которой будут подробно описаны ВЧ-микроконтроллеры Texas Instrument.
Читайте также:
- Что такое Adobe rdrcef
- Программное обеспечение для ноутбуков Acer
- Как удалить голосовые сообщения WhatsApp из памяти телефона на iPhone
- Как вставить изображение в Word
- Как свернуть Adobe Audition в трей