PIC-контроллер. Программирование PIC-контроллеров. Схемы PIC-контроллеров. Схемы и устройства на микроконтроллерах Программное обеспечение для работы с PIC-контроллером

Когда делаются схемы, необходимо, чтобы кто-то или что-то контролировало выполнение необходимых действий. Для человека это довольно проблематично, так как приходится использовать значительное количество различных элементов, позволяющих контролировать их работу (транзисторы, резисторы, тиристоры, диоды, конденсаторы и прочие). Но все сложные и большие схемы можно контролировать с помощью контроллеров (микроконтроллеров). Что они собой представляют, будет рассказано на примере семейств РІС. Итак, для чайников? Какая их схема и где они используются.

Что собой представляет PIC-микроконтроллер

PIC-контроллер (или микроконтроллер) является средством автоматизации выполнения определённых действий с помощью заранее подготовленной программы. Особенностью представителей этой линейки продукции является легкость в программировании и доступность всех необходимых функций для работы. Обрисовывая его конструкцию, следует заметить, что в его составе присутствует только один кристалл кремния (это характерная особенность всех микроконтроллеров). Кроме него, PIC-контроллер имеет определённое количество ножек. Часть из них могут использоваться как логические входы, часть как выходы, остальные имеют двустороннее применение. Ножки могут быть или цифровыми, или аналоговыми.

Для работы подавляющего большинства РІС-контроллеров необходимо стабильное напряжение - 5В. Этого хватает, чтобы он мог работать в своём обычном режиме и выполнять поставленную перед ним программу. напрямую от компьютера невозможно. Для этой цели используется программатор.

Семейства контроллеров

PIC-контроллер не существует в единичном экземпляре. Компания производитель выпускает значительный ассортимент микроконтроллеров, каждый из которых имеет свои характеристики, возможности и потенциальные цели применения. Количество самих семейств довольно велико и зависит от классифицирующего признака, который берётся как основной. Поэтому стоит сообщить только об основной классификации, в которой есть всего три семейства: 8-, 16- и 32-битные. Они в свою очередь делятся на другие, но поскольку сами семейства не являются темой статьи, то о них и не будет вестись разговор.

Где применяется

Благодаря своей универсальности PIC-контроллер может быть применён практически где угодно. Сами микроконтроллеры можно встретить в холодильниках, телевизорах, стиральных машинках. Но линейка продукции РІС имеет ту особенность, что схемы на PIC-контроллерах популярны среди радиолюбителей и робототехников-самоучек. С их помощью можно легко настроить работу узла или всего приспособления. Способствует такой популярности разумная цена, легкость программирования и значительное количество учебного материала.

Применить PIC-контроллер можно при создании робота-руки и в других поделках, которые можно сделать, ограничиваясь скромным бюджетом. Можно использовать и для чего-то производственного - довольно популярной является тема создания автоматических самодельных станков, управляемых микроконтроллером. Спектр использования является широким, и при грамотном подходе могут быть выполнены практически любые цели, поэтому схемы на PIC-контроллерах можно увидеть не только на любительских творениях.

Программное обеспечение для работы с PIC-контроллером

Минимальное необходимое программное обеспечение - это блокнот. Но всё же в силу свободного распространения можно воспользоваться и предлагаемым от компании-производителя программным средством MPLAB. Точнее, линейкой программных средств (среды разработки, компиляторы) MPLAB. Благодаря политике компании он распространяется бесплатно, но имеет определённые ограничения. Так, при краткосрочной демонстрационной версии можно попробовать со всеми возможностями, но после её окончания функционал программы будет урезан. В полноценной программе присутствует значительный инструментарий, который позволяет легко создавать программы, удобно искать различные проблемные участки и проводить оптимизацию кода. В зависимости от версии может быть прекращена функция оптимизации кода или уменьшено количество контроллеров, поддерживаемых программой. Ради правды стоит сказать, что компания оставляет поддержку исключительно самым популярным представителям.

Существует и ряд программного обеспечения, предоставляемого другими компаниями. В целом их функционал является похожим, но существуют и отличия. Так, многие высказывают недовольство, что MPLAB имеет нелояльный к пользователям дизайн. Поэтому производители делают ставку на сохранении обрезаемых функций и удобстве работы с их программным обеспечением.Программы для PIC-контроллеров весьма разнообразны, поэтому тут в значительной мере дело вкуса.

Создание программы для PIC-контроллера

