1. Состав и назначение семейств pic-контроллеров
МК семейства объединяют все передовые технологии: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры. Номенклатура обеспечивает использование для разнообразных сфер применения. Первые МК PIC16C5x появились в конце 1980-х.
Высокая скорость выполнения команд в PIC-контроллерах достигается за счет использования 2шинной гарвардской архитектуры вместо традиционной 1шинной фон-неймановской. Основываясь на наборе регистров с разделенными шинами и адресными пространствами для команд и данных. Все ресурсы МК, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры. МК PIC содержат RISC-процессор с симметричной системой команд, позволяющей выполнять операции с любым регистром, используя произвольный метод адресации. Пользователь может сохранять результат операции в самом регистре-аккумуляторе или во втором регистре, используемом для операции.
В настоящее время компания выпускает пять основных семейств 8-разрядных RISC-МК, совместимых снизу вверх по программному коду:
PIC12CXXX - МК с 8-выводным исполнением. Эти МК выпускаются как с 12-разрядной (33 команды), так и с 14-разрядной (35 команд) системой команд. Содержат тактовый генератор, таймер/счетчик, сторожевой таймер, схему управления прерываниями. Есть МК с 8-разрядным 4канальным АЦП. Способны работать при U питания до 2,5 В;
PIC16C5X - МК с 12-разрядными командами (33 команды), в 18, 20 и 28-выводных корпусах. Представляют собой простые МК с минимальной периферией. Способность работать при малом напряжении питания (до 2 В). В состав семейства входят МК подгруппы PIC16HV5XX, способные работать от батареи в диапазоне до 15В;
PIC16CXXX – семейство МК среднего уровня с 14-разрядными командами (35 команд). Наиболее многочисленное семейство, объединяющее МК с разнообразными периферийными устройствами;
PIC17CXXX - семейство высокопроизводительных МК с расширенной системой команд 16 разрядного формата (58 команд), работающие на частоте до 33 МГц, с объемом памяти программ до 16К слов. Кроме обширной периферии, 16-уровневого аппаратного стека и векторной системы прерываний, почти все МК этого семейства имеют встроенный аппаратный умножитель 8x8, выполняющий операцию умножения за один машинный цикл. Являются одними из самых быстродействующих в классе 8-разрядных МК;
PIC18CXXX - семейство высокопроизводительных МК с расширенной системой команд 16-разрядного формата (75 команд) и встроенным 10-разрядным АЦП, работающие на частоте до 40 МГц. Содержат 31-уровневый аппаратный стек, встроенную память команд до 32К слов и способны адресовать до 4 Кбайт памяти данных и до 2 Мбайт внешней памяти программ. Расширенное RISC-ядро МК данного семейства оптимизировано под использование нового Си-компилятора.
Полный список выпускаемых модификаций PIC-контроллеров включает порядка пятисот наименований. Поэтому продукция компании перекрывает почти весь диапазон применений 8-разрядных МК.
Из программных средств отладки наиболее известны и доступны различные версии ассемблеров, а также интегрированная программная среда MPLAB. Российские производители программаторов и аппаратных отладочных средств также уделяют внимание PIC-контроллерам. Выпускаются как специализированные программаторы, такие как PICPROG, программирующие почти весь спектр PIC-МК, так и универсальные: UNIPRO и СТЕРХ, поддерживающие наиболее известные версии PIC-контроллеров.
Наиболее распространенными семействами являются Р1С16СХХХ и Р1С17СХХХ.
2,4. PIC16F84
Устройство | Память программ (слов) | Память данных ОЗУ | Память данных ЭСППЗУ |
PIC16F84 | 1K FLASH | 68 байт | 64 байт |
Высокопроизводительный RISC-процессор:
Всего 35 простых для изучения инструкции
Все инструкции исполняются за один такт (400 нс), кроме инструкций перехода, выполняемых за два такта
Скорость работы: тактовая частота до 10 МГц минимальная длительность такта 400 нс
14 битовые команды
8 - битовые данные
15 аппаратных регистров специального назначения
8-уровневый аппаратный стек
Прямой, косвенный и относительный режимы адресации для данных и инструкций
четыре источника прерывания: - внешний вход RB0/INT - переполнение таймера TMR0 - прерывание при изменении сигналов на линии порта B (PORTB<7:4>) - по завершению записи данных в ЭСППЗУ (EEPROM)
1000 циклов записи/стирания FLASH памяти программы
10 000 000 циклов записи/стирания памяти данных ЭСППЗУ
Период хранения данных ЭСППЗУ > 40 лет
Периферия:
13 линий ввода/вывода с индивидуальным контролем направления
Сильноточные схемы для непосредственного управления светодиодными индикаторами: - 25 мА макс. вытек. ток - 20 мА макс. втек. ток
Timer0: 8-разрядный таймер/счетчик с 8-разрядным программируемым предварительным делителем
Особенности микроконтроллера:
Программирование на плате через последовательный порт (ICSPT) (с использованием двух выводов)
Сброс при включении питания (POR)
Таймер включения питания (PWRT) и таймер запуска генератора (OST)
Сброс по падению напряжения питания
Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы
Программируемая защита кода
Режим экономии энергии (SLEEP)
Выбираемые режимы тактового генератора
Технология КМОП:
Экономичная, высокоскоростная технология КМОП ЭППЗУ/ЭСППЗУ
Полностью статическая архитектура
Широкий рабочий диапазон напряжений питания - от 2,0В до 6,0В
Коммерческий, промышленный и расширенный температурный диапазоны
Низкое потребление энергии: - < 2 мА при 5,0 В, 4,0 МГц - 15 мкА (типичное значение) при 2 В, 32 кГц - < 1,0 мкА (типичное значение) в режиме STANDBY при 2В
3,5. PIC16F676
Высокопроизводительный RISC-процессор:
Всего 35 простых для изучения инструкции
Все инструкции исполняются за один такт (200 нс), кроме инструкций перехода, выполняемых за два такта, минимальная длительность такта 200 нс
Тактовая частота: - DC - 20МГц, внутренний генератор/внешний тактовый сигнал - DC - 200нс цикл инструкции
Память - 1024 x 14 слов FLASH памяти программ - 64 x 8 байт памяти данных (ОЗУ) - 128 x 8 байт EEPROM памяти данных
Поддержка прерываний
8-уровневый аппаратный стек
Прямой, косвенный и относительный режимы адресации для данных и инструкций
Периферия:
12 индивидуально настраиваемых портов ввода/вывода
Сильноточные схемы портов ввода/вывода
Модуль аналогового компаратора: - один аналоговый компаратор; - интегрированный программируемый источник опорного U для компаратора; - мультиплицируемые входы; - возможность подключение выхода компаратора к выводу микроконтроллера.
Модуль АЦП (только для PIC16F676): - разрядность 10 бит; - 8 программируемых канала; - вход источника опорного напряжения.
Timer0: 8-разрядный таймер/счетчик
Timer1: 16-разрядный таймер/счетчик: - вход включения таймера; - OSC1 и OSC2 могут использоваться в качестве выводов LP генератора для Timer1 в INTRC режиме тактового генератора.
Особенности микроконтроллера:
Сброс при включении питания (POR)
Таймер включения питания (PWRT) и таймер запуска генератора (OST)
Сброс по снижению напряжения питания (BOR)
Сторожевой таймер (WDT) с собственным встроенным RC-генератором.
Мультиплицируемый вывод -MCLR
Прерывания по изменению сигнала на входе
Подтягивающие резисторы с отдельным битом включения для каждого вывода
Программируемая защита кода
Режим энергосбережения (SLEEP)
Выбор источника тактового сигнала: RC - внешний RC генератор; INTOSC - внутренний генератор 4МГц; EC - внешний тактовый сигнал; XT - стандартный резонатор; HS - высокочастотный резонатор; LP - низкочастотный резонатор.
Программирование на плате через последовательный порт (ICSPT) (с использованием двух выводов)
Быстрый выход из режима SLEEP в режиме INTOSC тактового генератора (8 тактов/2мкс)
Отладка на плате через последовательный порт (ICD) (с использованием двух выводов)
Технология КМОП:
Экономичная, высокоскоростная КМОП технология
Полностью статическая архитектура
Широкий рабочий диапазон напряжений питания PIC16F640/676 - от 2,0В до 5,5В
Промышленный и расширенный температурный диапазоны
Низкое энергопотребление < 1.0мА @ 5.5В, 4МГц 400 мкА (типовое) @ 2.0В, 4МГц < 1.0мкА в SLEEP режиме @ 2.0В
Архитектура основана на концепции раздельных шин адреса и шина команды. ШД и память данных имеют ширину 8 бит, а память программ и шины команд имеют ширину 14 бит.
2-х ступенчатый конвейер обеспечивает одновременную выборку и исполнение команды с перекрытием во времени. Все команды исполняются за 1 цикл, кроме команд переходов (два цикла).
МК может прямо или косвенно обращаться к регистрам или памяти данных. Все спец. функции, включая Сч команд, отображаются на память данных.
МК содержит 8-разрядное АЛУ и рабочий регистр W. АЛУ явл. арифметическим модулем общего назначения и выполняет арифмет. и лог. функции над содержимым рабочего регистра W и любого из регистров МК. АЛУ выполняет операции +;-;сдвига и лог. операции (и,или,искл. или инверсия). В зависимости от результата операции АЛУ генерирует флаги операции:
Z-признак нулевого результата.
DC- признак десятичного переноса.
C- перенос.
- 1. Состав и назначение семейств pic-контроллеров
- 6. Схема тактирования и цикл выполнения команды в мк pic16f84
- 7. Организация памяти программ и стека
- 8. Организация памяти данных
- 9. Регистры специального назначения pic16f84: регистр status
- 10. Регистры специального назначения pic16f84: регистр option
- 11. Регистры специального назначения pic16f84: регистр intcon
- 12. Регистры специального назначения pic16f84: счетчик команд pcl и pclath
- 13. Прямая и косвенная адресация в мк pic16f84
- Порт ввода/вывода «а» мк pic16f84
- Порт ввода/вывода «в» мк pic16f84
- Модуль таймера tmr0 мк pic16f84
- Память данных eeprom мк pic16f84
- 18 Организация прерываний в мк pic16f84
- 19 Работа с модулем ацп в мк pic16f676
- 20. Работа с модулем опорного напряжения в мк
- 21 Работа с модулем компаратора в мк
- 22 Форматы команд pic16f84a
- 23 Команды работы с байтами в мк pic16f84
- 24 Команды работы с битами в мк pic16f84
- 25 Команды управления в мк pic16f84
- 26 Команды работы с константами в мк pic16f84
- 27 Синтаксис ассемблера mpasm: метки, мнемоники, операнды, комментарии
- Директивы языка mpasm
- Языки программирования плк
- Промышленные сети и интерфейсы: Can