Программа для прошивки pic контроллеров

Обновлено: 04.07.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, должна помочь:


Программист отслеживает напряжение на выводе 2 (Vdd) и использует его, чтобы определить, действительно ли включена программируемая микросхема. Чтобы начать операцию программирования, программатор подаст на контакт 1 (MCLR) напряжение выше, чем Vdd (обычно от 12 до 15 вольт). Затем он передает данные, используя контакт 4 (PGD) и контакт 5 (PGC). Внутренняя логика чипа возьмет эти данные и запишет их во флэш-память чипа.


Подключение

На приведенном выше рисунке печатной платы вы сможете подключить PICkit 3 непосредственно к шестиконтактному разъему ISCP. Контакт 1 разъема PICKit 3 отмечен белым треугольником, а обычно контакт 1 разъема на печатной плате отмечен цифрой 1 или другим символом.

Если вы не можете разместить программатор в пространстве, вам понадобится шестижильный кабель с разъемом «папа» и разъемом «мама» на другом конце, как показано справа (мой клон пришел с этим, что было удобно).

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

Чтобы управлять PICkit 3, вам необходимо установить систему разработки программного обеспечения Microchip MPLAB X на свой персональный компьютер. Он поставляется в различных версиях для Windows, Mac OS и Linux.К сожалению, полная установка включает в себя множество вещей, которые вам не нужны (например, полностью интегрированная среда разработки), но важной частью является MPLAB IPE, который является компонентом программиста (IPE означает интегрированная среда программирования). Обычно он устанавливается в виде значка на рабочий стол.

Когда вы запускаете MPLAB IPE, вы видите довольно простой экран, который позволяет вам указать номер детали чипа и шестнадцатеричный файл для его программирования. Просто выполните пронумерованные шаги, показанные ниже, чтобы запрограммировать свой чип.


Когда вы нажимаете кнопку «Программировать», программное обеспечение дает указание PICkit 3 стереть чип, запрограммировать его новой прошивкой, а затем прочитать эту программу, чтобы убедиться, что она была правильно записана. В конце вы должны получить сообщение "Программирование завершено".

"Целевой Vdd не обнаружен". Обычно это означает, что вы неправильно подключились к разъему для программирования ISCP или что устройство, которое вы пытаетесь запрограммировать, обесточено.

"Не удалось запрограммировать устройство" или "Не удалось прочитать идентификатор устройства". Программатор мог сказать, что вы к чему-то подключились (потому что присутствовал Vdd), но не мог связаться с чипом. Обычно это означает, что что-то мешало линиям MCLR, PGD и/или PGC (т. е. они не были подключены или другие компоненты загружали сигналы).

"Идентификатор целевого устройства не соответствует ожидаемому идентификатору устройства". Это означает, что программатор обнаружил устройство, отличное от устройства, которое вы указали на шаге 1 выше.

Подача питания на устройство

Обычно чип, который вы программируете, будет питаться от цепи, которая его окружает, но у вас также есть возможность запитать чип от самого PICKit 3. Это может пригодиться, когда вы программируете чип, который позже будет подключен к его конечному дому, но в данный момент это просто свободный чип. Обратите внимание, что PICkit 3 может подавать максимум 30 мА, поэтому он подходит только для питания голого чипа и больше ни для чего.

Чтобы настроить PICkit 3 на подачу питания, выберите «Настройки» --> «Расширенный режим». Затем вам потребуется ввести пароль («Microchip») для входа в расширенный режим. Наконец, выберите вкладку «Питание» и отметьте «Целевая цепь питания от инструмента». Затем PICkit 3 будет подавать питание на контакт 2 (Vdd), а не просто измерять напряжение на этом контакте (что он обычно и делает).

Мигание светодиода с использованием микроконтроллера PIC с примерами. В этом руководстве мы увидим примеры взаимодействия светодиода с микроконтроллером PIC. Мигание светодиодом — самый простой и часто используемый пример для начинающих. Он действует как ступенька для разработки микроконтроллеров. Он дает основное представление о работе с контроллерами в практической среде. В этом руководстве по миганию светодиодов вы узнаете, как использовать входные и выходные порты микроконтроллера PIC с компилятором MPLAB XC8 и MikroC Pro.

