Описание микроконтроллера PIC16F676
Благодаря наличию 8-канального 10-разрядного АЦП микроконтроллер PIC16F676 нашел широкое применение в измерительной технике, в лабораторных блоках питания, зарядных устройствах и т.п. Внутренняя структура и назначение выводов PIC16F676 совпадают с PIC16F630. Хотя PIC16F630 дороже PIC16F676 примерно на 20%, он имеет более ограниченные возможности. Программировать эти МК можно с помощью очень распространенного программатора PonyProg2000.
Микроконтроллеры PIC16F676 и PIC16F630 являются представителями, так называемого „среднего семейства» микроконтроллеров (Mid-Range MCU Family) фирмы Microchip Technology Inc.
Ядром МК этого семейства является высокопроизводительный RISC-процессор, ассемблер для которого содержит всего 35 инструкций (команд), что заметно упрощает его освоение. Именно поэтому многие специалисты рекомендуют начинать изучение программирования микроконтроллеров с МК этого семейства.
Все команды состоят из одного бинарного 14-тиразрядного слова и исполняются за один машинный цикл, кроме инструкций перехода, которые выполняются за два машинных цикла. Минимальная длительность машинного цикла равна 200 нс. Каждый машинный цикл выполняется за четыре периода тактового генератора МК, т.е. за четыре такта. Тактовая частота как собственного генератора МК PIC16F676/630, так и внешнего тактового сигнала может быть в пределах от нескольких Гц до 20 МГц.
Программно можно осуществлять выбор одного из шести источников тактового сигнала:
- RC — внешний RC генератор (два режима);
- INTOSC — внутренний генератор 4 МГц (два режима);
- EC — внешний тактовый сигнал;
- XT — стандартный резонатор;
- HS — высокочастотный резонатор;
- LP — низкочастотный резонатор.
Диапазон напряжения питания МК PIC16F630 и PIC16F676 составляет 2,0…5,5 В. Микроконтроллеры имеют низкое энергопотребление:
- менее 1,0 мА при напряжении питания 5,5 В и тактовой частоте 4 МГц;
- 400 мкА (типовое) при напряжении питания 2,0 В и тактовой частоте 4 МГц;
- 100 мкА (типовое) при напряжении питания 2,0 В и тактовой частоте 1 МГц;
- 8,5 мкА (типовое) при напряжении питания 2,0 В и тактовой частоте 32 кГц;
- менее 1,0 мкА в режиме энергосбережения (SLEEP);
- типовое значение тока в дежурном (Standby) режиме при напряжении питания 2 В равно 1 нА.
Эти МК содержат два 6-разрядных порта: A (выводы RA0… RA5) и С (выводы RС0… RС5). Большинство выводов портов микроконтроллеров являются многофункциональными. Конкретное назначение каждого из них задается программно.
При работе выводов порта А на вход для каждого вывода программно (с отдельным битом включения) могут быть подключены внутренние подтягивающие резисторы.
МК PIC16F630/676 содержат Flash-память программ объемом 1024 х 14 бинарных слов и память данных EEPROM объемом 64 байта. Flash-память допускает перезапись 100 000 раз, а EEPROM — 1000000. Записанная в EEPROM и FLASH-память информация сохраняется более сорока лет.
Эти контроллеры поддерживают прерывание по изменению уровня сигнала, срабатывающее от четырех источников. Для работы с прерываниями и подпрограммами PIC16F630/676 имеют 8-уровневый аппаратный стек. Все это обеспечивает прямой, косвенный и относительный режимы адресации команд и данных.
Периферия PIC16F630/676 включает в себя 8-битный таймер-счетчик (Timer0), 16-битный таймер-счетчик (Timer1), 12 сильноточных портов ввода-вывода, настраиваемых индивидуально, один аналоговый компаратор с интегрированным программируемым источником опорного напряжения и программно мультиплицируемыми входами и выходом.
Кроме того, МК PIC16F676 содержит 10-битный модуль АЦП с 8-ю программируемыми каналами. Сразу заметим, что главное отличие PIC16F676 от PIC16F630 — это возможность программирования 8-ми из 12-ти выводов портов как входов АЦП (AN0…AN7). Кроме того, PIC16F630 не содержит модуль АЦП.
Можно отметить следующие особенности МК PIC16F630/676:
– сброс при включении питания (POR);
– сброс по снижению напряжения питания (BOR);
– наличие таймера включения питания (PWRT), таймера запуска генератора (OST) и сторожевого таймера (WDT) с собственным встроенным RC-генератором (для повышения надежности работы МК);
– режим энергосбережения (SLEEP) с быстрым выходом из этого режима при работе с внутренним генератором 4МГц.
PIC16F630 и PIC16F676 имеют мультиплицируемый вывод MCLR и программируемую защиту кода. Они могут программироваться прямо на плате изделия через последовательный интерфейс ICSPT с использованием всего двух выводов МК. Отладка этих МК также может производиться прямо на плате через последовательный двухпроводной интерфейс ICD.
Микроконтроллеры PIC16F676 и PIC16F630 изготавливаются в 14-выводных корпусах PDIP, SOIC и TSSOP. Расположение выводов этих МК приведено на рис. 4, а назначение — в таблице 2.
Рис. 4. Изображение микроконтроллеров PIC16F676 и PIC16F630 изготовленные в 14-выводных корпусах PDIP, SOIC и TSSOP.
Таблица 2. Назначение выводов МК PIC16F630 и PIC16F676
№ вывода | Обозначение | Функция | Описание |
RA0/AN0/CIN+/ICSPDAT | RA0 | Двунаправленный вход-выход с программируемым подтягивающим резистором и вход прерываний | |
AN0 | Вход канала 0 АЦП | ||
CIN+ | Неинвертирующий вход компаратора | ||
ICSPDAT | Вход-выход данных ICSP | ||
RA1/AN1/CIN-/VREF/ICSPCLK | RA1 | Двунаправленный вход-выход с программируемым подтягивающим резистором и вход прерываний по изменению уровня сигнала | |
AN1 | Вход канала 1 АЦП | ||
CIN- | Инвертирующий вход компаратора | ||
VREF | Вход внешнего опорного напряжения | ||
ICSPCLK | Вход тактовых импульсов ICSP | ||
RA2/AN2/COUT/T0CKI/INT | RA2 | Двунаправленный вход-выход с программируемым подтягивающим резистором и вход прерываний по изменению уровня сигнала | |
AN2 | Вход канала 2 АЦП | ||
COUT | Выход компаратора | ||
T0CKI | Вход тактовых импульсов таймера 0 (Timer0) | ||
INT | Вход внешнего прерывания | ||
RA3/-MCLR/VPP | RA3 | Вход 3 порта А и вход прерываний по изменению уровня сигнала | |
-MCLR | Вход сигнала внешнего сброса (MasterClear) | ||
VPP | Вход напряжения программирования | ||
RA4/-T1G/AN3/OSC2/CLKOUT | RA4 | Двунаправленный вход-выход с программируемым подтягивающим резистором и вход прерываний по изменению уровня сигнала | |
-T1G | Вход таймера 1 | ||
AN3 | Вход канала 3 АЦП | ||
OSC2 | Выход кварцевого генератора | ||
CLKOUT | Выход тактовых импульсов | ||
RA5/T1CKI/OSC1/CLKIN | RA5 | Двунаправленный вход-выход с программируемым подтягивающим резистором и вход прерываний по изменению уровня сигнала | |
T1CKI | Вход тактовых импульсов таймера 1 (Timer1) | ||
OSC1 | Вход кварцевого генератора | ||
CLKIN | Вход внешних тактовых импульсов и подключения времязадающей RC-цепи | ||
RC0/AN4 | RC0 | Двунаправленный вход-выход | |
AN4 | Вход канала 4 АЦП | ||
RC1/AN5 | RC1 | Двунаправленный вход-выход | |
AN5 | Вход канала 5 АЦП | ||
RC2/AN6 | RC2 | Двунаправленный вход-выход | |
AN6 | Вход канала 6 АЦП | ||
RC3/AN7 | RC3 | Двунаправленный вход-выход | |
AN7 | Вход канала 7 АЦП | ||
RC4 | RC4 | Двунаправленный вход-выход | |
RC5 | RC5 | Двунаправленный вход-выход | |
VSS | VSS | Корпус | |
VDD | VDD | Напряжение питания |