Создавать специальную программу можно с помощью соответствующего программного обеспечения и даже в простом блокноте. Такая возможность существует благодаря тому, что он работает с такими языками программирования, как ассемблер и С. Главное отличие заключается в количестве прописываемой информации и лёгкости задания данных. Можно много услышать о сложности С, но ассемблер ещё сложнее и требует более тщательного подхода.

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

Программирование с помощью программатора

Но как перенести разработанную программу в сам микроконтроллер? Как происходит программирование микроконтроллеров? Специально для этой цели существуют специальные устройства - программаторы. Они посылают микроконтроллеру сигналы, которые изменяют ячейки в памяти в соответствии с программой. Для начала процесса перенесения данных необходимо вставить микроконтроллер в программатор, а его, в свою очередь, подключить к компьютеру. Затем с помощью программного обеспечения следует запустить прошивку. Обычно программирование PIC-контроллеров продолжается от тридцати секунд до двух минут.

Виды программаторов

Какой программатор выбрать для записи программы на микроконтроллер? Условно можно выделить три вида: самодельные, от компании-производителя и заводские от других компаний. Использование каждого из них имеет свои особенности.

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

Оригинальный программатор от компании-производителя сможет качественно выполнить свою работу для любого микроконтроллера. На него существует гарантия, и если после получения он не работает, то заменить не проблема. Но в порядке вещей, когда прошивка PIC-контроллеров им осуществляется без проблем.

Но останавливает от его приобретения довольно высокая цена.

Программаторы, выпущенные другими компаниями, имеют довольно широкий диапазон объектов, с которыми работают. Их особенностью является низкая цена и/или возможность работать с другими микроконтроллерами кроме PIC. Есть и поистине универсальные «монстры», которые могут обеспечивать работу различных типов, но из-за необходимости создания большого количества соединений их цена низкой не бывает.

Схематические особенности

И напоследок несколько слов о схемах изображений. Следует ориентироваться по ножкам на основании сопроводительной документации, так как схематически часто микроконтроллеры отличаются от реального построения выводов. Главным в таких случаях являются подписанные выводы, и именно по ним и следует ориентироваться при создании устройства.

В данной статье предлагается схема цифрового термометра на микроконтроллере AVR ATtiny2313, датчике температуры DS1820 (или DS18b20), подключенному к микроконтроллеру по протоколу 1-wire, и ЖК-дисплее 16x2 на контроллере HD44780. Описываемое устройство может найти широкое применение среди радиолюбителей.

Программа для микроконтроллера написана на ассемблере в среде AVR Studio. Монтаж выполнен на макетной плате, кварцевый резонатор на 4МГц, микроконтроллер ATtiny2313 можно заменить на AT90S2313, предварительно перекомпилировав исходный код программы. Погрешность датчика DS1820 около 0,5 С. В архиве также находится прошивка для случая если используется датчик DS18B20. Опрос датчика производится каждую секунду.

WAV-плеер собран на микроконтроллере AVR ATtiny85 (можно использовать ATtiny25/45/85 серии). У микроконтроллеров этой серии всего восемь ножек и два ШИМ (Fast PWM) с несущей 250kHz. Для управления картой памяти достаточно всего 6 проводов: два для питания и четыре сигнальные. Восемь ножек микроконтроллера вполне достаточно для работой с картой памяти, вывода звука и кнопки управления. В любом случае данный плеер очень прост.

С помощью данного измерителя ёмкости можно легко измерить любую ёмкость от единиц пФ до сотен мкФ. Существует несколько методов измерения емкости. В данном проекте используется интеграционный метод.

Главное преимущество использования этого метода в том, что измерение основано на измерении времени, что может быть выполнено на МК довольно точно. Этот метод очень подходит для самодельного измерителя ёмкости, к тому же он легко реализуем на микроконтроллере.

Данный проект был сделан по просьбе друга для установки на дверь в складское помещение. В дальнейшем было изготовлено ещё несколько по просьбе друзей и знакомых. Конструкция оказалась простой и надёжной. Работает данное устройство так: пропускает только те RFID-карты, которые были заранее занесены в память устройства.

Является одним из наиболее важных измерительных инструментов в лаборатории радиолюбителя и ремонтника электрооборудования, естественно после вольтметра и тестера. Большинство схем работают очень хорошо, но верхний предел измеряемых частот иногда оказывается слабоват. Современная приёмо-передающая электроника требует частотомер, способный брать более гигагерца. Про такой прибор мы сейчас и поговорим. Клик по схеме для её увеличения.