Оглавление

Светодиод микроконтроллера PIC против использования кнопки

Например, когда мы хотим управлять внешним устройством, таким как светодиод, с микроконтроллером Pic, GPIO будет использоваться как цифровой выходной контакт. Точно так же, когда мы хотим воспринять внешний сигнал, такой как кнопка, переключатель, цифровые сигналы с микроконтроллером pic, контакты GPIO будут использоваться в качестве цифрового выходного контакта. Например, когда мы используем интерфейс клавиатуры с микроконтроллером или используем переключатель с микроконтроллером, мы используем контакты в качестве входных данных.

Взаимодействие светодиодов с микроконтроллером PIC

Прежде чем мы увидим, как связать светодиод с микроконтроллером pic, нам нужно понять некоторые основы светоизлучающих диодов, такие как требования к току и напряжению. Сколько нужно, чтобы включить? Каково номинальное прямое напряжение светодиода?

Введение в светодиоды

  • Светодиодная вспышка
  • Секвенсор
  • Индикаторы уровня заряда батареи
  • Подсветка заднего хода
  • Светофоры и многое другое

Светодиодные клеммы

На этом рисунке показан электронный символ и физическая схема светодиодов. Как вы можете изобразить из схемы, он состоит из двух выводов, таких как анод и катод. Анод – это плюсовая клемма, к которой мы подключаем плюсовую клемму источника питания. Аналогично соединяем минусовую клемму с катодом.

  • Более длинный вывод всегда является анодным выводом, а более короткий – катодом.
  • Во-вторых, мы можем определить катод с плоской поверхности, а другой будет анодной ногой.

Требования к току и напряжению светодиодов

Прежде чем сопрягать светодиод с микроконтроллером Pic, мы должны найти его прямой ток и прямое напряжение. Интенсивность света, излучаемого им, зависит от прямого тока. Чем больше вперед, тем выше будет интенсивность света.Но у каждого устройства есть пиковый прямой ток и напряжение. Он не может выдержать ток и напряжение выше пикового значения.

Например, если мы используем RED_LED с яркостью 5MCD, он будет работать при токе 10 мА.

Примечание: милликандела — это единица силы света, используемая для измерения яркости света.

Прямое напряжение зависит от цвета и размера светодиода. В этой таблице показано прямое падение напряжения для светодиодов разного цвета в зависимости от цвета и размера.

Поэтому из приведенной выше таблицы можно сделать вывод, что среднее прямое падение напряжения составляет около 2 В. Типичный прямой ток составляет около 10 мА. Но на рынке также доступны светодиоды небольшого размера (1 мм), которые могут работать даже при токе 1 мА. Но вы должны выбрать устройство в соответствии с вашими требованиями к яркости.

Подключение светодиода к микроконтроллеру PIC

И последнее, но не менее важное: в этом разделе перечислены все подробности о том, как связать светодиод с микроконтроллером pic. Во-первых, давайте предположим, что если мы используем любой вывод микроконтроллера pic в качестве цифрового вывода, он может обеспечить +5 вольт на выходе. На этой диаграмме показана схема подключения/светодиода, взаимодействующая с микроконтроллером pic.

 Взаимодействие светодиодов с микроконтроллером PIC PIC18F4550

Предположим, что прямой ток равен 10 мА. Но вы всегда можете найти пиковое значение прямого тока из таблицы данных. Мы можем легко рассчитать значение токоограничивающего резистора (R1), используя это уравнение:

Мы легко можем найти на рынке номинал резистора, близкий к 300 Ом.

Зачем нужен токоограничивающий резистор?

Вы, должно быть, думаете, зачем нам использовать резистор при соединении светодиода с микроконтроллером Pic? Это связано с ограничением тока контактов GPIO микроконтроллера Pic. Согласно техническому описанию микроконтроллера PIC18F4550, максимальный ток, который может обеспечить один вывод, составляет до 25 мА. Еще одно изменение связано с пиковым прямым током светоизлучающего устройства.

Светодиод мигает при использовании компилятора MPLAB XC8

