Микроконтроллеры PIC книги и статьи

PIC микроконтроллеры, обладают гарвардской архитектурой и производятся фирмой Microchip Technology Inc. Название PIC является сокращением от английской фразы peripheral interface controllers -в переводи на великий и могучий "контроллеры интерфейса периферии". PIC контроллеры под маркой Microchip выпускают 8-, 16- и 32-битовые микроконтроллеры, а также цифровые сигнальные контроллеры DSC. Микроконтроллеры PIC имеют следующие значимые плюсы: хорошая преемственность разных семейств: полная программная совместимость и общие средства разработки, в том числе бесплатная среда IDE MPLAB, общие библиотеки, общие стеки популярных протоколов передачи, совместимость по периферии, выводам, питающим напряжениям. Номенклатура контроллеров насчитывает более 500 различных видов со всевозможными вариантами периферии, различными размерами памяти, производительностью, количеством выводов, диапазонами питающих напряжений, рабочими температурами и т.п.

Осваиваем PIC контроллер

Рассмотрим самый простой контроллер сери ПИК PIC16C84 или PIC16F84.

Наличие FLASH-памяти, позволяет перепрограммировать его за считанные секунды. Количество циклов перезаписи микроконтроллера 1000. Из его 18 выводов 13 можно использоваться как разряды ввода - вывода общего назначения. Когда они прошиты на вывод, то допускают ток уровня логической единицы "1" до 20мА и ток уровня логического нуля "0" до 25мА (более чем достаточный для подключения, например, светодиодов). Это дает возможноть разрабатывать на этом контроллере простые и дешевые электронные устройства и делает его идеальным кандидатом для желающих изучить и понять принципы работы с PIC микроконтроллером. Цоколевка выводов 8 битных микроконтроллеров показана ниже:

Цоколевка PIC16C84 PIC16F84

Контакты RA* и RB* - это ввод и вывод, связанные с регистрами контроллера PORTA и PORTB соответственно (вывод RA4 можно применять как вход внутреннего таймера, а RB0 - использовать в роли источника прерываний). VDD и VSS - питание (+Uпит и GND). Серия микроконтроллеров 16x84 работает в широком интервале напряжений, но обычно VSS подсоединен к 0 В, а VDD - +5В. Вывод главного сброса /MCLR обычно подсоединен к VDD (напрямую или через сопротивление), т.к МК содержит надежную схему сброса при подачи питающего напряжения. Контакты OSC1 и OSC2 подсоединяются к генератору тактовой частоты и могут быть настроены для различных его типов, включая режимы резонатора и RC-генератора. Простая схема, с применением контроллера PIC 16C84 представлена на рисунке ниже:

Схема, кроме микросхемы, имеет только RC-генератор и один вывод RB4 подключен к светодиоду. К нему имеется изумительно короткая (из 6 слов) программа для MPASM на асемблере - мигания светодиода.

Наберите этот код в любом текстовом редакторе, сохраните с расширением ASM (LIGHTS.ASM), затем проассемблируйте его с помощью программы MPASM (используйте команду "MPASM LIGHTS.ASM") для получения HEX файла, который можно залить с помощью программатора в микроконтроллер.

Подав питание на схему, светодиод будет мигать.

Программатор PIC-микроконтроллеров

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

MPLAB среда разработки для микроконтроллеров PIC

Эта фирменная и бесплатная утиита является отличной средой разработки и отладки программ для всех микроконтроллеров семейства PIC, выпускаемых компанией Microchip Technology. MPLAB состоит из отдельных приложений, но связанных друг с другом и состоит из компилятора с языка ассемблер, текстового редактора, симулятора работы прошивки контроллера, Кроме того можно использовать компилятор с CИ.

PIC-микроконтроллеры. Практика применения

Автором Тавернье К. преподнесена техническая информация о программных средствах разработки на базе PIC-микроконтроллеров. В приложениях имеется коллекция схемных и программных решений на PIC-микроконтроллерах, реализованны типовые интерфейсы. В книге расписано очень много примеров программной реализации самых различных функций: организация прерываний, подпрограммы расширенной арифметики, арифметики с плавающей запятой и т.д. Для закрепления теории на практике даются несложные устройства, в том числе часы-будильник и многоканальный цифровой вольтметр.