Электрическая схема частотомера на МК PIC16F870

Этот цифрвой ЖК частотомер обладает очень высокой скоростью измерения, его очень легко собрать и использовать. Счетчик чисел выполнен на основе ЖК-дисплея на 2 строки по 16 символов. Был использован HD44780 на основе очень распространенного дисплея. На микроконтроллере PIC16F870 собраны цепи управления подсчета и отображения результата.

Частотомер может измерять частоту вплоть до 2,5 ГГц . Это стало возможным благодаря предделителю на LMX2322 . Данная специализированная микросхема по даташиту берёт 2,5 ГГц с высокой чувствительностью.

На, казалось бы, морально устаревшем контроллере 2051, мы не раз задумывались о том, чтобы собрать похожий измеритель, но на более современном контроллере, чтобы снабдить его дополнительными возможностями. Критерий поисков, в основном, был только один - это широкие диапазоны измерения. Однако, все аналогичные схемы, найденные в интернете, имели даже программное ограничение диапазонов, причём довольно значительное. Для справедливости стоит заметить, что вышеназванный прибор на 2051 вообще не имел ограничений (они были лишь аппаратными), а программно в нём даже были заложены возможности измерения - мега и -гига значений!

Как-то, изучая в очередной раз схемы, мы обнаружили полезнейший прибор - LCM3, обладающий приличным функционалом при небольшом количестве деталей. Прибор умеет в широчайших пределах измерять индуктивность, ёмкость неполярных конденсаторов, ёмкость электролитических конденсаторов, ESR, сопротивления (в том числе - сверхмалые), оценивать качество электролитических конденсаторов. Работает прибор на известном принципе измерения частоты, однако интересен тем, что генератор собран на встроенном в микроконтроллер PIC16F690 компараторе. Возможно, параметры этого компаратора не хуже, чем у LM311, ведь заявленные диапазоны измерений таковы:

  • ёмкость 1пФ - 1нФ с разрешением 0,1пФ и точностью 1%
  • ёмкость 1нФ - 100нФ с разрешением 1пФ и точностью 1%
  • ёмкость 100нФ - 1мкФ с разрешением 1нФ и точностью 2,5%
  • ёмкость электролитических конденсаторов 100нФ - 0,1Ф с разрешением 1нФ и точностью 5%
  • индуктивность 10нГн - 20Гн с разрешением 10нГн и точностью 5%
  • сопротивление 1мОм - 30Ом с разрешением 1мОм и точностью 5%
Более подробно ознакомиться с описанием прибора на венгерском можно на странице:

Применённые в измерителе решения нам понравились, и мы решили не собирать новый прибор на атмеловском контроллере, а применить PIC. От этого венгерского измерителя была взята частично (а затем - и полностью) схема. Затем была декомпилирована прошивка, и на её основе написана новая, под собственные нужды. Однако, авторская прошивка настолько хороша, что с ней прибор, наверное, не имеет аналогов.

Нажмите для увеличения
Особенности измерителя LCM3:

  • при включении прибор должен находиться в режиме измерения ёмкости (если же он находится в режиме измерения индуктивности, то соответствующей надписью на экране попросит перевести с другой режим)
  • танталовые конденсаторы должны быть с возможно меньшим ESR (менее 0,5 Ом). ESR конденсатора CX1 33нФ также должен быть низким. суммарный импеданс этого конденсатора, индуктивности и кнопки переключения режимов не должен превышать 2,2 Ом. Качество этого конденсатора вцелом должно быть очень хорошим, он должен иметь малый ток утечки, поэтому стоит выбирать из высоковольтных (например, на 630 вольт) - полипропилен (MKP), стирофлекс-полистирол (KS, FKS, MKS, MKY ?). Конденсаторы C9 и C10, как написано на схеме, - полистирол , слюда, полипропилен. Резистор сопротивлением 180 Ом должен иметь точность 1%, резистор 47 Ом также должен быть 1%.
  • прибор оценивает "качество" конденсатора. точной информации, какие именно параметры рассчитываются, нет. вероятно, это - утечка, тангенс угла потерь диэлектрика, ESR. "качество" отображается в виде закрашенного стаканчика: чем меньше он заполнен, тем лучше конденсатор. у неисправного конденсатора стаканчик закрашен полностью. однако, такой конденсатор можно применять в фильтре линейного стабилизатора.
  • дроссель, используемый в приборе, должен быть достаточно габаритным (выдерживать ток не менее 2А без насыщения) - в виде "гантельки" или на броневом сердечнике.
  • иногда при включении прибор выдаёт на экране "Low Batt". при этом нужно отключить и снова включить питание (вероятно, глюк).
  • имеется несколько версий прошивки данного прибора: 1.2-1.35, причём последняя, по словам авторов, оптимизирована для дросселя на броневом сердечнике. однако, на дросселе в виде гантельки она также работает и только в этой версии оценивается качество электролитических конденсаторов.
  • к прибору возможно подключить небольшую приставку для внутрисхемного (без выпаивания) измерения ESR электролитических конденсаторов. Она понижает напряжение, прилагаемое к проверяемому конденсатору, до 30мВ, при котором полупроводники не открываются и не влияют на измерение. Схему можно найти на авторском сайте.
  • Режим измерения ESR включается автоматически перетыканием щупов в соответствующее гнездо. Если при этом вместо электролитического конденсатора будет подключен резистор (до 30 Ом), то прибор автоматически переключится в режим измерения малых сопротивлений.
Калибровка в режиме измерения ёмкости:
  • нажать кнопку калибровки
  • отпустить кнопку калибровки
Калибровка в режиме измерения индуктивности:
  • замкнуть щупы прибора
  • нажать кнопку калибровки
  • дождаться появления сообщения R=....Ом
  • отпустить кнопку калибровки
  • дождаться сообщения об окончании калибровки
Калибровка в режиме измерения ESR:
  • замкнуть щупы прибора
  • нажать кнопку калибровки, на экране будут отображены напряжение, прилагаемое к измеряемому конденсатору (рекомендуемые значения - 130...150 мВ, завитит от дросселя, который нужно размещать подальше от металлических поверхностей) и частота измерения ESR
  • дождаться сообщения R=....Ом
  • отпустить кнопку калибровки
  • показания сопротивления на экране должны стать нулевыми
Реализована также возможность указать ёмкость калибровочного конденсатора вручную. Для этого собирается следующая схема и подключается к разъёму программирования (схему можно и не собирать, а просто замыкать нужные контакты):


Затем:

  • подключить схему (либо замкнуть vpp и gnd)
  • включить прибор и нажать кнопку калибровки, при этом на экране появится значение калибровочной ёмкости
  • кнопками DN и UP скорректировать значения (возможно, в разных версиях прошивки для ускоренной корректировки работают основные кнопки calibrate и mode)
  • в зависимости от версии прошивки, возможен и другой вариант: после нажатия кнопки калибровки, на экране появляется значения калибровочной ёмкости, которое начинает расти. Когда доходит до нужного значения, нужно остановить рост кнопкой mode и разомкнуть vpp и gnd. Если же не успели вовремя остановить и перескочили нужное значение, то кнопкой калибровки можно его уменьшить
  • отключить схему (либо разомкнуть vpp и gnd)
Авторская прошивка v1.35: lcm3_v135.hex

Печатная плата: lcm3.lay (один из вариантов с форума vrtp).

На прилагаемой печатной плате контрастность дисплея 16*2 задаётся делителем напряжения на резисторах сопротивлением 18к и 1к. При необходимости нужно подобрать сопротивление последнего. FB - ферритовый цилиндрик, вместо него можно поставить дроссель. Для большей точности вместо резистора 180 Ом используются два по 360 в параллель. Перед установкой кнопки калибровки и переключателя режимов измерения, обязательно проверьте тестером их распиновку: часто встречается такая, которая не подходит.


Корпус для прибора, следуя традиции (раз , два), сделан из пластмассы и окрашен краской "чёрный металлик". Изначально прибор питался от зарядного устройства для мобильного телефона 5В 500мА через гнездо mini-USB. Это - не лучший вариант, так как питание подключалось к плате измерителя уже после стабилизатора, а насколько оно стабильно в зарядке от телефона - неизвестно. Затем внешнее питание было заменено на литиевый аккумулятор с модулем зарядки и повышающим преобразователем , возможные помехи от которого прекрасно убираются обычным LDO стабилизатором , присутствующим на схеме.


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

В продолжение темы:
Apple

Информация о марке, модели и альтернативных названиях конкретного устройства, если таковые имеются. ДизайнИнформация о размерах и весе устройства, представленная в разных...

Новые статьи
/
Популярные