В этом разделе мы увидим пример мигания светодиода с компилятором MPLAB XC8. Но перед этим вы должны знать, как использовать компилятор MPLAB XC8, мы рекомендуем вам сначала прочитать этот пост:

Посмотрев это видео и прочитав статью выше, вы должны знать, как создать новый проект с помощью MPLAB XC8 и как установить биты конфигурации любого микроконтроллера Pic (PIC18F4550). В этом примере мы используем микроконтроллер PIC18F4550 для демонстрации управления светодиодами.

Светодиод мигает в цепи PIC18F4450

Эта схема показывает схему подключения PIC18F4550 со светодиодом. Подключаем LED-RED к контакту RC0 PORTC через токоограничивающий резистор R1 (330 Ом).

Теперь посмотрим код мигания светодиода в компиляторе MPLAB XC8. Как и каждый порт PORT PIC18F4550, PORTC также является 7-битным двунаправленным портом. Каждый контакт может использоваться как цифровой вход или как цифровой выход. Эти три регистра связаны с PORTC:

TRISC — регистр направления данных

Как следует из названия, этот 7-битный регистр используется для установки направления данных. Другими словами, он определяет характер вывода либо как цифровой вход, либо как цифровой выход. Если мы установим все биты TRISC в 1, он настроит все контакты как цифровой вход и, аналогично установив «TRISC = 0x00», настроит все контакты как цифровой выход. В MPLAB XC8 мы можем определить их так:

Мы также можем получить доступ к отдельным битам регистра TRISC в MPLAB и настроить некоторые контакты как входные, а некоторые как выходные.

LATC — регистр фиксации данных

Регистр фиксации данных (LATC) также сопоставляется с памятью с помощью PORTC. Каждая операция чтения-изменения-записи, которую мы выполняем в LATC, фиксирует значение в PORTC.

PORTC

Микроконтроллер PIC18F4450 PORTC представляет собой многофункциональный порт. Все контакты используются совместно с другими модулями, такими как коммуникационные модули ESUART, USB, I2C и SPI, за исключением контактов RC4 и RC5.

Примечание. Контакты RC4 и RC5 можно использовать только в качестве цифровых входных контактов. Поскольку внутри с ними не связаны биты TRISC.

Мигающий светодиод код компилятора MPLAB XC8

Этот код мигает светодиодом с задержкой в ​​одну секунду. Функция __delay_ms(), используемая для определения задержки в миллисекундах.

Мы также можем связать многоцветные или RGB-устройства с микроконтроллером pic. Прочтите этот пост:

Схема секвенсора светодиодов с использованием микроконтроллера Pic

В этом разделе описывается схема секвенсора светодиодов, разработанная с использованием микроконтроллера pic. Схема секвенсора генерирует последовательность шаблонов мигания с заданным шаблоном.Как вы можете видеть на этой схеме, она мигает попеременно светодиодами в последовательности один, два и три соответственно.

В этой схеме мы используем PORTD и восемь светодиодов подключены к этому PORT через токоограничивающие резисторы. Это полный код компилятора MPLAB XC8.

Теперь давайте посмотрим, как работает код. Во-первых, функция led_sequence(char get), используемая для сдвига вправо и влево, передает этой функции в качестве аргумента. Первый «цикл for» отправляет значение в PORTD восемь раз с задержкой 200 миллисекунд. После каждого повторения цикла for он также сдвигал данные на один бит. Аналогично, во втором цикле for отправьте данные в PORTD семь раз, сдвигая данные на один бит вправо.

Эти строки отправляют значение функции последовательности.

Пример мигания светодиода MikroC Pro

В этом разделе мы объясним, как подключить светодиод к микроконтроллеру pic и как программировать с помощью компилятора MikroC Pro for pic.

Схема мигания светодиода

