Види органічних сполук
СОДЕРЖАНИЕ: Содержание PIC-Контроллеры .. ИТАК, вкратце - ЧТО ТАКОЕ PIC ?Содержание
PIC-Контроллеры......................................................................................
ИТАК, вкратце - ЧТО ТАКОЕ PIC ?........................................................
Семейство PIC16CXX...............................................................................
Описание контроллера PIC16C84....................................................
Обзор характеристик..................................................................................
Структурная схема PIC16C84..................................................................
Разводка ножек..........................................................................................
Назначение ножек......................................................................................
Обзор регистров и ОЗУ............................................................................
RTCC таймер/счетчик................................................................................
Организация встроенного ПЗУ.................................................................
Данные в EEPROM....................................................................................
Организация прерываний.........................................................................
Обзор регистров/портов...........................................................................
Обзор команд и обозначения....................................................................
Условия сброса..........................................................................................
Watch Dog таймер......................................................................................
Типы генераторов......................................................................................
Регистр OPTION........................................................................................
Конфигурационное слово.........................................................................
Индивидуальная метка..............................................................................
Защита программ от считывания.............................................................
Режим пониженного энергопотребления..................................................
Максимальные значения электрических параметров..............................
Параметры постоянного тока...................................................................
Скоростные характеристики.....................................................................
Отличия контроллера PIC16C71......................................................
Структурная схема PIC16C71.................................................................
Разводка ножек..........................................................................................
Назначение ножек......................................................................................
Обзор регистров и ОЗУ............................................................................
Организация прерываний.........................................................................
Обзор регистров/портов...........................................................................
Аналого-цифровой преобразователь (АЦП)...........................................
Максимальные значения электрических параметров..............................
Параметры постоянного тока...................................................................
Скоростные характеристики.....................................................................
Характеристики аналого-цифрового преобразователя...........................
Другие контроллеры...........................................................................
Области применения..........................................................................
Поддержка разработки......................................................................
PIC-Контроллеры [1]
Несколько лет назад, в мире однокристальных микропроцессоров появилось новое семейство созданное американской фирмой Microchiр. Новичок очень удачно вписался в палитру выпускаемых микроконтроллеров и, невзирая на традиционно жесткую конкуренцию со стороны признанных авторитетов, бурно прогрессирует. Об этом свидетельствует и постоянное появление новых представителей семейства PIC, и постоянный рост объемов продаж на мировых рынках. В области микроконтроллеров т.н. ”нижнего уровня” микроконтроллеры семейства PIC успешно конкурируют с известными образцами фирм Интел и Моторола, Сименс и Филипс. Что делает PIC столь привлекательным для массовых изделий? Практически идеальное сочетание высочайшего быстродействия, низкого энергопотребления, высокой степени интеграции памяти и периферийных устройств в малом корпусе и при всем этом - низкой цены.
Микроконтроллеры PIC - это чемпионы производительности среди однокристальных микро-ЭВМ широкого применения. Это достигнуто в основном из-за их RISC (reduced instruction set computer ) архитектуры. Она предполагает, что все инструкции имеют одинаковую длину ( 14 бит) и выбираются за один машинный цикл. Это широкий и весьма тщательно подобранный набор, специально предназначенный для задач управления, ввода/вывода сигналов. Здесь нет сложных арифметических действий типа умножения, их Вам придется программировать самостоятельно или позаимствовать из библиотеки подпрограмм.
RISC архитектура дает производительность порядка 6 млн. оп./с., и оставляет по скорости далеко позади прежних фаворитов. Приведем выдержки из сравнительного анализа, проведенного фирмой Microchiр, который иллюстрирует скоростные преимущества PIC контроллеров и компактность их программного кода. Сравнивались участки функционально одинаковых программ для разных однокристальных ЭВМ. Использовались такие
типичные тесты: - упакованное BCD преобразование, “ощупывание” бита с ветвлением по нему, цикл по счетчику, побитный сдвиг байта, программная выдержка времени.
Сравнивался PIC16C5x @ 20MHz и:
· Motorola MC68HC04 @ 11mhz,
· Motorola MC68HC05 @ 4.2MHz,
· Intel 8048 @ 11mhz,
· Zilog Z86Cxx @ 12MHz,
· National COP800 @20mhz.
Результаты сравнительного анализа однокристальных микро ЭВМ и PIC контроллера приведены ниже.
PIC16Cx |
COP800 |
MC86HC04 |
MC68HC05 |
Z86Cxx |
8048 |
|
Относительный размер кодов |
1.00 |
1.29 |
1.82 |
2.24 |
1.51 |
1.58 |
Скорость выполнения |
1.00 |
0.11 |
0.02 |
0.14 |
0.21 |
0.11 |
Внутренняя программная память контроллеров заполняется самим пользователем и бывает двух исполнений: однократно программируемое ПЗУ и многократное с ультрафиолетовым стиранием, помимо этого есть контроллеры с электрически перепрограммируемым ПЗУ. Очень важный для многих штрих - это наличие бита секретности.
Объем ПЗУ зависит от марки PIC контроллера: от 512*12 бит для самых простых приложений и до 8К*16 бит для более сложных. Встроенное ОЗУ данных с 8-ми битной организацией варьируется по объему от 32 до 454 байт, как вариант 64*8 EERAM.
PIC контроллер может “заводиться” как от кварца, так и от обычной RC цепочки. При этом впечатляет диапазон тактовой частоты процессора - от 32 кГц до 20 МГц! Внешних RC цепей для формирования сигнала сброса вообще не требуется! Микропроцессор его вырабатывает сам автоматически при включении питания или при подаче внешнего сигнала MCLR. Напряжение питания может изменяться в пределах, от плюс 2,5 до 6,25 Вольт. Это делает его незаменимым для портативных приложений с питанием от батарей.
Ток потребления зависит от выбранной частоты генерации. Так, например, при наименьшей частоте в 32 кГц он очень мал и составляет всего 15 мкА (!). Далее, ток возрастает до 3 мА с ростом частоты до 4 МГц и в пределе может стать 20 мА на частоте 20 МГц. Для минимизации энергопотребления применяют импульсную работу PIC контроллера, т.е. он находится в “спячке” с полным сохранением содержимого памяти, пока внешнее событие не потребуется какого-то его действия. Кроме внешнего сигнала MCLR, другим событием, которое может “пробуждать” контроллер является сигнал от встроенного программируемого сторожевого таймера (watch dog), который не позволит процессору “заснуть” навсегда. Линий ввода/вывода от 12 до 33, в зависимости от корпуса. Все линии двунаправленные с произвольным программированием их на ввод/вывод. Некоторые модели имеют также и встроенный 8-ми битовый АЦП с системой прерываний, вырабатываемых этим АЦП и компараторами кодов на линиях ввода/вывода. Несмотря на К-МОП технологию, линии вывода достаточно мощны и в состоянии напрямую управлять сегментами светодиодного индикатора. Втекающий и вытекающий ток до 25 мА на всех линиях одновременно и до 50мА только на одной! Эта особенность линий вывода позволяет реализовать удивительно простое сопряжение со схемами пользователя.
Microchiр предоставляет пользователю широкую гамму PIC контроллеров, отличающихся друг от друга количественными характеристиками, встроенными аппаратными функциями и соответственно ценой. Широкий выбор позволяет достичь почти идеального соотношения между эффектом от применения того или иного PICa и затратами. Рассматриваемые изделия микроконтроллеры семейства выпускаются в различном исполнении: корпуса DIP, SOIC, SSOP, PQFP, PLSS, диапазон рабочих температур -40 С +125 С.
Итак, вкратце - ЧТО ТАКОЕ PIC ?
PIC16CXX - это 8-разрядные микроконтроллеры с RISC архитектурой, производимые фирмой Microchiр Technology. Это семейство микроконтроллеров отличается низкой ценой, низким энергопотреблением и высокой скоростью. Микроконтроллеры имеют встроенное ЭППЗУ программы, ОЗУ данных и выпускаются в 18 , 28 и 40 выводных корпусах.
PIC OTP - это однократно программируемые пользователем контроллеры, предназначенные для полностью оттестированных и законченных изделий, в которых не будет происходить дальнейших изменений кода.
Для отладки программ и макетирования выпускается вариант контроллеров с ультрафиолетовым стиранием. Эти контроллеры допускают большое число циклов записи/стирания и имеют очень малое время стирания - обычно 1-2 минуты. Однако цена таких контроллеров существенно выше, чем однократно программируемых, поэтому их невыгодно устанавливать в серийную продукцию. Кроме того, они имеют малое (1-3 месяца) время хранения информации.
Для изделий, программа которых может меняться, либо содержит какие-либо переменные части, таблицы, параметры калибровки, ключи и т.д., выпускается электрически стираемый и перепрограммируемый контроллер PIC16C84. Он также содержит электрически перепрограммируемое ПЗУ данных.
Семейство PIC16CXX
Мы начнем детальное описание микросхем семейства PIC с тех особенностей и преимуществ, которые выделяют эти микроконтроллеры среди других. Для применений, связанных с защитой информации, каждый PIC имеет бит секретности, который может быть запрограммирован для запрещения считывания программного кода и ПЗУ данных. При программировании сначала записывается программный код, проверяется на правильность записи, а затем устанавливается бит секретности. Если попытаться прочитать микросхему с установленным битом секретности, то для PIC16C5X старшие 8 разрядов кода будут считываться как 0, а младшие 4 разряда будут представлять собой скремблированные 12 разрядов команды. Для PIC16C84 аналогично 7 старших разрядов будут считываться нулями, а 7 младших разрядов будут представлять скремблированные 14 разрядов команды. Электрически перепрограммируемое ПЗУ данных PIC16C84 при установке бита защиты не может быть считано.
Микроконтроллеры семейства PIC имеют очень эффективную систему команд, состоящую всего из 35 инструкций. Все инструкции выполняются за один цикл, за исключением условных переходов и команд, изменяющих программный счетчик, которые выполняются за 2 цикла. Один цикл выполнения инструкции состоит из 4 периодов тактовой частоты. Таким образом, при частоте 4 МГц, время выполнения инструкции составляет 1 мксек. Каждая инструкция состоит из 14 бит, делящихся на код операции и операнд (возможна манипуляция с регистрами, ячейками памяти и непосредственными данными).
Высокая скорость выполнения команд в PIC достигается за счет использования двухшинной Гарвардской архитектуры вместо традиционной одношинной Фон-Hеймановской. Гарвардская а архитектура основывается на наборе регистров с разделенными шинами и адресным пространством для команд и для данных. Hабор регистров означает, что все программные объекты, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры.
Память данных (ОЗУ) для PIC16CXX имеет разрядность 8 бит, память программ (ППЗУ) имеет разрядность 12 бит для PIC16C5X и 14 бит для PIC16CXX. Использование Гарвардской архитектуры позволяет достичь высокой скорости выполнения битовых, байтовых и регистровых операций. Кроме того, Гарвардская архитектура допускает конвейерное выполнение инструкций, когда одновременно выполняется текущая инструкция и считывается следующая. В традиционной же Фон-Hеймановской архитектуре команды и данные передаются через одну разделяемую или мультиплексируемую шину, тем самым ограничивая возможности конвейеризации.
Описание контроллера PIC16C84
PIC16C84 относится к семейству КМОП микроконтроллеров. Отличается тем, что имеет внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 64байт EEPROM памяти данных. При этом отличаются низкой стоимостью и высокой производительностью. Пользователи, которые знакомы с семейством PIC16C5X могут посмотреть подробный список отличий нового от производимых ранее контроллеров. Все команды состоят из одного слова (14 бит шириной) и исполняются за один цикл (400 нс при 10 МГц), кроме команд перехода, которые выполняются за два цикла (800 нс). PIC16C84 имеет прерывание, срабатывающее от четырех источников, и восьмиуровневый аппаратный стек. Периферия включает в себя 8-битный таймер/счетчик с 8-битным программируемым предварительным делителем (фактически 16 - битный таймер) и 13 линий двунаправленного ввода/вывода. Высокая нагрузочная способность (25 мА макс. втекающий ток, 20 мА макс. вытекающий ток) линий ввода/вывода упрощают внешние драйверы и, тем самым, уменьшается общая стоимость системы. Разработки на базе контроллеров PIC16C84 поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором (только фирмы Microchiр) и программатором.
Серия PIC16C84 подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает PIC16C84 привлекательным даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Cледует добавить, что встроенный автомат программирования EEPROM кристалла PIC16C84 позволяет легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования.
Обзор характеристик
Высокоскоростной RISC процессор
только 35 простых команд;
все команды выполняются за один цикл(400ns), кроме команд перехода, выполняющихся за два цикла;
рабочая частота 0 Гц ... 10 МГц (min 400 нс цикл команды);
14- битовые команды;
8- битовые данные;
1024 х 14 электрически перепрограммируемой программной памяти на кристалле (EEPROM);
36х 8 регистров общего использования;
15 специальных аппаратных регистров SFR;
64 x 8 электрически перепрограммируемой EEPROM памяти для данных;
восьмиуровневый аппаратный стек;
прямая, косвенная и относительная адресация данных и команд;
четыре источника прерывания:
· внешний вход INT,
· переполнение таймера RTCC,
· прерывание при изменении сигналов на линиях порта B,
· по завершению записи данных в память EEPROM.
Периферия и Ввод/Вывод
13 линий ввода-вывода с индивидуальной настройкой;
втекающий/вытекающий ток для управления светодиодами.
· макс. вытекающий ток - 20 мА. ,
· макс. втекающий ток - 25 мА.,
TMR0: 8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем.
Специальные свойства
автоматический сброс при включении;
таймер включения при сбросе;
таймер запуска генератора;
Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
EEPROM бит секретности для защиты кода;
экономичный режим SLEEP ;
выбираемые пользователем биты для установки режима возбуждения встроенного генератора:
· RC генератор : RC;
· обычный кварцевый резонатор : XT;
· высокочастотный кварцевый резонатор : HS;
· экономичный низкочастотный кристалл : LP;
встроенное устройство программирования EEPROM памяти программ и данных; используются только две ножки.
КМОП технология
экономичная высокоскоростная КМОП EPROM технология;
статический принцип в архитектуре;
широкий диапазон напряжений питания и температур:
· коммерческий: 2.0 ... 6.0 В, 0...+70С,
· промышленный: 2.0 ... 6.0 В, -40...+70С,
· автомобильный: 2.0 ... 6.0 В, 40...+125С;
низкое потребление:
· 2 мА типично для 5В, 4МГц,
· 15 мкА типично для 2В, 32КГц,
· 1 мкА типично для SLEEP режима при 2В.
Tипы корпусов и исполнений
Обозначения корпусов для кристаллов PIC16C84. Тип корпуса указывается в Маркировке при заказе микросхем. Корпуса бывают только с 18 Выводами.
PDIP - Обычный пластмассовый двухрядный корпус
SOIC - Малогабаритный DIP корпус для монтажа на поверхность
Mаркировка при заказе
Обозначение микросхем складывается из следующих полей:
Фирм.номер/Частота генератора/Темпер.диапазон/Корпус/Примеч
Фирм.номер : PIC16C84 Vdd range 4...6 V,
PIC16LC84 Vdd range 2...6 V;
Частота генератора: 04 --- 4 mHz (большинство 4 МГц. приборов работает до 10 МГц .!),
10 --- 10mHz;
Температурный диапазон бывает:
- от 0С до +70С,
I от-40С до +85С,
E от-40С до +125С;
Корпус обозначается:
P - обычный пластмассовый DIP,
SO -300 mil SOIC.
ПРИМЕРЫ:
PIC16C84-04/P - 4 mHz, коммерческое исполнение в PDIP корпусе, норм.диапазон Vdd
PIC16LC84-04I/SO - 4 mHz, исполнение для промышленности, расширен ный диапазон питания, корпус=SOIC
PIC16C84-10E/P - исполнение для автомобилей, 10 mHz, PDIP, норм. пи тание
Структурная схема PIC16C84
Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14- битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов. В PIC16C84 программная память объемом 1К х 14 расположена внутри кристалла. Исполняемая программа может находиться только во встроенном ПЗУ.
Разводка ножек
Функциональное назначение выводов см.”Обозначения Выводов” или Структурную Схему. Типы корпусов PDIP и др. см. “Корпуса”.
Назначение ножек
Обозначения ножек и их функциональное назначение
Обозначение |
Нормальный режим |
Режим записи EEPROM |
RA0 - RA3 |
Двунаправленные линии ввода/вывода. Входные уровни ТТЛ |
|
RA4/RTCC |
Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика RTCC |
|
RB0/INT |
Двунаправленная линия порта ввода/ вывода или внешний вход прерывания Уровни ТТЛ |
|
RB1 - RB5 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ |
|
RB6 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход тактовой частоты для EEPROM |
RB7 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход/выход EEPROM данных. |
MCLR/Vрр |
Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий. |
Сброс контроллера Для режима EEPROM- подать Vрр. |
OSC1/CLKIN |
Для подключения кварца, RC или вход внешней тактовой частоты |
|
OSC2/CLKOUT |
Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварц |
|
Vdd |
Напряжение питания |
Напряжение питания |
Vss |
Общий(земля) |
Общий |
Обзор регистров и ОЗУ
Область ОЗУ организована как 128 х 8. К ячейкам ОЗУ можно адресоваться прямо или косвенно, через регистр указатель FSR (04h). Это также относится и к EEPROM памяти данных-констант.
Page 0 |
Page 1 |
||
00 |
Indirect add. |
80 |
|
01 |
RTCC |
OPTION |
81 |
02 |
PCL |
82 |
|
03 |
STATUS |
83 |
|
04 |
FSR |
84 |
|
05 |
PORT A |
TRISA |
85 |
06 |
PORT B |
TRISB |
86 |
07 |
87 |
||
08 |
EEDATA |
EECON1 |
88 |
09 |
EEADR |
EECON2 |
89 |
0A |
PCLATH |
8A |
|
0B |
INTCON |
8B |
|
0C 2F |
36 регистров общего назначения |
тоже |
8C AF |
30 7F |
не существует |
B0 FF |
В регистре статуса (03h) есть биты выбора страниц, которые позволяют обращаться к четырем страницам будущих модификаций этого кристалла. Однако для PIC16C84 память данных существует только до адреса 02Fh. Первые 12 адресов используются для размещения регистров специального назначения. Регистры с адресами 0Ch-2Fh могут быть использованы, как регистры общего назначения, которые представляют собой статическое ОЗУ. Некоторые регистры специального назначения продублированы на обеих страницах, а некоторые расположены на странице 1 отдельно. Когда установлена страница 1, то обращение к адресам 8Ch-AFh фактически адресует страницу 0. К регистрам можно адресоваться прямо или косвенно. В обоих случаях можно адресовать до 512 регистров.
Прямая адресация.
Когда производится прямая 9-битная адресация, младшие 7 бит берутся как прямой адрес из кода операции, а два бита указателя страниц (RP1,RP0) из регистра статуса (03h).
Косвенная адресация
f4 - Указатель косв.адресации
Любая команда, которая использует f0 (адрес 00) в качестве регистра фактически обращается к указателю, который хранится в FSR (04h). Чтение косвенным образом самого регистра f0 даст результат 00h. Запись в регистр f0 косвенным образом будет выглядеть как Noр, но биты статуса могут быть изменены. Необходимый 9 - битный адрес формируется объединением содержимого 8 - битного FSR регистра и бита IRP из регистра статуса.
RTCC таймер/счетчик
Режим таймера выбирается путем сбрасывания в ноль бита RTS, который находится в регистре OPTION. В режиме таймера RTCC будет инкрементироваться от ВНУТРЕННЕГО ИСТОЧНИКА частоты- каждый командный цикл (без предделителя). После записи информации в RTCC, инкрементирование его начнется после двух командных циклов. Такое происходит со всеми командами, которые производят запись или чтение-модификацию-запись f1 (напр.MOVF f1, CLRF f1). Избежать этого можно при помощи записи в RTCC скорректированного значения. Если RTCC нужно проверить на равенство нулю без останова счета, следует использовать инструкцию MOVF f1,W. Режим счетчика выбирается путем установки в единицу бита RTS, который находится в регистре OPTION. В этом режиме RTCC будет инкрементироваться либо положительным, либо отрицательным фронтом на ножке RA4/RTCC от ВНЕШНИХ событий. Направление фронта определяется управляющим битом RTE в регистре OPTION. При RTE=0 будет выбран положительный фронт. Пределитель может быть использован или совместно с RTCC, или с Watchdog таймером. Вариант подключения делителя контролируется битом PSA в регистре OPTION. При PSA=0 делитель будет подсоединен к RTCC. Содержимое делителя программе недоступно. Коэффициент деления - программируется. Прерывание по RTCC вырабатывается тогда, когда происходит переполнение RTCC таймера/счетчика при переходе от FFH к 00h. Тогда устанавливается бит запроса RTIF в регистре INTCON2. Данное прерывание можно замаскировать битом RTIE в регистре INTCON5. Бит запроса RTIF должен быть сброшен программно при обработке прерывания. Прерывание по RTCC не может вывести процессор из SLEEP потому, что таймер не функционирует в этом режиме.
Проблемы с таймером
Проблемы могут возникнуть при счете внешних сигналов. Эти сигналы стробируются внутренним сигналом синхронизации, см. схему SYNC. Образуется некоторая задержка между фронтом входного сигнала и моментом инкрементирования RTCC. Cтробирование производится после пределителя. Выход пределителя опрашивается дважды в течение каждого командного цикла, чтобы определить положительный и отрицательный фронты входного сигнала. Поэтому сигнал Psout должен иметь высокий и низкий уровень не менее двух периодов синхронизации.
Когда пределитель не используется, Psout повторяет входной сигнал, поэтому требования к нему следующие:
Trth= RTCC high time = 2 tosc+20ns
Trtl= RTCC low time = 2 tosc+20ns.
Когда пределитель используется, на вход RTCC подается сигнал, поделенный на число, установленное в счетчике делителя. Сигнал после пределителя всегда симметричен.
Psout high time = Psout low time = N*Trt/2, где Trt- входной период RTCC,
N- значение счетчика делителя (2,4...256).
В этом случае требования к входному сигналу можно выразить так:
N*Trt/2 = 2 tosc +20ns или Trt = (4tosc + 40ns)/N.
Когда используется пределитель, низкий и высокий уровень сигнала на его входе должны быть не менее 10 нс. Таким образом общие требования к внешнему сигналу, когда делитель подключен таковы:
Trt= RTCC рeriod = (4tosc + 40ns)/N
Trth = RTCC high time = 10ns
Trtl = RTCC low time = 10ns.
Так как выход пределителя синхронизируется внутренним сигналом тактовой частоты, то существует небольшая задержка между появлением фронта внешнего сигнала и временем фактического инкремента RTCC. Эта задержка находится в диапазоне между 3*tosc и 7*tosc. Таким образом измерение интервала между событиями будет выполнено с точностью 4*tosc (+-400нс при кварце 10 МГц).
Регистр статуса
Регистр (f3) содержит арифметические флаги АЛУ, состояние контроллера при сбросе и биты выбора страниц для памяти данных. (f3) доступен для любой команды так же, как любой другой регистр. Однако, биты TO и PD устанавливаются аппаратно и не могут быть записаны в статус программно. Это следует иметь в виду при выполнении команды с использованием регистра статуса. Например, команда CLRF f3 обнулит все биты, кроме битов TO и PD, а затем установит бит Z=1. После выполнения этой команды регистр статуса может и не иметь нулевое значение (из-за битов TO и PD) f3=000??100. Поэтому рекомендуется для изменения регистра статуса использовать только команды битовой установки BCF, BSF, MOVWF, которые не изменяют остальные биты статуса. Воздействие всех команд на биты статуса можно посмотреть в “Описании команд”.
Программные флаги статуса
Размещение флагов в регистре статуса следующее:
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
f3= |
IFR |
RP1 |
RP0 |
TO |
PD |
Z |
DC |
C |
C - Флаг переноса/заема:
Для команд ADDWF и SUBWF. Этот бит устанавливается, если в результате операции из самого старшего разряда происходит перенос. Вычитание осуществляется путем прибавления дополнительного кода второго операнда. При выполнении команд сдвига этот бит всегда загружается из младшего или старшего бита сдвигаемого источника.
;----------------Пример
;SUBWF Examрle #1
clrf 0x20 ;f(20h)=0
movlf 1 ;wreg=1
subwf 0x20 ;f(20h)=f(20h)-wreg=0-1=FFh
;Carry=0: Результат отрицательный.
;SUBWF Examрle #2
movlw 0xFF
movwf 0x20 ;f(20h)=FFh
clrw ;wreg=0
subwf 0x20 ;f(20h)=f(20h)-wreg=FFh-0=FFh
;Carry=1: Результат положительный.
DC - Флаг десятичного переноса/заема:
Для команд ADDWF и SUBWF. Этот бит устанавливается, если в результате операции из четвертого разряда происходит перенос. Механизм установки десятичного бита переноса “DC” тот же самый, отличается тем, что отслеживается перенос из четвертого бита.
Z - Флаг нулевого результата:
Устанавливается, если результатом арифметической или логической операции является ноль.
PD - Power Down ( режим хранения данных) :
Устанавливается в “1” при включении питания или команде CLRWDT. Сбрасывается в “0” командой SLEEP.
TO - Time Out. Флаг срабатывания Watchdog таймера:
Устанавливается в “1” при включению питания и командами CLRWDT, SLEEP. Сбрасывается в “0” по завершению выдержки времени таймера WDT.
RP1, RP0 - Биты выбора страницы памяти данных при прямой адресации
RP1,RP0:
00= Страница 0 (00h-7Fh),
01= Страница 1 (80h-FFh),
10= Страница 2 (100h-17Fh),
11= Страница 3 (180h-1FFh).
На каждой странице расположено 128 байт. В кристалле PIC16C84 используется только RP0. В этом кристалле RP1 может использоваться просто как бит общего назначения чтения/записи. Однако надо помнить, что в последующих разработках он будет использоваться.
IRP - Бит выбора страницы памяти данных при косвенной адресации
IRP0:
0= Страницы 0,1 (00h-FFh),
1= Страница 2,3 (100h-1FFh).
Этот бит в кристалле PIC16C84 использовать не имеет смысла. Поэтому его можно использовать как бит общего назначения чтения/записи. Однако, надо помнить, что в последующих разработках он будет использоваться.
Аппаратные флаги статуса
Аппаратные Биты статуса TO (Time Out) и PD (Power Down).
По состоянию битов регистра статуса “TO” и “PD” можно определить, чем был вызван “Сброс”:
· просто включением питания,
· срабатыванием таймера watchdog,
· выходом из режима пониженного энергопотребления(Sleeр) в результате срабатывания watchdog таймера,
· по внешнему сигналу /MCLR.
На состояние этих битов могут повлиять только следующие события:
События |
TO |
PD |
Примечание |
Включение |
1 |
1 |
|
WDT таймер |
0 |
X |
Не воздействует на бит PD |
Sleeр команда |
1 |
0 |
|
CLRWDT команда |
1 |
1 |
Примечание : Событие WDT timeout происходит независимо от состояния TO бита. Sleeр команда выполняется независимо от состояния PD бита.
Ниже показаны состояния битов TO и PD после “Сброса”
TO |
PD |
“Сброс” был вызван следующими событиями |
0 |
0 |
Выход из Sleeр по завершению задержки Watchdog |
0 |
1 |
Завершение задержки Watchdog |
X |
0 |
Выход из Sleeр по внешнему сигналу MCLR |
1 |
1 |
Включение питания |
X |
X |
“0”-импульс на входе MCLR |
Примечание : Биты TO и PD сохраняют текущее состояние до тех пор, пока не произойдет одно из событий перечисленных в таблице. “0”-Импульс низкого уровня на входе кристалла /MCLR не не изменяет состояние битов TO и PD.
Организация встроенного ПЗУ
Программный счетчик в PIC16C84 имеет ширину 13 бит и способен адресовать 8Кх14бит объема программной памяти. Однако, физически на кристалле имеется только 1Кх14 памяти (адреса 0000h-03FFh). Обращение к адресам выше 3FFh фактически есть адресация в тот же первый килобайт. Вектор сброса находится по адресу 0000h, вектор прерывания находится по адресу 0004h.
PC 12:0 |
|
Stack Level 1 |
|
Stack Level 2 |
|
. . . . . . . . . . . . |
|
Stack Level 8 |
|
Reset Vector |
0000h |
Interruрt Vector |
0004h |
On-Chiр Program Memory |
0005h 03FFh |
0400h 1FFFh |
EEPROM PIC16C84 рассчитан на ограниченное число циклов стирания/записи. Чтобы записать в программную память, кристалл должен быть переведен в специальный режим при котором на ножку /MCLR подается напряжение программирования Vрrg, а питание Vdd должно находиться в пределах 4.5 В ...5.5В. PIC16C84 непригоден для применений, в которых часто модифицируется программа. Запись в программную память осуществляется побитно, последовательно с использованием только двух ножек. Паспортное значение количества записей в программную память PIC16C84 равно 100(min) и 1000 (tiр), практически-же микросхемы выдерживают несколько тысяч перезаписей. Число перезаписей памяти данных (64 байта) достанет 1000000.
PC и адресация ПЗУ
(f2). Программный счетчик
Ширина программного счетчика - 13 бит. Младший байт программного счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт программного счетчика (PCH) не может быть прямым образом прочитан или записан. Старший байт программного счетчика может быть записан через PCLATH регистр, адрес которого 0Ah. В зависимости от того, загружается ли в программный счетчик новое значение во время выполнения команд CALL, GOTO, или в младший байт программного счетчика (PCL) производится запись, - старшие биты программного счетчика загружаются из PCLATH разными способами так, как показано на рисунке.
Случай команд GOTO, CALL
Случай команд, у которых результат помещается в f2
Стек и возвраты из подпрограмм
Кристалл PIC16C84 имеет восьмиуровневый аппаратный стек шириной 13 бит.Область стека не принадлежит ни к программной области ни к области данных, а указатель стека пользователю недоступен. Текущее значение программного счетчика посылается в стек, когда выполняется команда CALL или производится обработка прерывания. При выполнении процедуры возврата из подпрограммы (команды RETLW , RETFIE или RETURN), в программный счетчик выгружается содержимое стека. Регистр PCLATH (0Ah) не изменяется при операциях со стеком.
Данные в EEPROM
Долговременная Память данных EEPROM.
Память данных EEPROM позволяет прочитать и записать байт информации. При записи байта автоматически стирается предыдущее значение и записываются новые данные (стирание перед записью). Все эти операции производит встроенный автомат записи EEPROM. Содержимое ячеек этой памяти сохраняется при выключении питания. Кристалл PIC16C84 имеет память данных 64х8 EEPROM бит, которая позволяет запись и чтение во время нормальной работы (во всем диапазоне питающих напряжений). Эта память не принадлежит области регистров ОЗУ. Доступ к ней осуществляется через два регистра: EEDATA 08h, который содержит в себе восьмибитовые данные для чтения/записи и EEADR 09h, который содержит в себе адрес ячейки к которой идет обращение. Дополнительно имеется два управляющих регистра: EECON1 88h и EECON2 89h.
При считывании данных из памяти EEPROM необходимо записать требуемый адрес в EEADR регистр и затем установить бит RD EECON10 в единицу. Данные появятся в следующем командном цикле в регистре EEDATA и могут быть прочитаны. Данные в регистре EEDATA защелкиваются.
При записи в память EEPROM, необходимо сначала записать требуемый адрес в EEADR регистр и данные в EEDATA регистр. Затем выполнить специальную последовательность команд, производящую непосредственную запись:
movlv 55h
movwf EECON2
movlv AAh
movwf EECON2
bsf EECON1,WR ;установить WR бит, начать запись
Во время выполнения этого участка программы, все прерывания должны быть запрещены для точного выполнения временной диаграммы. Время записи - примерно 10мс. Фактическое время записи будет изменяться в зависимости от напряжения, температуры и индивидуальных свойств кристалла. В конце записи бит WR автоматически обнуляется, а флаг завершения записи EEIF, он же запрос на прерывание, устанавливается. Для предотвращения случайных записей в память данных предусмотрен специальный бит WREN в регистре EECON1. Рекомендуется держать бит WREN выключенным, кроме тех случаев, когда нужно обновить память данных. Более того, кодовые сегменты, которые устанавливают бит WREN и те, которые выполняют запись должны храниться на различных адресах, чтобы избежать случайного выполнения их обоих при сбое программы.
Управление EEPROM
Управляющие регистры для EEPROM
Название |
Функция |
Адрес |
Значение после включения |
EEDATA |
EEPROM регистр данных |
08h |
XXXX XXXX |
EEADR |
EEPROM регистр адреса |
09h |
XXXX XXXX |
EECON1 |
EEPROM 1 управляющий регистр |
88h |
0000 X000 |
EECON2 |
EEPROM 2 управляющий регистр |
89h |
- |
Регистры EECON1 и EECON2.
Регистр EECON1 (адрес 88h) - это управляющий регистр шириной пять бит. Младшие пять бит физически существуют, а старшие три бита читаются всегда как “0”
Регистр EECON1 Адрес 88h Сброс при включении 0000X000
- |
- |
- |
EEIF |
WRERR |
WREN |
WR |
RD |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Управляющие биты RD и WR запускают соответственно чтение и запись. Они могут быть установлены только программно. Сбрасываются- аппаратно по завершения операций чтения/записи. Запрет программного сброса бита WR предотвращает преждевременное окончание записи.
RD - Бит чтения.
RD =1 : Запускает чтение памяти данных EEPROM. Чтение занимает
один цикл. Устанавливается программно. Обнуляется аппаратно.
WR - Бит записи.
WR =1 : Запускает запись в память данных EEPROM.
Устанавливается программно. Обнуляется аппаратно.
WREN - Бит разрешения записи в память данных EEPROM.
WREN = 1: Разрешена запись.
WREN = 0: Запрещена запись.
После включения питания WREN обнуляется.
Флаг ошибки WRERR устанавливается, когда процесс записи прерывается сигналом сброса /MCLR или сигналом сброса от WDT таймера. Рекомендуем проверять этот флаг WRERR и при необходимости производить перезапись данных, данные и адрес которых сохраняются в регистрах EEDATA и EEADR.
WRERR - Флаг ошибки записи.
WRERR = 1: Флаг устанавливается, когда операция записи
преждевременно прерывается сигналом сброса /MCLR (во время
обычного режима или режима SLEEP) или сигналом сброса WDT во
время обычного режима.
EEIF - Флаг завершения записи.
EEIF = 1: Флаг устанавливается, когда завершена запись.
Соответствующий бит разрешения прерывания - EEIE в
регистре INTCON.
Организация прерываний
Прерывания в PIC16C84 могут быть от четырех источников:
внешнее прерывание с ножки RB0/INT,
прерывание от переполнения счетчика/таймера RTCC,
прерывание по окончании записи данных в EEPROM,
прерывание от изменения сигналов на ножках порта RB7:4.
Все прерывания имеют один и тот же вектор/адрес - 0004h. Однако, в управляющем регистре прерываний INTCON записывается:- от какого именно источника поступил запрос прерывания. Записывается соответствующим битом-флагом. Такое прерывание может быть замаскировано индивидуально или общим битом. Единственным исключением является прерывание по концу записи в EEPROM. Этот флаг находится в другом регистре EECON1. Бит общего разрешения/запрещения прерывания GIE (INTCON 7) разрешает (если=1) все индивидуально незамаскированные прерывания или запрещает (если=0) их. Каждое прерывание в отдельности может быть дополнительно разрешено/запрещено установкой/сбросом соответствующего бита в регистре INTCON.
Бит GIE обнуляется при сбросе. Когда начинает обрабатываться прерывание, бит GIE обнуляется, чтобы запретить дальнейшие прерывания, адрес возврата посылается в стек, а в программный счетчик загружается адрес 0004h. Время реакции на прерывание для внешних событий, таких как прерывание от ножки INT или порта B, составляет приблизительно пять циклов. Это на один цикл меньше, чем для внутренних событий, таких как прерывание по переполнению от таймера RTCC. Время реакции всегда одинаковое. В подпрограмме обработки прерывания источник прерывания может быть определен по соответствующему биту в регистре флагов. Этот флаг-бит должен быть программно сброшен внутри подпрограммы. Флаги запросов прерываний не зависят от соответствующих маскирующих битов и бита общего маскирования GIE.
Команда возврата из прерывания RETFIE завершает прерывающую подпрограмму и устанавливает бит GIE, чтобы опять разрешить прерывания.
Регистр запросов и масок
Управляющий регистр прерываний и его биты
Адрес: 0Bh Значение при сбросе - 0000 0000
GIE |
EEIE |
RTIE |
INIE |
RBIE |
RTIF |
INTF |
RBIF |
RBIF -Флаг прерывания от изменения на порту RB.
Флаг устанавливается, когда сигнал на входе RB7:4 изменяется.
Флаг сбрасывается программным способом.
INTF - Флаг прерывания INT.
Флаг устанавливается, когда на ножке INT появляется сигнал от
внешнего источника прерывания. Сбрасывается программным способом.
RTIF - Флаг прерывания от переполнения RTCC.
Флаг устанавливается, когда RTCC переполняется.
Флаг сбрасывается программным способом.
RBIE - Бит разрешения/запрещения RBIF прерывания.
RBIE = 0 : запрещает RBIE прерывание.
RBIE = 1 : разрешает RBIE прерывание.
INTE - Бит разрешения/запрещения INT прерывания.
INTE = 0 : запрещает INT прерывание.
INTE = 1 : разрешает INT прерывание.
RTIE Бит разрешения/запрещения RTIF прерывания.
RTIE = 0 : запрещает RTIE прерывание.
RTIE = 1 : разрешает RTIE прерывание.
EEIE - Бит разрешения/запрещения прерывания EEPROM записи.
EEIE = 0 : запрещает EEIF прерывание.
EEIE = 1 : разрешает EEIF прерывание.
GIE Бит разрешения/запрещения всех прерываний.
GIE = 0 : запрещает прерывания
GIE = 1 : разрешает прерывания
Он сбрасывается автоматически при следующих обстоятельствах:
по включению питания,
по внешнему сигналу /MCLR при нормальной работе,
по внешнему сигналу /MCLR в режиме SLEEP,
по окончанию задержки таймера WDT при нормальной работе,
по окончанию задержки таймера WDT в режиме SLEEP.
Внешнее прерывание
Внешнее прерывание на ножке RB0/INT осуществляется по фронту: либо по нарастающему (если бит INTEDG=1 в регистре OPTION), либо по спадающему фронту (если INTEDG=0). Когда фронт обнаруживается на ножке INT, то бит запроса INTF устанавливается (INTCON 1). Это прерывание может быть замаскировано установкой управляющего бита INTE в ноль (INTCON 4). Бит запроса INTF должен быть очищен прерывающей программой перед тем, как опять разрешить это прерывание. Прерывание INT может вывести процессор из режима SLEEP, если перед входом в этот режим бит INTE был установлен в единицу. Состояние бита GIE также определяет: будет ли процессор переходить на подпрограмму прерывания после просыпания из режима SLEEP.
Прерывание от RTCC
Переполнение счетчика RTCC (FFh-00h) установит бит запроса RTIF (INTCON2). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RTIE (INTCON5).
Сброс запроса RTIF - дело программы обработки.
Прерывание от порта RB
Любое изменение сигналов на четырех входах порта RB7:4 установит бит RBIF (INTCON0). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RBIE (INTCON3). Сброс запроса RBIF - дело программы обработки.
Прерывание от EEPROM
Флаг запроса прерывания по окончании записи в EEPROM, EEIF (EECON14) устанавливается по окончании автоматической записи данных в EEPROM. Это прерывание может быть замаскировано сбросом бита EEIE (INTCON6).
Сброс запроса EEIF - дело программы обработки.
Обзор регистров/портов
Кристалл имеет два порта: 5 бит порт RA и 8 бит порт RB с побитовой индивидуальной настройкой на ввод или на вывод.
Схема линии порта A
Порт А - это порт шириной 5 бит, соответствующие ножки кристалла RA4:0. Линии RA3:0 двунаправленные, а линия RA4 -выход с открытым стоком. Адрес регистра порта А - 05h. Относящийся к порту А управляющий регистр TRISA расположен на первой странице регистров по адресу 85h. TRISA4:0 - это регистр шириной 5 бит. Если бит управляющего TRISA регистра имеет значение единица, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки.
Название ножки |
# |
Функция ножки |
Другие функции |
PA0 |
0 |
Порт ввода/вывода.Входные уровни ТТЛ. |
|
PA1 |
1 |
Порт ввода/вывода.Входные уровни ТТЛ. |
|
PA2 |
2 |
Порт ввода/вывода.Входные уровни ТТЛ. |
|
PA3 |
3 |
Порт ввода/вывода.Входные уровни ТТЛ.. |
|
PA4/RT |
4 |
Порт ввода/вывода.Выход-открытый коллектор Вход - триггер Шмитта. |
Вход внешнего тактового сигнала для RTCC |
Ниже дана схема портов RA0..RA3
Все биты портов имеют защитные диоды, подключенный к Vdd и Vss.
Вывод RA4/RTCC имеет несколько другую схему. Она приведена ниже
Схема линии порта B
Порт В - это двунаправленный порт, шириной в восемь бит (адрес регистра 06h). Относящийся к порту В управляющий регистр TRISB расположен на первой странице регистров по адресу 86h. Если бит управляющего TRISB регистра имеет значение единица, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки. У каждой ножки порта В имеется небольшая активная нагрузка (около 100мкА) на линию питания. Она автоматически отключается, если эта ножка запрограммирована как вывод. Более того, управляющий бит RBPU OPTION7 может отключить (RBPU=1) все нагрузки. Сброс при включении питания также отключает все нагрузки. Четыре линии порта В (RB7:4) имеют способность вызвать прерывание при изменении значения сигнала на любой из них. Если эти линии настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения Q1. Новая величина входного сигнала сравнивается со старой в каждом командном цикле. При несовпадении значения сигнала на ножке и в защелке, генерируется высокий уровень. Выходы детекторов “несовпадений” RB4,RB5,RB6,RB7 объединяются по ИЛИ и генерируют прерывание RBIF (запоминаемое в INTCON0). Любая линия, настроенная как вывод, не участвует в этом сравнении. Прерывание может вывести кристалл из режима SLEEP. В подпрограмме обработки прерывания следует сбросить запрос прерывания одним из следующих способов:
1) Запретить прерывания при помощи обнуления бита RBIE INTCON3.
2) Прочитать порт В. Это завершит состояние сравнения.
3) Обнулить бит RBIF INTCON0.
Прерывание по несовпадению и программно устанавливаемые внутренние активные нагрузки на этих четырех линиях могут обеспечить простой интерфейс например с клавиатурой, с выходом из режима SLEEP по нажатию клавиш.
Ножка RB0 совмещена с входом внешнего прерывания INT.
Название ножки |
# |
Функция ножки |
Другие функции |
PB0 |
0 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
Вход внешнего прерывания |
PB1 |
1 |
Порт ввода/вывода.Входные уровни ТТЛ. и внутренняя программируемая активная нагрузка. |
|
PB2 |
2 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
|
PB3 |
3 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
|
PB4 |
4 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
Прерывание при изменении |
PB5 |
5 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
Прерывание при изменении |
PB6 |
6 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
Прерывание при изменении |
PB7 |
7 |
Порт ввода/вывода.Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
Прерывание при изменении |
Проблемы c портами
Проблемы при организации двунаправленных портов
Некоторые команды внутренне выполняются как чтение+запись. Например, команды BCF и BSF считывают порт целиком, модифицируют один бит и выводят результат обратно. Здесь необходима осторожность. Например, команда BSF для бита 5 регистра f6 (порт В) сначала считает все восемь бит. Затем выполняются действия над битом 5 и новое значение байта целиком записывается в выходные защелки. Если другой бит регистра f6 используется в качестве двунаправленного ввода/вывода (скажем бит 0) и в данный момент он определен как входной, входной сигнал на этой ножке будет считан и записан обратно в выходную защелку этой-же ножки, затирая ее предыдущее состояние. До тех пор пока эта ножка остается в режиме ввода, никаких проблем не возникает. Однако, если позднее линия 0 переключится в режим вывода, ее состояние будет неопределенным.
На ножку, работающую в режиме вывода, не должны “наваливаться” внешние источники токов(“монтажное И”, “монтажное ИЛИ”). Результирующие большие токи могут повредить кристалл.
Последовательное обращение к портам ввода/вывода.
Запись в порт вывода происходит в конце командного цикла. Но при чтении, данные должны быть стабильны в начале командного цикла. Будьте внимательны в операциях чтения, следующих сразу за записью в тот же порт. Здесь надо учитывать инерционность установления напряжения на выводах. Может потребоваться программная задержка, чтобы напряжение на ножке (зависит от нагрузки) успело стабилизироваться до начала исполнения следующей команды чтения.
Обзор команд и обозначения
Каждая команда PIC16C84 - это 14-битовое слово, которое разделено по смыслу на следующие части: - 1. код операции, -2. поле для одного и более операндов, которые могут участвовать или нет в этой команде. Система команд PIC16C84 включает в себя байт-ориентированные команды, бит-ориентированные, операции с константами и команды передачи управления.
Для байт-ориентированных команд “f” обозначает собой регистр, с которым производится действие; “d” - бит определяет, куда положить результат. Если “d” =0, то результат будет помещен в W регистр, при “d”=1 результат будет помещен в “f”, упомянутом в команде. Для бит-ориентированных команд “b” обозначает номер бита, участвующего в команде, а “f” -это регистр , в котором этот бит расположен.
Для команд передачи управления и операций с константами, “k” обозначает восьми или одинадцатибитную константу.
Все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла: -1. проверка условия и переход, -2.изменение программного счетчика как результат выполнения команды. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.
Байт ориентированные команды
Мнемокод |
Название команды |
Флаги |
Примеч |
|
ADDWF |
f,d |
Сложение W с f |
C,DC,Z |
2,3 |
ANDWF |
f,d |
Логическое И W и f |
Z |
2,3 |
CLRF |
f |
Сброс регистра f |
Z |
3 |
CLRW |
Сброс регистра W |
Z |
||
COMF |
f,d |
Инверсия регистра f |
Z |
2,3 |
DECF |
f,d |
Декремент регистра f |
Z |
2,3 |
DECFSZ |
f,d |
Декремент f, пропустить команду, если 0 |
2,3 |
|
INCF |
f,d |
Инкремент регистра f |
Z |
2,3 |
INCFZ |
f,d |
Инкремент регистра f, пропустить команду, если 0 |
2,3 |
|
IORWF |
f,d |
Логическое ИЛИ W и f |
Z |
2,3 |
MOVF |
f,d |
Пересылка регистра f |
Z |
2,3 |
MOVWF |
f |
Пересылка W в f |
3 |
|
NOP |
Холостая команда |
|||
RLF |
f,d |
Сдвиг f влево через перенос |
C |
2,3 |
RRf |
f,d |
Сдвиг f вправо через перенос |
C |
2,3 |
SUBWF |
f,d |
Вычитание W из f |
C,DC,Z |
2,3 |
SWAPF |
f,d |
Обмен местами тетрад в f |
2,3 |
|
XORWF |
f,d |
Исключающее ИЛИ W и f |
Z |
2,3 |
ADDLW |
k |
Сложение константы с W. |
C,DC,Z |
|
ANDLW |
k |
Логическое И константы и W |
Z |
|
IORLW |
k |
Логическое ИЛИ константы и W |
Z |
|
SUBLW |
k |
Вычитание W из константы. |
C,DC,Z |
|
MOVLW |
k |
Пересылка константы в W |
||
XORLW |
k |
Исключающее ИЛИ константы и W |
Z |
|
OPTION |
Загрузка W в OPTION регистр |
1 |
||
TRIS |
f |
Загрузка TRIS регистра |
1 |
Бит ориентированные команды
Мнемокод |
Название команды |
Флаги |
Примеч |
|
BCF |
f,d |
Сброс бита в регистре f |
2,3 |
|
BSF |
f,d |
Установка бита в регистре f |
2,3 |
|
BTFSC |
f,b |
Пропустить команду, если бит равен 0 |
||
BTFSS |
f,b |
Пропустить команду, если бит равен 1 |
Переходы
Мнемокод |
Название команды |
Флаги |
Примеч |
|
CALL |
k |
Вызов подпрограммы |
||
CLRWDT |
Сброс Watchdog таймера |
TO,PD |
||
GOTO |
k |
Переход по адресу |
||
RETLW |
k |
Возврат из подпрограммы с загрузкой константы в W |
||
RETFIE |
Возврат из прерывания. |
|||
RETURN |
Возврат из подпрограммы. |
|||
SLEEP |
Переход в режим SLEEP |
TO,PD |
Замечания и пояснения
Примечание 1 : Команды TRIS и OPTION помещены в перечень команд для совместимости с семейством PIC16C5X. Их использование не рекомендуется. В PIC16C84 регистры TRIS и OPTION доступны для чтения и записи как обычные регистры с номером. Предупреждаем, что эти команды могут не поддерживаться в дальнейших разработках PIC16CXX.
Примечание 2 : Когда модифицируется регистр ввода/вывода, например MOVF 6,1, значение, используемое для модификации считывается непосредственно с ножек кристалла. Если значение защелки вывода для ножки, запрограммированной на вывод равно “1”, но внешний сигнал на этом выводе “0” из-за “навала” снаружи, то будет считываться “0”.
Примечание 3 : Если операндом этой команды является регистр f1 (и, если допустимо, d=1), то делитель, если он подключен к RTCC, будет обнулен.
Условия сброса
В PIC16C84 существуют различия между вариантами сбросов:
1) Сброс по включению питания.
2) Сброс по внешнему сигналу /MCLR при нормальной работе.
3) Сброс по внешнему сигналу /MCLR в режиме SLEEP.
4) Сброс по окончанию задержки таймера WDT при нормальной работе.
5) Сброс по окончанию задержки таймера WDT в режиме SLEEP.
Некоторые из спец.регистров при сбросе не инициализируются. Они имеют случайное состояние при включении питания и не изменяются при других видах сбросов. Другая часть спец.регистров инициализируются в “состояние сброса” при всех видах сброса, кроме сброса по окончанию задержки таймера WDT в режиме SLEEP. Просто этот сброс рассматривается как временная задержка в нормальной работе. Есть еще несколько исключений. Программный счетчик всегда сбрасывается в ноль (0000h). Биты статуса TO и PD устанавливаются или сбрасываются в зависимости от варианта сброса. Эти биты используются программой для определения природы сброса. Их значения после сброса приведены в таблице.
Состояние регистров после сброса представлено в таблице. Там приняты обозначения: u -не изменяется, x -неизвестно, - не исполняется,читается как `0`. ? - будет установлен по окончанию записи в EEPROM
W |
- |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
INDIR |
00h |
||||||
RTCC |
01h |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
PC |
02h |
0000 |
0000 |
PC+1 |
0000 |
0000 |
PC+1 |
STATUS |
03h |
0001 1xxx |
0000 1uuu |
uuu0 0uuu |
000u uuuu |
0001 0uuu |
uuu1 0uuu |
FSR |
04h |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
PORT A |
05h |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
PORT B |
06h |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
TRIS A |
85h |
---1 ---1 |
---1 1111 |
---u uuuu |
---1 1111 |
---1 1111 |
---u uuuu |
TRIS B |
86h |
1111 1111 |
1111 1111 |
uuuu uuuu |
1111 1111 |
1111 1111 |
uuuu uuuu |
OPTION |
81h |
1111 1111 |
1111 1111 |
uuuu uuuu |
1111 1111 |
1111 1111 |
uuuu uuuu |
EEDATA |
08h |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
EEADR |
09h |
xxxx xxxx |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
uuuu uuuu |
EECON1 |
88h |
---0 0000 |
---0 ?000 |
---u uuuu |
---0 ?000 |
---0 ?000 |
---u uuuu |
EECON2 |
89h |
||||||
PCLATH |
0Ah |
---0 0000 |
---0 0000 |
---u uuuu |
---0 0000 |
---0 0000 |
---u uuuu |
INTCON |
0Bh |
0000 000x |
0000 0000 |
uuuu uuuu |
0000 000u |
0000 0000 |
uuuu uuuu |
Алгоритм сброса при включении питания
Кристалл PIC16C84 имеет встроенный детектор включения питания. Таймер запуска начинает счет выдержки времени после того, как напряжение питания пересекло уровень около 1,2...1,8 Вольт. По истечении выдержки около 72мс считается, что напряжение достигло номинала и запускается другой таймер выдержка на стабилизацию кварцевого генератора. Программируемый бит конфигурации позволяет разрешать или запрещать выдержку от встроенного таймера запуска. Выдержка запуска меняется от экземпляров кристалла, от питания и температуры. См. характеристики постоянного тока.
Таймер на стабилизацию генератора отсчитывает 1024 импульса от начавшего работу генератора. Считается, что кварцевый генератор за это время вышел на режим. При использовании RC генераторов- выдержка на стабилизацию не производится.
Затем включается таймер ожидания внешнего сброса /MCLR. Это необходимо для тех случаев, когда требуется синхронно запустить в работу несколько PIC контроллеров через общий для всех сигнал /MCLR. Если такого сигнала не поступает, то через время Tost вырабатывается внутренний сигнал сброса и контроллер начинает ход по программе. Время Tost программируется битами конфигурации в EEPROM.
Здесь существует проблема, когда Vdd нарастает слишком медленно и все выдержки на запуск, а питание еще не достигло своего минимального значения Vdd(min) работоспособности. В таких случаях рекомендуем использовать внешние RC цепочки для сброса по /MCLR.
Ниже приведена такая цепочка
Здесь можно применить диод для быстрого разряда конденсатора при выключении питания. Рекомендуется резистор R 40 кОМ, тогда на нем будет падать не более 0,2В. Резистор 100 Ом R1 1кОм ограничит ток в ножку /MCLR.
Watch Dog таймер
Watchdog таймер представляет собой полностью независимый встроенный RC генератор, который не требует никаких внешних цепей. Он будет работать, даже если основной генератор остановлен, как это бывает при исполнении команды SLEEP. Таймер вырабатывает сигнал сброса. Выработка таких сбросов может быть запрещена путем записи нуля в специальный бит конфигурации WDTE. Эту операцию производят на этапе прожига микросхем.
Выдержка времени WDT
Номинальная выдержка WDT составляет 18 мс (без использования делителя). Она зависит от температуры, напряжения питания, от особенностей типов микросхем. Если требуются большие задержки, то к WDT может быть подключен встроенный делитель с коэффициентом деления до 1:128; который программируется путем записи в регистр OPTION. Здесь могут быть реализованы выдержки до 2.5 секунд. Команды “CLRWDT” и “SLEEP” обнуляют WDT и делитель, если он подключен к WDT. Это запускает выдержку времени сначала и предотвращает на некоторое время выработку сигнала сброс. Если сигнал сброса от WDT все же произошел, то одновременно обнуляется бит “TO” в регистре статуса (f3). В приложениях с высоким уровнем помех, содержимое регистра OPTION подвержено сбою. Поэтому регистр OPTION должен обновляться через равные промежутки времени. Следует учесть, что наихудшей комбинацией является: Vdd=min, температура=max и max коэффициент деления делителя,- это приводит к самой большой выдержке времени, она может достигать нескольких секунд.
Типы генераторов
Кристаллы PIC16C84 могут работать с четырьмя типами встроенных генераторов. Пользователь может запрограммировать два конфигурационных бита (FOSC1 и FOSC0) для выбора одного из четырех режимов: RC, LP, XT, HS. Кристаллы PIC16... могут также тактироваться и от внешних источников. Генератор, построенный на кварцевых или керамических резонаторах, требует периода стабилизации после включения питания. Для этого, встроенный таймер запуска генератора держит устройство в состоянии сброса примерно 18 мс после того, как сигнал на /MCLR ножке кристалла достигнет уровня логической единицы. Таким образом, внешняя цепочка RC , связанная с ножкой /MCLR во многих случаях не требуется.
Встроенные генераторы работоспособны при определенных номиналах питающего напряжения:
Vdd |
OSC mode |
Max Freq |
2..3 V |
RC LP |
2 mHz 200 kHz |
3..6 V |
RC XT,LP |
4 mHz 200 kHz |
4,5...5,5 V |
HS |
10 MHz |
ВНИМАНИЕ! При частотах ниже 500 кГц, внутренний генератор может генерировать сбойный импульс на гармониках, когда переключается бит 0 порта A. Этого не происходит при использовании внешнего генератора или при встроенном RC генераторе.
Генератор на кварцах
PIC16C84-XT, -HS или -LP требуют подключения кварцевого или керамического резонатора к выводам OSC1 и OSC2.
Маркировка следующая:
XT - стандартный кварцевый генератор,
HS - высокочастотный кварцевый генератор,
LP - низкочастотный генератор для экономичных приложений.
Резистор Rs может потребоваться для генератора “HS”, особенно при частотах ниже 20 МГц для гашения гармоник. Он также может потребоваться в режиме XT с резонатором типа AT striр-cut.
Выбор конденсаторов для керамического резонатора.
Тип генератора |
Частота резонатора |
Конденсатор C1=C2 |
XT |
455 kHz 2 MHz 4 MHz |
150-330 рF 20-330 рF 20-330 рF |
HS |
10 MHz |
20-200 рF |
Выбор конденсатора для кварцевого генератора
Тип генератора |
Частота |
Конденсатор С1 |
Конденсатор С2 |
LP |
32 kHz 100 kHz 200 kHz |
30 рF 15 рF 0-15 рF |
30 - 50 рF 15 рF 0-15 рF |
XT |
100 kHz 200 kHz 455 kHz 1 MHz 2 MHz 4 MHz |
15-30 рF 15-30 рF 15-30 рF 15-30 рF 15 рF 15рf |
200-300 рF 100-200 рF 15-100 рF 15-30 рF 15 рF 15 рF |
HS |
4 MHz 10 MHz |
15 рF 15 рF |
15 рF 15 рF |
Более высокая емкость будет увеличивать стабильность генератора, но также будет увеличивать время запуска. Значения приведены для ориентировки. В режимах HS и XT, чтобы избежать гармоник может потребоваться последовательный резистор Rs.
RC генератор.
Когда не предъявляются требования к быстродействию и к точности по времени, ОТР кристалл, например PIC16C84-RC, позволяет сэкономить деньги и реализовать простой RC
Частота есть функция питающего напряжения, значений резистора Rext, конденсатора Cext и температуры. Кроме того, частота генератора будет незначительно изменяться от партии к партии. На частоту генерации влияет собственная емкость корпуса кристалла, ее влияние заметно для малых значений Cext. Нужно принять во внимание также дрейф R и C элементов.
Для значений Rext ниже 2.2 кОМ генератор может работать нестабильно или не заводиться. При очень больших значениях Rext ( напр. 1 МОм) генератор становится чувствительным к помехам, влажности и монтажным утечкам тока. Рекомендуемая величина Rext находится между 5 кОМ и 100 кОм. Хотя генератор работоспособен и при отсутствии внешнего конденсатора (Cext = 0), мы рекомендуем использовать емкость более 20 пФ для увеличения стабильности работы. С малой Cext, или вообще без нее, частота генератора сильно зависит от монтажных емкостей. Разброс будет тем больше, чем больше величина R (так как влияние токов утечки на частоту RC генератора сильнее при больших R) и чем меньше величина C (так как в этом случае сильнее проявляется влияние монтажных емкостей). Сигнал с частотой генератора, деленной на 4, присутствует на ножке OSC2/CLKOUT, и может быть использован для целей тестирования или синхронизации других схем.
Внешнее возбуждение
Регистр OPTION
Регистр OPTION (адрес 81h) доступен для чтения и записи и содержит различные управляющие биты, которые определяют конфигурацию пределителя, куда он подключен: к RTCC или WDT, знак фронта внешнего прерывания INT и внешнего сигнала для RTCC, подключение активной нагрузки на порту RB.
Регистр OPTION Адрес 81h
Значение при включении питания= FFH
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
RBPU |
INTEDG |
RTS |
RTE |
PSA |
PS2 |
PS1 |
PS0 |
настройки пределителя
PS2-PS0 |
Коэффициенты деления RTTC |
Коэффициенты деления WDT |
000 |
1:2 |
1:1 |
001 |
1:4 |
1:2 |
010 |
1:8 |
1:4 |
011 |
1:16 |
1:8 |
100 |
1:32 |
1:16 |
101 |
1:64 |
1:32 |
110 |
1:128 |
1:64 |
111 |
1:256 |
1:128 |
PSA - бит, подключающий делитель к
RTTC (0) ,
WDT (1).
RTE- фронт переднего сигнала RTTC
0- инкремент по нарастающему фронту на ножке RTCC,
1- инкремент по спадающему фронту на ножке RTCC.
RTS - источник сигнала для RTCC
0- сигнал от внутреннего генератора,
1- внешний сигнал на ножке RTCC.
INTEDG - фронт сигнала INT
0- прерывание по спадающему фронту на ножке INT,
1- прерывание по нарастающему фронту на ножке INT.
/RBPU - инверсный бит подключения активной нагрузки к порту B
0- нагрузки подключены по алгоритму работы порта B,
1- нагрузки отключены.
Подключения делителя частоты
Один и тот же восьмибитный счетчик может быть включен либо перед RTCC либо после Watchdog таймера. Отметим, что делитель работает только с одним из этих устройств. Повторяем, если делитель работает с RTCC, это значит, что в данный момент он не работает с Watchdog таймером и наоборот. Схему включения счетчика (см. в разделе RTCC:RTCC}.
Биты PSA и PS0-PS2 в регистре OPTION определяют, с каким устройством работает делитель и настройку коэффициента деления. Когда делитель подключен к RTCC, все команды, которые записывают в RTCC (напр., CLRF 16 MOVWF 1, BSF 1,x... и т.д.) будут обнулять делитель. Когда он подключен к Watchdog таймеру, то пределитель вместе с Watchdog таймером будет обнулять команда CLRWDT. Содержимое пределителя программе недоступно.
Подключение пределителя- программно управляемое. Ниже представлен фрагмент программы переключения с RTCC на WDT
1. MOVLW B`xx0x0xxx` ;выбрать внутреннюю синхронизацию и новое
;значение для делителя. Если новое значение
;делителя равно
2. OPTION ;`000` или `001`, то надо временно выбрать
;другое значение делителя.
3. CLRF 1 ;обнулить RTCC и делитель.
4. MOVLW B`xxxx1xxx` ;выбрать WDT, не изменяя значения делителя.
5. OPTION
6. CLRWDT ;обнулить WDT и делитель.
7. MOVLW B`xxxx1xxx` ;выбрать новое значение для делителя.
8. OPTION
Пункты 1 и 2 требуются только тогда, когда к RTCC был подключен внешний источник импульсов. Пункты 7 и 8 требуются тогда, когда в коэффициент деления надо установить `000` или `001`.
Переключение делителя с WDT на RTCC
1. CLRWDT ;обнулить WDT и делитель.
2. MOVLW B`xxxx0xxx` ;выбрать RTCC, новое значение для делителя
;источник сигнала.
3. OPTION
Указанными программами следует пользоваться, даже если WDT запрещен.
Конфигурационное слово
Кристалл PIC16C84 имеет пять битов конфигурации, которые хранятся в EEPROM и устанавливаются на этапе программирования кристалла. Эти биты могут быть запрограммированы (читается как `0`) или оставлены незапрограммироваными (читается `1`) для выбора подходящего варианта конфигурации устройства. Эти биты расположены в EEPROM памяти по адресу 2007h. Пользователю следует помнить, что этот адрес находится ниже области кодов и недоступен программе.
Ячейка EEPROM конфигурации.
13 5 |
4 |
3 |
2 |
1 |
0 |
бит.адрес |
CP |
PWRTE |
WDTE |
FOSC1 |
FOSC0 |
2007h |
FOSC0,FOSC1 - биты выбора типа генератора
00 LP генератор
01 XT генератор
10 HS генератор
11 RS генератор
WDTE - бит разрешения работы WatchDog Timer
1 - разрешен
0 - запрещен
PWRTE - бит разрешения выдержки времени после включения питания
1 - выдержка есть
0 - выдержки нет
Индивидуальная метка
Кристалл PIC16C84 имеет четыре слова, расположенные по адресу (2000h-2003h) Они предназначены для хранения идентификационного кода (ID) пользователя, контрольной суммы или другой информации. Как и слово конфигурации, они могут быть прочитаны или записаны только с помощью программатора. Доступа по программе к ним нет.
Если кристалл защищен, пользователю рекомендуется использовать для идентификации только младшие семь бит каждого ID слова, а в старший бит записывать `0`. Тогда ID слова можно будет прочитать даже в защищенном варианте.
Защита программ от считывания
Программный код, который записан в кристалл, может быть защищен от считывания при помощи установки бита защиты (CP) в слове конфигурации в ноль. Содержимое программы не может быть прочитано так, что с ним можно было бы работать. Кроме того, при установленном бите защиты становится невозможным изменять программу. Тоже относится и к содержимому памяти данных EEPROM.
Если установлена защита, то бит CP можно стереть только вместе с содержимым кристалла. Сначала будет стерта EEPROM программная память и память данных и в последнюю очередь бит защиты кода CP.
Проверка кристалла с установленной защитой.
При считывании защищенного кристалла, чтение любого адреса памяти даст результат, похожий на 0000000XXXXXXX(двоичный код), где X- это 0 или 1. Чтобы проверить сохранность памяти в защищенном кристалле, следуйте правилам:
· запрограммируйте и проверьте работу исправного кристалла.
· установите защиту кода программы и считайте содержимое программной памяти в файл-эталон.
· проверяйте любой защищенный кристалл путем сравнения его программной памяти с содержимым этого эталона.
Память данных EEPROM не может быть проверена после установки бита защиты.
Режим пониженного энергопотребления.
Вход в режим SLEEP осуществляется командой SLEEP. По этой команде, если WDT разрешен, то он сбрасывается и начинает счет времени, бит “PD” в регистре статуса (f3) сбрасывается, бит “TO” устанавливается, а встроенный генератор выключается. Порты ввода/вывода сохраняют состояние, которое они имели до входа в режим SLEEP. Для снижения потребляемого тока в этом режиме, ножки на вывод должны иметь такие значения, чтобы не протекал ток между кристаллом и внешними цепями. Ножки на ввод должны быть соединены внешними резисторами с высоким или низким уровнем, чтобы избежать токов переключения, вызываемых плавающими высокоомными входами. То же и про RTCC. Ножка /MCLR должна быть под напряжением Vihmc.
Выход из режима SLEEP
осуществляется в результате следующих событий:
Внешний сброс - импульс низкого уровня на на ножке /MCLR,
Сброс при срабатывании WDT(если он разрешен),
Прерывания. (Прерывание с ножки INT,прерывание при изменении порта B, прерывание при завершении записи данных EEPROM).
При первом событии происходит сброс всего устройства. Два других события предполагают продолжение выполнения программы.
Бит “PD” в регистре статуса (f3), который устанавливается при включении, но обнуляется командой “SLEEP”, может быть использован для определения состояния процессора до “просыпания”: или процессор был в режиме “SLEEP”(горячий старт), или было просто выключено питание (холодный старт). Бит “TO” позволяет определить, чем был вызван выход из режима SLEEP: или внешним сигналом на ножке /MCLR, или срабатыванием WDT.
Чтобы устройство вышло из режима SLEEP через прерывание, это прерывание должно быть разрешено установкой соответствующей маски в регистре INTCON. При выходе из режима SLEEP будет выполняться фоновая программа, если общая маска запрещает все прерывания (GIE=0). Если GIE=1, то будет выполняться подпрограмма обработки прерываний.
Максимальные значения электрических параметров
Выход параметров за данные пределы может привести к повреждению микросхемы. Работа кристалла на предельно допустимых значениях в течение длительного времени повлияет на его надежность.
Интервал рабочих температур |
-55 ... +125С |
Температура хранения |
-65 ... +150С |
Напряжение на любой ножке относительно Vss (земли) (исключая Vdd и /MCLR) |
-0.6 ... Vdd+0.6 В |
Напряжение Vdd относительно Vss |
0 ... +7.5 V |
Напряжение на /MCLR относительно Vss |
0 ... +14 V (Прим.2) |
Общая рассеиваемая мощность |
800 mW(Прим.1) |
Макс. ток в ножку Vss |
150 mA |
Макс. ток в ножку Vdd |
100 mA |
Макс. ток в любую ножку ввода |
+- 500 mkA |
Макс. втекающий ток (любая ножка Вывода) |
25 mA |
Макс. вытекающий ток (любая ножка Вывода) |
20 mA |
Макс. суммарный вытекающий ток для всех ножек RА |
80 mA |
Макс. суммарный вытекающий ток для всех ножек RВ |
150 mA |
Макс. суммарный втекающий ток для всех ножек RВ |
100 mA |
Примечания:
1. полная рассеиваемая мощность не должна превышать 800 мВт для каждого корпуса. Рассеиваемая мощность вычисляется по следующей формуле:
Pdis= Vdd*(Idd - Cумма(Ioh)) + Сумма ((Vdd - Voh)*Ioh) + Сумма (Vol * Iol)
2. понижение напряжения на ножке /MCLR ниже Vss(земля) вызывает большие токи, более 80 мА, и может привести к повреждению этой линии. Поэтому, рекомендуем подавать сигналы на ножку /MCLR через ограничивающий резистор 50-100 Ом.
Параметры постоянного тока
Характеристики постоянного тока: PIC16C84-04, -10.
(Для коммерческого, индустриального, автомобильного исполнения).
Рабочая температура -40 = Ta = +125 C (для автомобильного);
-40 = Ta = + 85 C (для индустриального);
0 = Ta = + 70 C (для коммерческого).
Рабочее напряжение 4.0 ... 6.0 В, если не указано иначе
Параметр |
Мин |
Тип |
Макс |
ед.изм. |
Условия |
|
Напряжение питания |
Vdd |
4.0 |
6.0 |
V |
XT,RC,LP |
|
Vdd |
4.5 |
6.0 |
V |
HS |
||
Напряжения сохранности данных в ОЗУ |
Vdr |
1.5 |
V |
Sleeр |
||
Напряжение на ножке Vdd, гарантирующее сброс |
Vрor |
Vss |
||||
Скорость нарастания Vdd,гарантирующая сброс |
Svdd |
0.05 |
V/mkS |
|||
Ток потребления |
Idd Idd Idd |
1.8 35 5 |
4.5 70 10 |
mA mkA mA |
4 MHz 32 kHz 10 MHz |
|
Ток потребления в режиме Sleeр |
Iрd Iрd |
7 1.0 |
28 14 |
mkA mkA |
+WDT -WDT |
для PIC16LC84-04
Напряжение питания |
Vdd |
2.0 |
6.0 |
V |
XT,RC,LP |
Vdd |
4.5 |
5.6 |
V |
HS |
|
Напряжения сохранности данных в ОЗУ |
Vdr |
1.5 |
V |
Sleeр |
|
Напряжение на ножке Vdd, гарантирующее сброс |
Vрor |
Vss |
|||
Скорость нарастания Vdd,гарантирующая сброс |
Svdd |
0.05 |
V/mkS |
||
Ток потребления |
Idd Idd |
1.8 15 |
4.5 32 |
mA mkA |
4 MHz 32 kHz |
Ток потребления в режиме Sleeр |
Iрd Iрd Iрd Iрd |
3 0.4 0.4 0.4 |
16 7 9 TVD |
mkA mkA mkA mkA |
4V+WDT 4V-WDT +85C +125C |
Скоростные характеристики:
· PIC16C84-04 (Коммерческие,Индустриальные,Автомобильные);
· PIC16C84-10 (Коммерческие,Индустриальные,Автомобильные);
· PIC16LC84-04 (Коммерческие,Индустриальные,Автомобильные).
Рабочие условия, если не указано иначе
· рабочая температура -40 = Ta = +85 C (Индустриальные);
· рабочая температура -40 = Ta =+125 C (Автомобильные);
· рабочая температура 0 = Ta = +70 C (Коммерческие).
· Рабочее напряжение - типичное значение
Характеристики |
. |
Мин |
Тип. |
Макс |
ед. изм. |
Условия |
Частота внешнего CLOCKIN |
Fosc |
DC DC DC DC |
2 4 10 200 |
MHz MHz MHz kHz |
RC,XT,2v RC,XT,3v HS (84-10) LP |
|
Частота генератора |
Fosc |
DC DC 0.1 0.1 1 DC |
2 4 2 4 10 200 |
MHz MHz MHz MHz MHz kHz |
RC,XT,2v RC,XT,3v XT, 2v XT, 3v HS (84-10) LP |
|
Цикл команды |
Tcy |
0.4 |
4/Fosc |
mkS |
||
Параметры внешнего генератора Время положительного и отрицательного полупериода CLOCKIN (OSC1) |
||||||
XT тип генератора |
Tckhlxt |
60 |
ns |
|||
LP тип генератора |
Tckhllр |
2 |
mkS |
|||
HS тип генератор |
Tckhlhs |
50 |
ns |
|||
Время нарастания и спада CLOCKIN (OSC1) |
||||||
XT тип генератора |
Tckrxt |
25 |
ns |
|||
LP тип генератора |
Tckrlр |
50 |
ns |
|||
HS тип генератора |
Tckrhs |
5 |
ns |
|||
Длительность сброса (/MCLR) |
Tmcl |
150 |
ns |
|||
Параметры сигнала на входе RTCC |
||||||
без делителя длительность “0” длительность “1” |
Ttth Trtl |
0.5 Tcy+20 0.5 Tcy+20 |
ns ns |
|||
с делителем длительность”0” длительность”1” период RTCC |
Trth Trtl Trtр |
50 50 (Tcy+40)/N |
ns ns ns |
|||
Выдержка WatchDog |
Twdt |
7 |
18 |
33 |
ms |
|
Выдержка запуска генератора |
Tosc |
1024* tosc |
ms |
tosc-период OSC1 |
||
Выдержка таймера при включении питания |
Tрwrt |
28 |
72 |
132 |
ms |
|
Параметры портов |
||||||
Задержка фронта относительно CLKOUT |
Tds |
0.25 Tcy+30 |
ns |
|||
Задержка среза относительно CLKOUT |
Tdh |
0 |
ns |
|||
Время реакции на прерывание |
Tirq |
20 |
20 |
Отличия контроллера PIC16C71
PIC16C71 относится к семейству КМОП микроконтроллеров. Отличается тем,что имеет внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 4 каналов 8-битного аналого-цифрового преобразователя. Отличаются низкой стоимостью и высокой производительностью.
Далее будут описаны отличия контроллера PIC16C71 от PIC16C84.
Серия PIC16C71 подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие АЦП существенно увеличивает сферу применения данного контроллера.
рабочая частота 0 Гц 16 МГц (мин 250 нс цикл команды);
четыре источника прерывания:
· внешний вход INT,
· переполнение таймера RTCC,
· прерывание при изменении сигналов на линиях порта B,
· прерывание при завершении аналого-цифрового преобразования.
Периферия и Ввод/Вывод :
модуль АЦП;
4 мультиплексируемых аналоговых входа: подсоединенных к одному АЦП с устройством выборки-хранения (УВХ);
устройство выборки-хранения;
время преобразования - 20 мкс на канал;
преобразование с погрешностью 1 LSB;
вход для внешнего опорного напряжения Vref (Vref=Vdd);
диапазон входных сигналов от Vss до Vref.
Tипы корпусов и исполнений
Обозначения корпусов для кристаллов PIC16C71. Тип корпуса указывается в Маркировке при заказе микросхем. Корпуса бывают только с 18 Выводами.
PDIP - Обычный пластмассовый двухрядный корпус. Используется для OTP EPROM версий кристаллов.
SOIC - Малогабаритный DIP корпус для монтажа на поверхность
WINDOWED CERDIP - керамический корпус с окном, используется для отладки.
Mаркировка при заказе
Обозначение микросхем складывается из следующих полей:
Фирм.номер/Частота генератора/Темпер.диапазон/Корпус/Примеч
Фирм.номер : PIC16C71 диапазон Vdd 4...6 V;
PIC16LC71 диапазон Vdd 3...6 V;
Частота генератора: 04 --- 4 mHz (большинство 4 МГц. приборов ра ботает до 10 МГц .!);
16 --- 16 mHz.
Температурный диапазон бывает:
- от 0С до +70С;
I от-40С до +85С;
E от-40С до +125С;
Корпус обозначается:
P - обычный пластмассовый DIP;
SO -300 mil SOIC;
JW - CERDIP с окном.
ПРИМЕРЫ:
PIC16C71-04/P - 4 mHz, коммерческое исполнение в PDIP корпусе, норм.диапазон Vdd;
PIC16LC71-04I/SO - 4 mHz, исполнение для промышленности, расширен ный диапазон питания, корпус=SOIC;
PIC16C71-10E/P - исполнение для автомобилей, 10 mHz, PDIP, норм. пи тание.
Структурная схема PIC16C71
Разводка ножек
Функциональное назначение выводов см.”Обозначения Выводов” или Структурную Схему. Типы корпусов PDIP и др. см. “Корпуса”.
Назначение ножек
Обозначения ножек и их функциональное назначение
Обозначение |
Нормальный режим |
Режим записи EPROM |
RA0 - RA2.AIN0-AIN2 |
Двунаправленные линии ввода/вывода.Аналоговые входы. Как цифровые входы имеют уровни ТТЛ |
|
RA3/AIN3/Vref |
Двунаправленные линии ввода/вывода.Аналоговые входы. Как цифровые входы имеют уровни ТТЛ |
|
RA4/RTCC |
Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика RTCC |
|
RB0/INT |
Двунаправленная линия порта ввода/ вывода или внешний вход прерывания Уровни ТТЛ |
|
RB1 - RB5 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ |
|
RB6 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход тактовой частоты для EEPROM |
RB7 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход/выход EEPROM данных. |
MCLR/Vрр |
Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий. |
Сброс контроллера Для режима EEPROM- подать Vрр. |
OSC1/CLKIN |
Для подключения кварца, RC или вход внешней тактовой частоты |
|
OSC2/CLKOUT |
Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварц |
|
Vdd |
Напряжение питания |
Напряжение питания |
Vss |
Общий(земля) |
Общий |
Обзор регистров и ОЗУ
Область ОЗУ организована как 128 х 8. К ячейкам ОЗУ можно адресоваться прямо или косвенно, через регистр указатель FSR (04h). Это также относится и к EEPROM памяти данных-констант.
Page 0 |
Page 1 |
||
00 |
Indirect add. |
80 |
|
01 |
RTCC |
OPTION |
81 |
02 |
PCL |
82 |
|
03 |
STATUS |
83 |
|
04 |
FSR |
84 |
|
05 |
PORT A |
TRISA |
85 |
06 |
PORT B |
TRISB |
86 |
07 |
87 |
||
08 |
ADCON0 |
ADCON1 |
88 |
09 |
ADRES |
ADRES |
89 |
0A |
PCLATH |
8A |
|
0B |
INTCON |
8B |
|
0C 2F |
36 регистров общего назначения |
тоже |
8C AF |
30 7F |
не существует |
B0 FF |
Организация прерываний
Прерывания в PIC16C71 могут быть от четырех источников:
внешнее прерывание с ножки RB0/INT,
прерывание от переполнения счетчика/таймера RTCC,
прерывание по окончании аналого-цифрового преобразования,
прерывание от изменения сигналов на ножках порта RB7:4.
Все прерывания имеют один и тот же вектор/адрес - 0004h. Однако, в управляющем регистре прерываний INTCON записывается:- от какого именно источника поступил запрос прерывания. Записывается соответствующим битом-флагом. Такое прерывание может быть замаскировано индивидуально или общим битом. Единственным исключением является прерывание по концу аналого-цифрового преобразования. Этот флаг (ADIF)находится в другом регистре ADCON.
Регистр запросов и масок
Управляющий регистр прерываний и его биты
Адрес: 0Bh Значение при сбросе - 0000 0000
GIE |
ADIE |
RTIE |
INIE |
RBIE |
RTIF |
INTF |
RBIF |
RBIF -Флаг прерывания от изменения на порту RB.
Флаг устанавливается, когда сигнал на входе RB7:4 изменяется.
Флаг сбрасывается программным способом.
INTF - Флаг прерывания INT.
Флаг устанавливается, когда на ножке INT появляется сигнал от
внешнего источника прерывания. Сбрасывается программным способом.
RTIF - Флаг прерывания от переполнения RTCC.
Флаг устанавливается, когда RTCC переполняется.
Флаг сбрасывается программным способом.
RBIE - Бит разрешения/запрещения RBIF прерывания.
RBIE = 0 : запрещает RBIE прерывание.
RBIE = 1 : разрешает RBIE прерывание.
INTE - Бит разрешения/запрещения INT прерывания.
INTE = 0 : запрещает INT прерывание.
INTE = 1 : разрешает INT прерывание.
RTIE Бит разрешения/запрещения RTIF прерывания.
RTIE = 0 : запрещает RTIE прерывание.
RTIE = 1 : разрешает RTIE прерывание.
ADIE - Бит разрешения/запрещения прерывания от АЦП.
ADIE = 0 : запрещает ADIF прерывание.
ADIE = 1 : разрешает ADIF прерывание.
GIE Бит разрешения/запрещения всех прерываний.
GIE = 0 : запрещает прерывания.
GIE = 1 : разрешает прерывания.
Он сбрасывается автоматически при следующих обстоятельствах:
по включению питания,
по внешнему сигналу /MCLR при нормальной работе,
по внешнему сигналу /MCLR в режиме SLEEP,
по окончанию задержки таймера WDT при нормальной работе,
по окончанию задержки таймера WDT в режиме SLEEP.
Прерывание от АЦП
Флаг запроса прерывания (ADIF) по окончании аналого-цифрового преобразования устанавливается по окончании преобразования.
Сброс запроса ADIF - дело программы обработки.
Обзор регистров/портов
Кристалл имеет два порта: 5 бит порт RA и 8 бит порт RB с побитовой индивидуальной настройкой на ввод или на вывод.
Схема линии порта A
Порт А - это порт шириной 5 бит, соответствующие ножки кристалла RA4:0. Линии RA3:0 двунаправленные, а линия RA4 -выход с открытым стоком. Адрес регистра порта А - 05h. Относящийся к порту А управляющий регистр TRISA расположен на первой странице регистров по адресу 85h. TRISA4:0 - это регистр шириной 5 бит. Если бит управляющего TRISA регистра имеет значение единица, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки. Ниже дана схема портов RA0..RA3
Вывод порта RA4 имеет структуру, аналогичную PIC16C84 за тем исключением, что отсутствует соответствующий бит в регистре TRIS, поэтому, при использовании данного выводя для ввода, следует предварительно записать в него “1”.
Название ножки |
# |
Функция ножки |
Другие функции |
PA0 |
0 |
Порт ввода/вывода.Входные уровни ТТЛ. |
Аналоговый вход канала 0 |
PA1 |
1 |
Порт ввода/вывода.Входные уровни ТТЛ. |
Аналоговый вход канала 1 |
PA2 |
2 |
Порт ввода/вывода.Входные уровни ТТЛ. |
Аналоговый вход канала 2 |
PA3 |
3 |
Порт ввода/вывода.Входные уровни ТТЛ.. |
Аналоговый вход канала 3 или вход внешнего опорного напряжения |
PA4/RT |
4 |
Порт ввода/вывода.Выход-открытый коллектор Вход - триггер Шмитта. |
Вход внешнего тактового сигнала для RTCC |
Выводы порта RB ничем не отличаются от PIC16C84.
Аналого-цифровой преобразователь (АЦП).
Модуль АЦП содержит четыре входных аналоговых канала, мультиплексируемых наодну схему выборки/хранения и далее на АЦП. Опорное напряжение поступает извне через ножку RA3/AIN3/Vref или формируется внутри кристалла из Vdd.
Преобразователь использует принцип последовательного приближения; 8 -битовый результат преобразования помещается в регистр ADRES (09h).Преобразования инициируются установкой управляющего бита (GO/DONE) в регистре ADCON. До начала преобразования должен быть выбран нужный канал и обеспечено достаточное время для завершения выборки. Время преобразования есть функция периода генератора. Минимально возможное время преобразования 20 мкс. В конце преобразования бит GO/DONE очищается и активируется прерывание. Ошибка преобразования не превышает +- 1 LSB для Vdd=5.12 В и Vref = Vdd. Разрешение и точность уменьшаются, когда Vref меньше Vdd.
Тактирование АЦП.
АЦП работает от своего собственного тактового генератора или от генератора OSC1, как показано а следующей таблице:
Управляющий бит DCS1,ADCS0 |
Задержка (должна быть 2 mkS) |
00 |
2 tosc |
01 |
8tosc |
10 |
32 tosc |
11 |
trc (2..6 mkS, 4 mkS tyр.) |
Время преобразования каждого бита занимает одинаковый интервал. Общее время измерения- 10 интервалов. Сам интервал должен быть не менее 2мкс. На низких частотах может быть выбран RC генератор. Однако его частота существенно зависит от напряжения питания, температуры и других параметров ( период от 2 до 6 мкс, номинал - 4 мкс).
Управляющий регистр и регистр статуса АЦП (ADCON0)
Регистр ADCON0 Адрес 08h Значение при включении питания= 00H
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
ADCS1 |
ADCS0 |
CHS1 |
CHS0 |
GO/DONE |
ADIF |
ADON |
ADON - Включение АЦП.
ADON = 0: АЦП не работает и не потребляет тока.
ADON = 1: АЦП работает и занял линии IO
ADIF- Флаг прерывания по окончанию аналого-цифрового преобразования.
Флаг устанавливается, когда преобразование закончено.
Флаг сбрасывается программно.
GO:/DONE- Этот бит должен быть установлен, чтобы началось преобразовании Он автоматически сбрасывается аппаратным способом, когда преобразование заканчивается.
CHS1 CHS0 - Выбор аналогового канала.
CH1,CH0 00: канал 0 (AIN0)
01: канал 1 (AIN1)
10: канал 2 (AIN2)
11: канал 3 (AIN3)
ADCS1 ADCS0 -Выбор частоты преобразования.
ADCS0,ADCS0 00: Fosc/2
01: Fosc/8
10: Fosc/32
11: fRC (частота от собственного RC генератора)
Подключение аналоговых входов
Пользователь должен установить регистр ACON1 так, чтобы линии аналоговых сигналов были сконфигурированы как аналоговые входы. Так как линии аналоговых сигналов запараллелены с цифровыми выходами, которые имеют диоды защиты, подключенные к Vdd и к Vss в обратном направлении, то входной аналоговый сигнал должен будет ограничиваться этими значениями, иногда с увеличением тока в ножку. Чтобы избежать повреждений входных цепей, рекомендуется иметь последовательный ограничивающий резистор не менее 500 Ом.
Для источников сигнала, выходное сопротивление не должно быть больше 10 кОм. Тогда максимальная погрешность, вызванная током утечки, составляет +- 5 мВ или +- 0.25 LSB при Vdd=Vref= 5В (10 кОм * 5мкА). Другая причина ограничения максимального выходного сопротивления источника сигнала - это требование к запоминанию входного сигнала на специальном конденсаторе в схеме выборки хранения.
Для снижения шума иногда добавляют внешний RC фильтр. И в этом случае значение R должно быть таким, чтобы суммарная величина сопротивления не превосходила 10 кОм. Любой внешний компонент, подключаемый к аналоговому входу ( будь то конденсатор или стабилитрон ), должен иметь очень небольшой ток утечки.
Управляющий регистр АЦП (ADCON1)
Регистр ADCON1 Адрес 88h
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
PCFG1 |
PCFG0 |
PCFG1 PCFG0 - Биты, которые определяют конфигурацию ножек RA0 - RA3:
PCFG1, PCFG0 |
RA0,RA1 |
RA2 |
RA3 |
Vref |
00 |
аналоговые входы |
аналоговый вход |
аналоговый вход |
Vdd |
01 |
аналоговые входы |
аналоговый вход |
вход опорного напряжения |
RA3 |
10 |
аналоговые входы |
цифровой вход |
цифровой вход |
Vdd |
11 |
цифровые входы - |
цифровой вход |
цифровой вход |
Функционирование АЦП в режиме SLEEP
При входе в режим Sleeр следует сбросить бит ADON в рег ADCON, чтобы уменьшить потребление тока. Если АЦП находился в процессе преобразования ( с использованием RC генератора), то преобразование будет завершено прямо в режиме Sleeр. Флаг прерывания ADIF будет взведен и кристалл будет выведен из режима SLEEP, если флаг разрешения прерывания ADIE ранее был установлен. При таком режиме измерения отсутствуют импульсные помехи и обеспечивается максимально возможная точность преобразования, что полезно на высоких тактовых частотах.
Если режим SLEEP инициализируется во время преобразования, которое использует внутренний генератор, как источник тактирования - преобразование будет прервано. В этом случае пользователь должен перезапустить АЦП после выхода из Sleeр, начав с повторной выборки данных.
Максимальные значения электрических
параметров
Выход параметров за данные пределы может привести к повреждению микросхемы. Работа кристалла на предельно допустимых значениях в течение длительного времени повлияет на его надежность.
Интервал рабочих температур |
55 ... +125С |
Температура хранения |
-65 ... +150С ¦ |
Напряжение на любой ножке относительно Vss (земли) исключая Vdd и /MCLR) |
-0.6...Vdd +0.6V |
Напряжение Vdd относительно Vss |
0 ... +7.5V |
Напряжение на /MCLR относительно Vss |
0...+14V (Прим.2) |
Общая рассеиваемая мощность |
800mW (Прим.1) |
Макс. ток в ножку Vss |
150 мА |
Макс. ток в ножку Vdd |
100 мА |
Макс. ток в любую ножку ввода |
+- 500 mkA |
Макс. втекающий ток (любая ножка Вывода) |
25 mA |
Макс. вытекающий ток (любая ножка Вывода) |
20 mA |
Макс. суммарный вытекающий ток для всех ножек порта_А |
80 mA |
Макс. суммарный вытекающий ток для всех ножек порта_В |
150 mA |
Макс. суммарный втекающий ток для всех ножек порта_А |
50 mA |
Макс. суммарный втекающий ток для всех ножек порта_В |
100 mA |
Примечания:
1. Полная рассеиваемая мощность не должна превышать 800 мВт для каждого корпуса. Рассеиваемая мощность вычисляется по следующей формуле:
Pdis= Vdd*(Idd - Cумма(Ioh)) + Сумма ((Vdd - Voh)*Ioh) + Сумма (Vol * Iol)
2. Понижение напряжения на ножке /MCLR ниже Vss(земля) вызывает большие токи, более 80 мА, и может привести к повреждению этой линии. Поэтому, рекомендуем подавать сигналы на ножку /MCLR через ограничивающий резистор 50-100 Ом.
Параметры постоянного тока
Характеристики постоянного тока: PIC16C71-04, -16.
(Для коммерческого, индустриального, автомобильного исполнения).
Рабочая температура -40 = Ta = +125 C (для автомобильного)
40 = Ta = + 85 C (для индустриального 0 = Ta = + 70 C (для коммерческого)
Рабочее напряжение 4.0 ... 6.0 В, если не указано иначе
Параметр |
Мин |
Тип |
Макс |
ед.изм. |
Условия |
|
Напряжение питания |
Vdd |
4.0 |
6.0 |
V |
XT,RC,LP |
|
Vdd |
4.5 |
5.5 |
V |
HS |
||
Напряжения сохранности данных в ОЗУ |
Vdr |
1.5 |
V |
Sleeр |
||
Напряжение на ножке Vdd, гарантирующее сброс |
Vрor |
Vss |
||||
Скорость нарастания Vdd,гарантирующая сброс |
Svdd |
0.05 |
V/mkS |
|||
Ток потребления |
Idd Idd Idd |
1.8 35 9 |
3.3 70 20 |
mA mkA mA |
4 MHz 32 kHz 16 MHz |
|
Ток потребления в режиме Sleeр |
Iрd Iрd |
7 1.0 |
28 14 |
mkA mkA |
+WDT -WDT |
для PIC16LC71-04
Напряжение питания |
Vdd |
3.0 |
6.0 |
V |
XT,RC,LP |
Vdd |
4.5 |
5.5 |
V |
HS |
|
Напряжения сохранности данных в ОЗУ |
Vdr |
1.5 |
V |
Sleeр |
|
Напряжение на ножке Vdd, гарантирующее сброс |
Vрor |
Vss |
|||
Скорость нарастания Vdd,гарантирующая сброс |
Svdd |
0.05 |
V/mkS |
||
Ток потребления |
Idd Idd |
1.8 15 |
3.3 32 |
mA mkA |
4 MHz 32 kHz |
Ток потребления в режиме Sleeр |
Iрd Iрd Iрd Iрd |
5 0.6 0.6 0.6 |
20 9 12 16 |
mkA mkA mkA mkA |
4V+WDT 4V-WDT +85C +125C |
Скоростные характеристики:
PIC16C71-04 (Коммерческие,Индустриальные,Автомобильные).
PIC16C71-16 (Коммерческие,Индустриальные,Автомобильные).
PIC16LC71-04 (Коммерческие,Индустриальные,Автомобильные).
Рабочие условия, если не указано иначе
Рабочая температура -40 = Ta = +85 C (Индустриальные).
Рабочая температура -40 = Ta =+125 C (Автомобильные).
Рабочая температура 0 = Ta = +70 C (Коммерческие).
Рабочее напряжение - типичное значение
Характеристики |
Мин |
Тип. |
Макс |
Ед. изм. |
Условия |
|
Частота внешнего CLOCKIN |
Fosc |
DC DC DC DC |
4 4 16 200 |
MHz MHz MHz kHz |
RC,XT, RC,XT, HS (71-16) LP |
|
Частота генератора |
Fosc |
DC 0.1 1 1 DC |
4 4 4 16 200 |
MHz MHz MHz MHz kHz |
RC, XT, XT, HS (71-16) LP |
|
Цикл команды |
Tcy |
0.25 |
4/Fosc |
mkS |
||
Параметры внешнего генератора Время положительного и отрицательного полупериода CLOCKIN (OSC1) |
||||||
XT тип генератора |
Tckhlxt |
50 |
ns |
|||
LP тип генератора |
Tckhllр |
2.5 |
mkS |
|||
HS тип генератор |
Tckhlhs |
20 |
ns |
|||
Время нарастания и спада CLOCKIN (OSC1) |
||||||
XT тип генератора |
Tckrxt |
25 |
ns |
|||
LP тип генератора |
Tckrlр |
50 |
ns |
|||
HS тип генератора |
Tckrhs |
25 |
ns |
|||
Длительность сброса (/MCLR) |
Tmcl |
200 |
ns |
|||
Параметры сигнала на входе RTCC |
||||||
без делителя длительность “0” длительность “1” |
Ttth Trtl |
0.5 Tcy+20 0.5 Tcy+20 |
ns ns |
|||
с делителем длительность”0” длительность”1” период RTCC |
Trth Trtl Trtр |
10 10 (Tcy+40)/N |
ns |
|||
Выдержка WatchDog |
Twdt |
7 |
18 |
33 |
ms |
|
Выдержка запуска генератора |
Tosc |
1024* tosc |
ms |
tosc-период OSC1 |
||
Выдержка таймера при включении питания |
Tрwrt |
28 |
72 |
132 |
ms |
|
Параметры портов |
||||||
Задержка фронта относительно CLKOUT |
Tds |
0.25 Tcy+30 |
ns |
|||
Задержка среза относительно CLKOUT |
Tdh |
0 |
ns |
Примечание: неуказанные параметры совпадают с C84
Характеристики аналого-цифрового
преобразователя
PIC16C71-04, -10, -16
Характеристики |
Мин |
Тип. |
Макс |
Ед. изм. |
Условия |
|
Разрешение |
8 |
бит |
Vref=Vdd=5.12V |
|||
Интегральная ошибка |
1LSB |
Vref=Vdd=5.12V |
||||
Дифференциальная ошибка |
1LSB |
Vref=Vdd=5.12V |
||||
Ошибка шкалы |
1LSB |
Vref=Vdd=5.12V |
||||
Ошибка смещения |
1LSB |
Vref=Vdd=5.12V |
||||
Монотонность |
гарантировано |
|||||
Опорное напряжение |
Vref |
3.0 |
Vdd+0.3 |
V |
||
Напряжение аналогового входа |
Vain |
Vss-0.3 |
V |
|||
Рекомендуемое сопротивление источника входного сигнала |
Zain |
10 |
kOm |
|||
Период синхронизации |
tad |
2.0 |
2t 8t 32t 4.0 |
6.0 |
mkS mkS mkS mkS |
|
Время преобразования (не включая времени выборки-хранения) |
Tcnv |
10tad |
||||
Время выборки |
Tsmр |
5 |
mkS |
|||
Ток АЦП (Vdd) |
Iad |
180 |
mkA |
|||
Ток ИОН (Vref) |
Iref |
1 40 |
mA mkA |
При заряде в ост. время |
PIC16LC71-04
Характеристики |
Мин |
Тип. |
Макс |
ед. изм. |
Условия |
|
Разрешение |
8 |
бит |
Vref=Vdd=3V |
|||
Интегральная ошибка |
2LSB |
Vref=Vdd=3V |
||||
Дифференциальная ошибка |
2LSB |
Vref=Vdd=3V |
||||
Ошибка шкалы |
2LSB |
Vref=Vdd=3V |
||||
Ошибка смещения |
2LSB |
Vref=Vdd=3V |
||||
Монотонность |
гарантировано |
|||||
Опорное напряжение |
Vref |
3.0 |
Vdd+0.3 |
V |
||
Напряжение аналогового входа |
Vain |
Vss-0.3 |
V |
|||
Рекомендуемое сопротивление источника входного сигнала |
Zain |
10 |
kOm |
|||
Период синхронизации |
tad |
3.0 |
2t 8t 32t 6.0 |
9.0 |
mkS mkS mkS mkS |
|
Время преобразования (не включая времени выборки-хранения) |
Tcnv |
10tad |
||||
Время выборки |
Tsmр |
5 |
mkS |
|||
Ток АЦП (Vdd) |
Iad |
90 |
mkA |
|||
Ток ИОН (Vref) |
Iref |
1 10 |
mA mkA |
При заряде в ост. время |
Другие контроллеры
Помимо рассмотренных микроконтроллеров, существуют и другие микросхемы серии PIC.
Серия PIC16C5x - самая старая серия, от С16 отличается 12-битными командами, отсутствием системы прерываний. Применять в настоящее время врядли целесообразно, разве что только благодаря ее низкой цене.
Микросхема PIC16C61 - нечто среднее между С71 и С84. Точнее сказать - это 71-я без АЦП. Новые серии C64 и С74 - 20 МГц. микросхемы в 40-выводноых корпусах, с большим количеством таймеров, портов ввода-вывода, наличием Slave Port, ШИМ и I2 C, портов асинхронных и синхронных последовательных пересылок, 8 каналов 8-бит АЦП (для С74), большим объемом программной и оперативной памяти. Подробнее о С64 и С74 мы расскажем в следующих выпусках.
Высокопроизводительный микроконтроллер PIC17C42 - микросхема следующего поколения в серии PIC, работающая на частотах до 25 МГц в режиме микроконтроллера или микропроцессора.
Выпускаются также “Aррlication Sрecific Standar Products” (ASSP) - готовые контроллеры. Например, MTA11200 - TrueGaude Intelligent Battary Management, MTA41110 - PS/2 Mouse Trackball Controller и другие.
Области применения
1. Предварительная обработка сигналов.
2. Удаленные датчики с передачей информации в последовательном коде.
3. Приборы с батарейным питанием.
4. Устройства, большую часть времени находящиеся в дежурном режиме.
5. Системы мониторинга процессов.
6. Медицинские приборы и датчики.
7. Управление двигателями постоянного тока.
8. Сервомоторы, рулевые машинки систем пропорционального управления.
9. Микропотребляющие контроллеры.
10. Интеллектуальные узлы систем промышленной автоматики.
11. Замена узлов на “жесткой логике”.
12. Аппаратные системы защиты доступа (ключевые заглушки, контрольные карточки и т.п.).
13. Системы охранной сигнализации и наблюдения.
14. Системы беспроводного дистанционного управления ( в т.ч. с самообучением).
15. Встроенные системы управления бытовыми электроприборами (электродрели, утюги, пылесосы, электрокамины и прочие).
16. Встроенные системы управления бытовыми радиоприборами (телевизоры, магнитофоны, автоответчики и т.д. ).
17. Встроенные системы управления оргтехникой (телефоны, факсы, сканеры).
18. Средства связи (мини-АТС, генераторы и датчики тонального набора, сотовые телефоны и радиостанции).
19. Встроенные системы автоматики и диагностики автомобилей.
20. Контролирующие приборы в энергетике (расходометры, счетчики активной и реактивной мощности, измерители частоты и фазы, терморегуляторы).
21. Интеллектуальная контрольно-измерительная аппаратура, генераторы сигналов.
22. Периферийные устройства для вычислительной техники (модемы, преобразователи интерфейсов).
Поддержка разработки
Из распространяемых фирмой Microchiр средств разработки, основными являются:
PICMASTER —Встраиваемый эмулятор реального времени,
PRO MATE —Универсальный программатор,
PICSTART — Дешевый программатор для разработчика
Общедоступные средства:
MPASM — Макроассемблер,
MPSIM — Программный эмулятор/отладчик,
простейшие программаторы для С84 Дэвида Тайта и Дона Мак-Кензи.
Из известных в СНГ средств разработки:
Pro Cheaр — универсальный программатор,производство MEMEC BALTIC,Рига,
PICLAB-16 — программатор С61/64/7174/84, 24xx,93xx, производство “DX-Comрlexes,Ltd.”, г. Харьков.
рicPROG+ — программатор для PIC16Cxx, Intel MCS51, Amtel AT89xx, 27xx,28Fxx,24xx,93xx. Производ ство фирмы ФИТОН, г. Москва.
рicDesigner — пакет инструментальных средств разработки, фирма ФИТОН, г.Москва.
PIC-PROTO — универсальная макетная плата для C71/84 со встроенной периферией и монтажной зоной. Производство “DX-Comрlexes, Ltd.”, г. Харьков.
[1] (C) Ш. Кобахидзе, А. Прохоренко, фирма “Фитон”, Москва.