Питание и тактирование PIC-микроконтроллеров
Разработка приложений. Какой микроконтроллер нужно выбрать
Схемные решения интерфейсов микроконтроллеров
Управление светодиодами и оптронами, реле, цифровыми иникаторами, АЦП
Взаимодействие с периферией по последовательному интерфейсу
Беззнаковое умножение 8-разрядных чисел
Знаковое и беззнаковое умножение 16-разрядных чисел
Деление, сложение и вычитание 16-розрядных чисел
Операции с плавающей запятой
Преобразование двоично-десятичных кодов в двоичные
Готовые схемотехнические решения: часы-будильник, реализация интрерфейса и2ц, вольтметр со светодиодной индикацией
Управление шаговыми двигателями
Простой самоучитель по PIC микроконтроллерам + программы используемые в курсе
Что такое микроконтроллер и как он работает
Система команд PIC16F84A
Что такое программа и правила ее составления. Пример создания программы автоколебательного мультивибратора. Директивы.
Интегрированная среда проектирования MPLAB IDE и работа в ней
Пример создания программы
Работа в симуляторе. Отладка программы
Пример разработки программы с уходом в прерывания
Организация вычисляемого перехода.
Работа с EEPROM памятью данных
Как работает цифровой компаратор
Циклический сдвиг. Операция умножения
Введение в принцип построения подпрограммы динамической индикации. Косвенная адресация
Преобразование двоичных чисел в двоично-десятичные. Окончательное формирование текста подпрограммы динамической индикации
Принцип счета. Работа с таймером TMR0. Принцип установки групп команд счета в текст программы
Заец Н.И Радиолюбительские конструкции на PIC-микроконтроллерах
Все четыре книги, кроме того в архив добавлены все исходники описываемых программ и другая дополнительная справочная информация. В архиве также вы найдете исходные тексты программ и «прошивки» контроллеров. Справочные материалы на все микроконтроллеры рассмотренные во всех четырех книгах (PIC12c67x PIC16c432 PIC16c433 PIC16c505 PIC16c54_58 PIC16c554_558 PIC16c620_622 PIC16c623_625 PIC16c62B_72A PIC16c63a_65b_73b_74b PIC16c64x_66x PIC16c6x PIC16c717_77x PIC16C71xx PIC16c72 PIC16c72_77 PIC16c745_765 PIC16c77x PIC16c781_782 PIC16c92x PIC16F630_676 PIC16f7x PIC16f84a PIC16f85_86 PIC16F87xA PIC16hv540 PIC16Lc74b PIC17c4x PIC17c752_756 PIC17c7xx PIC17LC752P16 PIC18c601_801 PIC18cXX8)
Введение в CAN 2.0 интерфейс
Модуль CAN в микроконтроллерах PIC
Програмная реализация I2C интерфейса и краткий его обзор
Микросхемы KeeLoq с технологией "прыгающего кода"
Универсальная последовательная шина USB в микроконтроллерах PIC и програмное обеспечение для работы с USB
Модули х-разрядного АЦП в микроконтроллерах PIC
Рекомендации по работе с АЦП в микроконтроллерах PIC
А также софт для програмирования описанных в книгах PIC-Микроконтроллеров IC-Prog и PonyProg2000
Тим Уилмсхерст. Разработка встроенных систем с помощью микроконтроллеров PIC

К вопросам отладки разработчики относятся по-разному. Одни считают, что достаточно внимательно проанализировать исходный текст программы, проверить формирование сигналов на выводах МК, и можно исправить все ошибки. Другие используют наборы специальных подпрограмм, которые вызываются в контрольных точках и выдают определённым способом (например, выводом на индикатор или последовательный канал связи) информацию о состоянии ресурсов МК. Кстати на этом основана технология ICD (In-Circuit Debugger - внутрисхемная отладка), реализуемая в некоторых МК фирм Motorola и Microchip. Но при любом из вышеуказанных способов отладки возникает одна существенная проблема - необходимость перепрограммирования МК после внесения в программу даже незначительных изменений. Особенно эта проблема актуальна для однократно программируемых МК. Правда в последнем случае отладку можно вести, скажем, на МК с FLASH-памятью, но всё равно время, затрачиваемое на программирование достаточно велико и порой достигает нескольких минут. Кроме того, МК ,как правило, нужно извлечь из отлаживаемой схемы, подключить к программатору, а затем вставить обратно. Те, кто имел дело с программированием на ПК, особенно чувствуют разницу. Например, при программировании в среде Borland C++ 3.1 (BC++) для запуска отлаживаемой программы достаточно нажать комбинацию клавиш Ctrl+F9, и через несколько секунд она уже будет работать (если конечно не содержит ошибок). Хотелось бы получить подобный результат и при написании управляющих программ МК. И это возможно благодаря применению ВСЭ, представляющего собой программно-аппаратное средство, способное замещать собой эмулируемый МК в реальном устройстве, с которым его соединяют кабелем со специальной эмуляционной головкой. Использование такого эмулятора ничем не отличается от использования реального МК, за исключением того, что модифицированная программа перезагружается во ВСЭ почти мгновенно.

Конспект лекций - Микроконтроллеры семейства PIC32

Лекция 1 - вводная

Microchip давно известна отечественным электронщикам благодаря широко распространенной линейке дешевых 8-битных микроконтроллеров, которые нашли огромное применение в различных устройствах терморегуляторов, приборов малой автоматизации, сенсоров и т.п. Чтобы не отстать от своих основных конкурентов, Microchip в 2007 году представила электронному миру свои новые 32-битные микроконтроллеры семейства PIC32.

В линейке PIC32MX имеется огромное количество устройств от PIC32MX1** до PIC32MX7** с различным объемом памяти (от 16 КБ флеша и 4096 байт ОЗУ до 512 КБ флеша и 131 КБ ОЗУ), периферийными возможностями и корпусными исполнением. В общем, присутствуют модели практически для любого приложения.

Полный вариант лекции с описанием типового подключения МК и примером его программирования можно взять здесь:

Лекция 2 - Микроконтроллеры семейства PIC32. Работа с таймерами.

С помощью таймеров реализовывают отсчет времени, организовывают прерывания, формируют сигналы с широтно-импульсной модуляцией и т.п. В контроллерах PIC-32 имеется два типа таймеров – таймеры A (по сути, он вроде как и один – TMR1) и таймеры типа B (TMR2, TMR3, TMR4, TMR5). Все таймеры 16-разрядные, тактируются от внешнего или внутреннего источника и вызывают прерывания. Подробней

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