В этом примере мы продемонстрируем работу схемы мигания светодиодов с использованием микроконтроллера PIC16F877A. Принципиальная схема и моделирование будут выполнены в Proteus. Следующая принципиальная схема показывает, что мы подключили светодиод к контакту номер один PORTC. В качестве токоограничивающего резистора используется резистор. Потому что максимальный ток, который один контакт может обеспечить для светодиода, составляет 5 мА.

  • Подключите вывод RC1 микроконтроллера PIC16F877A к светодиоду через резистор
  • Выберите микроконтроллер PIC16F877A и остальные компоненты из встроенных библиотек Proteus, как показано на принципиальной схеме ниже.
  • Светодиод подключен к контакту RC1 порта C через резистор R1 на 330 Ом.
  • Для создания генерации подключите кварцевый резонатор с частотой 4 МГц к контактам 13 и 14 микроконтроллера с двумя конденсаторами C1 и C2 с обеих сторон кварцевого резонатора.
  • Подключите подтягивающий резистор R2 к выводу MCLR контроллера, другой конец которого будет подключен к Vdd.

Светодиод мигает с использованием микроконтроллера PIC16F877A

Как использовать контакты GPIO PIC16F877A

Код мигания светодиода MikroC Pro

Чтобы смоделировать схему в соответствии с нашей желаемой функцией, то есть для мигания светодиода, микроконтроллер PIC16F877A необходимо запрограммировать с помощью соответствующего C-кода. Напишите следующий код мигания светодиода в компиляторе mikroC. Если у вас нет опыта работы с MikroC pro, вы можете прочитать этот пост:

Светодиод мигает Код Описание

Цикл while будет выполняться бесконечное количество раз. Светодиод, подключенный к контакту RC1 PORTC, будет продолжать мигать с задержкой в ​​1 секунду (1 с = 1000 мс). TRISC в инструкции 2 настраивает PORTC как выходной порт. Вывод 1 PORTC устанавливается в 1 (ВЫСОКИЙ) в инструкции 4 и после задержки в 1000 мс устанавливается в 0 (НИЗКИЙ) в инструкции 6. Этот процесс повторяется до тех пор, пока программа не будет прервана. Это вызывает мигание светодиода. Скорость мигания светодиода можно увеличить или уменьшить, изменив значение задержки.

Строки, написанные рядом с инструкцией после символа «//», являются строками комментариев. Эти строки не компилируются вместе с программой, вместо этого они используются для объяснения работы оператора программирования. Для более длинных комментариев начинайте предложение с символа «/*» и заканчивайте символом «*/».

Результат моделирования

Результат моделирования мигания светодиода

Результат кода мигания светодиода с использованием микроконтроллера PIC: результат имитации мигания светодиода

Приложения

Есть несколько применений мигающего или мигающего света. Мигающий аварийный светодиодный свет используется для привлечения внимания масс, поскольку он заставляет людей смотреть вверх и уделять больше внимания. Кроме того, устройства, установленные на узлах связи, используют мигающий светодиод, чтобы убедиться, что связь идет.

Этот блог – третья часть из четырех статей, посвященных взлому оборудования, для специалистов по безопасности и исследователей. Обязательно ознакомьтесь с первой частью, в которой рассматриваются микроконтроллеры Atmel, и второй частью, в которой обсуждаются микроконтроллеры Nordic RF.

В этом блоге мы будем проводить дальнейшие упражнения по извлечению прошивки и рассмотрим микроконтроллер Microchip PIC (PIC32MX695F512H). Чтобы иметь возможность получить доступ к прошивке на микроконтроллерах PIC, нам нужно будет считывать напрямую с контроллера через встроенный последовательный программатор (ICSP).

ICSP — это еще один метод, который позволяет программировать или перепрограммировать микроконтроллер (MCU) внутри схемы. Для этого мы будем использовать следующие инструменты и программное обеспечение:

PICkit 3 — недорогой внутрисхемный отладчик.Доступны и более дешевые универсальные версии устройства. По нашему опыту, хорошо себя зарекомендовали как фирменные, так и непатентованные версии.


PIN ИМЯ ИСПОЛЬЗОВАНИЕ
1 MCLR< /td> Главный вывод сброса на микроконтроллере
2 Vdd Напряжение питания микроконтроллера
3 Vss Заземление или ноль вольт штифт
4 PGD Программирование сигнала данных
5 PGC Программирование тактового сигнала
6 - Не используется -
PICkit 3 Функция
VPP (или MCLR) Напряжение программирования (обычно 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.

Читайте также: