Однокристальные микроконтроллеры семейства PIC: состав и общая характеристика. Микроконтроллер PIC16F84A: основные параметры, внутренняя структура, назначение выводов.
Микроконтроллеры семейств PIC (Peripheral Interface Controller) компании Microchip объединяют все передовые технологии микроконтроллеров: электрически программируемую пользователем память программ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры. Широкая номенклатура изделий обеспечивает использование микроконтроллеров в устройствах, предназначенных для разнообразных сфер применения.
В настоящее время компания Microchip выпускает пять основных семейств 8-разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:
· PIC12CXXX – семейство микроконтроллеров, выпускаемых в миниатюрном 8-выводном исполнении. Эти микроконтроллеры выпускаются как с 12-разрядной (33 команды), так и с 14-разрядной (35 команд) системой команд. Содержат встроенный тактовый генератор, таймер/счетчик, сторожевой таймер, схему управления прерываниями. В составе семейства есть микроконтроллеры со встроенным 8-разрядным четырехканальным АЦП;
· PIC16C5X – базовое семейство микроконтроллеров с 12-разрядными командами (33 команды), выпускаемое в 18-, 20- и 28-выводных корпусах. Представляют собой простые недорогие микроконтроллеры с минимальной периферией;
· PIC16CXXX – семейство микроконтроллеров среднего уровня с 14-разрядными командами (35 команд). Наиболее многочисленное семейство, объединяющее микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов, таймеры/счетчики, широтно-импульсные модуляторы, сторожевые таймеры, и так далее;
· PIC17CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (58 команд), работающие на частоте до 33 МГц, с объемом памяти программ до 16 Кслов. Кроме обширной периферии, 16-уровневого аппаратного стека и векторной системы прерываний, почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8х8, выполняющий операцию умножения за один машинный цикл.
· PIC18CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (75 команд) и встроенным 10-разрядным АЦП, работающие на частоте до 40 МГц. Содержат 31-уровневый аппаратный стек, встроенную память команд до 32 Кслов и способны адресовать до 4 Кбайт памяти данных и до 2 Мбайт внешней памяти программ. Расширенное RISC-ядро микроконтроллеров данного семейства оптимизировано под использование нового Си-компилятора.
Большинство PIC-контроллеров выпускаются с однократно программируемой памятью программ (OTP-ROM). Для целей отладки предлагаются более дорогие версии с ультрафиолетовым стиранием и Flash-памятью. Полный список выпускаемых модификаций PIC-контроллеров включает порядка пятисот наименований. Поэтому продукция компании перекрывает почти весь диапазон применений 8-разрядных микроконтроллеров.
Наиболее распространенными семействами PIC-контроллеров являются PIC16CXXX.
Типичным представителем микроконтроллеров семейства PIC16CXXX является PIC16F84, который в настоящее время выпускается с маркировкой PIC16F84A.
Микроконтроллер PIC16F84A имеет Гарвардскую архитектуру с RISC-процессором и обладает следующими основными характеристиками:
· используются только 35 простых команд;
· рабочая частота от 0 до 20 МГц;
· 1024 × 14 бит память программ, выполненная на основе электрически перепрограммируемой флэш-памяти;
· 15 восьмиразрядных регистров специальных функций (РСФ);
· восьмиуровневый аппаратный стек;
· 68 восьмиразрядных регистров общего назначения (РОН);
· четыре источника прерывания: внешний вход RB0/INT, переполнение таймера TMR0, изменение сигналов на линиях порта B, завершение записи данных в память EEPROM;
· 64 × 8 бит электрически перепрограммируемая EEPROM память данных;
· 8-битный таймер/счетчик TMR0 с 8-битным программируемым предварительным делителем.
Микроконтроллер PIC16F84A обладает развитыми возможностями ввода/вывода:
· 13 линий ввода/вывода с индивидуальной установкой направления обмена;
· выходной ток до 25 мА, достаточный для управления светодиодами.
Специализированные микроконтроллерные функции включают следующие возможности:
· автоматический сброс при включении (Power-on-Reset);
· таймер включения при сбросе (Power-up-Timer);
· таймер запуска генератора (Oscillator Start-up Timer);
· сторожевой (Watchdog) таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
· бит секретности для защиты кода;
· экономичный режим SLEEP;
· выбираемые пользователем биты для установки режима возбуждения встроенного генератора;
· встроенное устройство для программирования Flash/EEPROM памяти программ и данных с использованием только двух выводов.
КМОП технология обеспечивает PIC16F84A дополнительные преимущества:
· статический принцип работы;
· широкий диапазон напряжений питания: от 2,0 до 6,0 В;
· низкое энергопотребление: менее 2 мА при 5 В и 4 МГц, менее 1 мкА для SLEEP-режима при 2 В.
Архитектура PIC16F84A основана на принципе раздельных шин и областей памяти для данных и команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит, что обеспечивает выборку 14-разрядной команды за один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один машинный цикл, исключая команды передачи управления.
Микроконтроллер содержит 8-разрядное АЛУ и рабочий регистр W. АЛУ может выполнять операции сложения, вычитания, сдвига и логические операции. В зависимости от результата операции АЛУ может изменять значения битов регистра STATUS (флагов): переноса C (Carry), десятичного переноса DC (Digit carry) и нуля Z (Zero).
Микроконтроллер PIC16F84A выпускается в 18-выводном пластмассовом корпусе типа DIP-18. Его условное графическое обозначение на схемах имеет следующий вид:
Назначение выводов следующее:
OSC1/CLKIN – вход внутреннего тактового генератора, RC-цепочки или вход внешнего тактового сигнала.
OSC2/CLKOUT – вход внутреннего тактового генератора. В RC-режиме – выход ¼ частоты генератора.
- сигнал сброса микроконтроллера.
RA0, RA1, RA2, RA3, RA4 – двунаправленные выводы порта PORTA. Вывод RA4/T0CKI может иметь альтернативную функцию: тактовый вход таймера/счетчика TMR0.
RB0 – RB7 – двунаправленные выводы порта PORTB. Вывод RB0/INT может иметь альтернативную функцию: вход внешнего запроса прерывания.
UDD – положительное напряжение питания.
USS – общий провод (земля).