Проекты на PIC
Индикатор включенной передачи АКПП на PIC16F628A предназначен для отображения текущей передачи автоматических коробок передач производства Крайслер серии 41, а также для отслеживания исправности цепей вентилятора радиатора и свечей накала дизельного двигателя.
- Просмотров: 819
Термоанемометрический цифровой датчик потока воздуха на PIC
Термоанемометрический датчик потока воздуха, представленный в статье, предназначен для контроля тяги в системе вентиляции квартиры или дома. Датчик построен на PIC микроконтроллере и двух цифровых датчиках температуры. Датчик позволяет не только определять наличие потока воздуха и примерно рассчитывать его скорость, но и определять направление потока.
- Просмотров: 2414
Эта плата создана для самодельщиков, которые хотят использовать различные шилды для Arduino UNO с PIC микроконтроллерами. В плате можно использовать любой 28-ми выводный PIC микроконтроллер в SO корпусе без кварца (со встроенным генератором).
- Просмотров: 12481
Схема деликатной подсветки зоны поворота на PIC12F683 описана в данной статье. Эта схема позволяет включать дополнительную лампу (или одну из противотуманных фар) при повороте автомобиля, тем самым освещая зону поворота. В отличие от штатных устройств, получающих сигнал с датчика поворота руля, эта схема берет сигнал с лампы поворотника. С одной стороны, это даже лучше, ведь освещение поворота включается до начала самого поворота, что позволяет заранее увидеть возможное препятствие, а не тогда, когда автомобиль уже начал поворачивать.
- Просмотров: 10709
Предлагаемый таймер служит для управления лампой ДРЛ с учетом особенностей ее эксплуатации. Так, например, минимальное время включения лампы и паузы между включениями составляет 5 минут и обусловлено условиями испарения и конденсации ртути в колбе лампы. При несоблюдении этих условий ресурс лампы резко снижается. Данный таймер учитывает этот нюанс при цикличном включении. Таймер позволяет задать задержку перед первым включением лампы, время включения лампы и время паузы между включениями, причем последние два параметра не могут быть меньше 5 минут. Таймер будет полезен для периодического включения ламп ДРЛ без внешней колбы в целях дезинфекции помещений.
- Просмотров: 7060
Это диагностическая программа, которая ищет любое ведомое устройство на шине i2c и сообщает адрес для каждого найденного устройства. Эта программа полезна, если вы хотите убедиться, что ваш микроконтроллер действительно видит ведомое устройство, или убедиться в правильности адреса ведомого устройства. Данные выводятся через UART. Но программу можно изменить и для вывода на ЖКИ.
- Просмотров: 8987
Иногда требуется записывать значения каких-либо параметров на крату памяти для дальнейшего анализа на компьютере.
-простой дизайн, доступный для повторения радиолюбителями
-запись данных на карту памяти SD в виде простых текстовых файлов
-4 12-битных канала АЦП
-прост в использовании и конфигурировании
-экономичный
-недорогой
- Просмотров: 11967
Время от времени появляются люди, пытающиеся собрать индикатор уровня звука. В «аналоговую» эру, это можно было сделать с помощью делителя напряжения и ряда компараторв или использовать специальные микросхемы, например LM3914, LM3915. В наше время эти микросхемы найти все труднее и труднее, или вам нужно большее разрешение, или другой выходной профиль. Что же делать?
- Просмотров: 10481
Нижеприведенная схема служит для отпугивания воров от частного дома или квартиры путем имитации работающего телевизора и освещения. Данное устройство каждый вечер «включает свет» и «телевизор» в случайное время со случайной длительностью, также свет включается в случайное время среди ночи, и еще раз утром. В дежурном режиме устройство работает в качестве часов, обтражая время и дату на ЖКИ.
- Просмотров: 9718
Иногда количество выводов микроконтроллера ограничено и их не хватает для подключения знакосинтезирующего ЖКИ по обычной схеме, но в то же время в проекте присутсвуют устройства с шиной i2c. В таком случае будет удобно подключить индикатор также по этой шине. Для этого можно использовать расширитель порта PCF8574.
- Просмотров: 9578
Загрузка…
Программирование микроконтроллеров PIC. Часть 1. Необходимые инструменты и программы. Основы MPLAB — radiohlam.ru
Итак, вы решили научиться программировать pic-контроллеры. Для начала поговорим о том, что вам для работы с этими контроллерами понадобится.
Контроллер работает по определённой программе, которая должна как-то в него попасть. Обычно программу в машинных кодах, готовую для записи в контроллер, называют прошивкой. Следовательно нужно какое-то устройство, которое будет записывать (на сленге обычно говорят заливать или прошивать) программу в контроллер. Такое устройство называется программатор. Подробнее о программаторах и заливке программы мы поговорим позднее, в последней части нашей эпопеи (когда уже будет что заливать), а пока давайте по-порядку — как нам эту программу написать.
Программа для контроллера — это, как я уже сказал, набор машинных кодов, записанный в файле с расширением «hex» (здесь можно почитать про формат *.hex), который и нужно заливать в контроллер с помощью программатора. Никакого другого языка контроллер не понимает. Следовательно, нужна специальная программа, которая будет переводить текст программы, написанный на каком-либо языке программирования, в машинные коды. Наиболее удобными в этом плане являются интегрированные среды разработки (IDE — integrated development environment), поскольку они могут не только осуществлять перевод текста программы в машинный код, но и производить симуляцию её работы.
IDE, как и программаторов, существует много. Лично я пользуюсь MPLAB и вам рекомендую, по той простой причине, что MPLAB — это IDE от самого производителя PIC-контроллеров — фирмы Microchip, поэтому имеет отличную поддержку (в том числе на русском языке, что особенно приятно). С официального сайта Microchip можно скачать и сам этот пакет, и подробное описание по работе с ним. Если не нашли или ломает искать — ссылки для скачивания здесь, правда это уже не самая свежая версия.
В описании на русском языке про всё рассказано: от установки и настройки до удаления. В большинстве случаев вся установка заключается в том, чтобы запустить setup и ответить на пару вопросов, типа куда ставить драйверы и тому подобное, от себя лишь добавлю, что во избежание глюков ставить пакет надо в такую папку, чтобы в пути были только английские буквы (а не в какую-нибудь, типа C:\Программы\PIC\MPLAB). Вообще, кириллицу в путях к файлам или в названиях файлов лучше не использовать, иначе возможны глюки.
MPLAB позволяет писать программы на двух языках: СИ и Ассемблер. Интернет просто ломится от разборок СИ-шников и ассемблерщиков, которые с пеной у рта доказывают друг другу, какой язык лучше. Я отношу себя к ассемблерщикам, поэтому, естественно, расскажу почему лучше именно Ассемблер.
Ассемблер представляет собой набор элементарных команд, выполняемых контроллером. Каждая команда трактуется в машинный код совершенно однозначно, а результат её выполнения и время выполнения всегда одинаковы. То есть, если вы имеете листинг на ассемблере, то вы можете совершенно точно сказать, что делает контроллер в каждый момент времени и каким именно образом достигается нужный результат.
Программа на языке СИ (да и вообще на любом языке высокого уровня) — это уже набор команд не контроллера, а соответствующего языка. При компиляции каждая такая команда заменяется набором команд для контроллера, но каким именно набором команд она заменяется, — этого вы уже не знаете, это знает только разработчик языка программирования. Соответственно, невозможно понять, каким именно образом контроллер выполняет желаемое действие.
Короче говоря, в случае с языком высокого уровня вы изучаете как какой-то дядя обозвал свои способы реализации необходимых вам функций и по каким правилам их надо записывать. В данном случае можно провести следующую аналогию: вы хотите поговорить с китайцем, но вам говорят: «Китайский слишком сложный язык, но есть один дядя в Болгарии, который 20 лет жил в Китае и отлично его выучил. А болгарский язык с русским очень похожи и русскому человеку он интуитивно понятен, так что выучите болгарский, а уж дядя переведёт.»
В случае с ассемблером, вы изучаете сам контроллер и правила, по которым надо разговаривать с контроллером. При этом контроллер имеет всего-то несколько десятков команд, которые умещаются на одном листке и их легко можно окинуть одним взглядом.
Надеюсь, к этому моменту вы уже сделали выбор языка программирования, так что пойдём дальше.
Что нужно сделать в MPLAB, чтобы получить желанную прошивку? Как я уже сказал — подробности читайте в руководстве к IDE MPLAB, оно на русском и там всё понятно (если не понятно — идём на форум), я же только кратко перечислю самое основное и дам некоторые рекомендации.
Итак, мы установили MPLAB, хотим написать в нём программу для контроллера и получить готовую прошивку.
Сначала нужно создать проект. Для каждого проекта рекомендую заводить отдельную папку, потому что, во-первых, в проект может входить несколько файлов, а, во-вторых, сам MPLAB создаст ещё несколько вспомогательных файлов (*.lst, *.err, *.cod, *.bkx). Если несколько проектов будут в одной папке, то легко можно запутаться какие файлы к какому проекту относятся. Короче, создаём для проекта новую папку, потом запускаем MPLAB и выбираем меню Project -> New Project…
В появившемся окошке, в проводнике справа, выбираем нашу папку, в левой части (в поле под надписью File Name) пишем название будущего проекта, например my1.pjt (не забываем указать расширение), и жмём ОК.
Появляется окно с названием Edit Project. Это менеджер проекта, в котором указываются параметры проекта (какие файлы и библиотеки нужно подключить к проекту, какой будет использоваться камень, будет ли использоваться симуляция и многое другое). Находим поле ввода с названием Development Mode. Справа от этого поля есть кнопочка Change… Нажимаем.
Открывается окошко с названием Development Mode, в котором мы видим кучу вкладок. На вкладке Tools ставим галочку рядом с MPLAB SIM Simulator (грех для отладки симулятором не пользоваться), в поле ввода Processor выбираем контроллер, с которым мы будем работать. На вкладке Clock указываем какая у нас будет частота генератора. Жмём ОК. На ошибку и предупреждение не обращаем внимания, это просто нам говорят, что пока не могут создать .hex (ну правильно, у нас пока и программы нет) и что при изменении настроек надо заново перекомпилировать проект (так мы ещё вообще ни разу не компилировали).
В поле ввода Language Tool Suite выбираем Microchip.
Нажимаем кнопку с названием Add Node… В появившемся окне, в проводнике справа выбираем папку проекта, в поле ввода слева пишем как будет называться файл с текстом программы на ассемблере, например my1. asm (не забываем указывать расширение), и жмём ОК. Всё, теперь мы подключили к проекту файл my1.asm (указали, что текст программы будет в этом файле).
На этом с Edit project заканчиваем, — нажимаем ОК.
Теперь нужно, собственно, создать файл с текстом программы (в менеджере проекта мы просто указали, что текст будет в таком-то файле, но фактически этот файл ещё не создан). Для этого идём в меню File и выбираем пункт New. Откроется окошко редактора с названием Untitled1. Выбираем меню File -> Save As…, в проводнике справа указываем папку проекта, в поле ввода File Name пишем название файла, которое мы указали в менеджере проекта, то есть в нашем примере это будет my1.asm. Если всё сделано правильно, то название окошка редактора поменяется с Untitled1 на \путь\my1.asm.
Вот и всё! Теперь осталось только набрать в окошке редактора текст программы, скомпилировать проект (меню Project->Build All) и, если в программе нет ошибок (что с первого раза бывает очень редко), то в папке проекта появится готовая прошивка (файл с расширением hex), которую можно заливать в контроллер.
- Часть 1. Необходимые инструменты и программы. Основы MPLAB
- Часть 2. Что такое микроконтроллер и как с ним работать
- Часть 3. Структура программы на ассемблере
- Часть 4. Разработка рабочей части программы. Алгоритмы
- Часть 5. Ассемблер. Организация циклов и ветвлений
- Часть 6. Как перевести контроллер в режим программирования и залить в него прошивку
Основы программирования микроконтроллера PIC | Блог о дизайне печатных плат
Создано: 20 мая 2018 г.
Обновлено: 25 января 2021 г.
Одна вещь, которую я усвоила из воспитания: научить чему-то ребенка может быть невероятно сложно. Хотя они могут быть очень заинтересованы, и у них может быть все время и ресурсы в мире, если ребенок не готов учиться или ему не хватает какого-то важного строительного блока, он может просто не усвоить навык или урок.
К счастью, программирование микроконтроллера PIC (MCU) значительно проще. С помощью правильных инструментов программирования, схемы и функциональной прошивки программист может заставить микроконтроллер PIC вести себя точно так, как нужно. Конечно, чтобы избежать ненужных хлопот и разочарований в будущем, по-прежнему важно придерживаться нескольких важных шагов.
Несмотря на появление одноплатных встроенных контроллеров, таких как Arduino, Raspberry Pi или BeagleBone, микроконтроллер PIC по-прежнему остается актуальным среди инженеров-электронщиков. Микроконтроллеры PIC производства Microchip отличаются простотой использования, универсальными функциями и экономичностью. Программирование микроконтроллеров PIC варьируется от простых 8-битных MUC до мощных 32-битных моделей.
Универсальность микроконтроллеров PIC сделала их популярными не только среди инженеров, но и среди любителей. Широкий спектр периферийных устройств, памяти и вычислительной мощности подходит практически для любого приложения. Программист, вероятно, найдет PIC-микроконтроллер в своей стиральной машине или системе сигнализации.
Программирование микроконтроллера PIC сегодня значительно проще, чем десять лет назад. В то время для некоторых микроконтроллеров PIC более низкого уровня требовалось специальное аппаратное обеспечение программатора PIC для внедрения прошивки. Но если вы начинаете с микроконтроллера PIC сегодня, загрузка прошивки в микроконтроллер обычно является простым процессом.
Вот инструменты, которые потребуются сегодня программисту для программирования PIC-микро:
1. MPLAB X IDE
MPLAB X IDE — это комплексная среда разработки от Microchip. Вам понадобится MPLAB X для написания вашей прошивки, компиляции и сборки, прежде чем вы сможете запрограммировать микроконтроллер PIC. В отличие от дорогих IDE, за которые в прошлом приходилось платить, MPLAB X IDE можно загрузить бесплатно.
Первый шаг — правильная прошивка.
2. PICKIT 4
PICKIT 4 — новейший внутрисхемный отладчик от Microchip PIC, который позволяет программисту эффективно загружать программу в микроконтроллер. Это улучшенная версия своего предшественника PICKIT 3 с добавленной функцией слота для SD-карт, что облегчает программирование на ходу для различных прошивок. При программировании микроконтроллера PIC в лаборатории вам необходимо подключить PICKIT 4 между USB-портом вашего компьютера и контактом программирования микроконтроллера.
3. Схема программирования
Контакты для программирования микроконтроллеров PIC указаны в техническом паспорте. Микроконтроллеры PIC поддерживают либо внутрисхемное последовательное программирование (ICSP), либо внутрисхемную отладку (ICD), причем последнее позволяет инженерам отлаживать прошивку в режиме реального времени. Важно включить схему интерфейса программирования (ICSP или ICD) в конструкцию, к которой будет подключаться PICKIT 4 или PICKIT 3.
Программирование микроконтроллера
Когда все инструменты программирования готовы (независимо от ICSP или ICD) и собран прототип, программирование микроконтроллера становится практически интуитивным. Традиционные инструменты программирования требуют от программиста включения оборудования перед загрузкой прошивки. Но программаторы PICKIT могут быть настроены на подачу питания на микроконтроллер до тех пор, пока он не превысит максимально допустимый ток.
Есть два способа загрузить микропрограмму в микроконтроллер PIC. В MPLAB X IDE программист найдет варианты «Запустить проект» или «Отладить проект», а нажатие «Запустить проект» скомпилирует и создаст вашу прошивку в рабочем режиме, а последний создаст отладочную версию прошивки. Вам понадобится время, чтобы убедиться, что конечный продукт запрограммирован с производственной версией прошивки.
Если все сделано правильно, ваш микроконтроллер начнет работать после загрузки программы.
Советы по проектированию схемы программирования на печатной плате
Расположение контактов программирования на PICKIT 3 и PICKIT 4 аналогично, хотя PICKIT 4 имеет два дополнительных зарезервированных контакта. Прошивка передается через сигнал PGD и PGC с выводом /MCLR, чтобы перевести микроконтроллер в режим программирования.
Программист может захотеть маршрутизировать как PGD, так и PGC параллельно и поддерживать одинаковую длину, чтобы обеспечить минимальное искажение сигнала. Кроме того, необходима правильная маркировка ориентации контактов для программирования на печатной плате, так как легко ошибочно подключить PICKIT в обратном порядке, рискуя повредить как печатную плату, так и PICKIT.
Использование отличного программного обеспечения для проектирования печатных плат, такого как Altium Designer ® , очень помогает вам в разработке схем программирования без помех для микроконтроллеров PIC.
Нужен совет по программированию микроконтроллера PIC? Поговорите с экспертом Altium Designer.
Какие инструменты нужны для разработки приложений PIC® MCU?
Какие инструменты нужны для разработки приложений PIC® MCU?
Типовая установка для разработки
Большинство установок для разработки состоит из трех основных компонентов:
- Компьютер с интегрированной средой разработки MPLAB® X
- Программатор/отладчик, например один из следующих:
- MPLAB REAL ICE™
- МПЛАБ МКБ 3
- MPLAB PICkit™ 3
- Целевая плата с микроконтроллером PIC ® на ваш выбор, например:
- Ваше собственное оборудование
- Демонстрационная плата Microchip
- Сторонняя демонстрационная плата
- Макет
Эта настройка позволяет разрабатывать код, программировать устройство и отлаживать код внутри схемы. Он обеспечивает наибольшую гибкость в отношении поддерживаемых устройств, поскольку инструменты программирования/отладки поддерживают весь спектр микроконтроллеров PIC на базе флэш-памяти, а несколько демонстрационных плат поддерживают все семейства микроконтроллеров PIC.
Стартовые наборы и доски любопытства
Если у вас ограниченный бюджет или вы хотите оценить конкретное устройство или семейство устройств для возможного использования в приложении, стартовые наборы и доски любопытства представляют собой экономичные и удобные средства для выполнения работы. Эти инструменты эффективно объединяют программатор/отладчик и целевое устройство и плату в единое целое. Хотя некоторые из них предоставляют средства расширения до более полной цепочки инструментов разработки, они ограничены целевым устройством, которое поставляется на плате. Однако целевое устройство обычно является «расширенным» членом семейства устройств, что позволяет использовать разработанный для него код на нескольких других подобных устройствах.
Какой программатор/отладчик мне подходит?
Хотя PICkit 3, ICD3 и REAL ICE имеют общий базовый набор функций, не все они поддерживают все доступные функции отладки. PICkit 3 является самым дешевым из семейства программаторов/отладчиков и поддерживает основные функции отладки, которые разработчики используют большую часть времени.