PIC — серия микроконтроллеров, имеющих гарвардскую архитектуру и производимых американской компанией Microchip Technology Inc. Название PIC является сокращением от , что означает «контроллер интерфейса периферии». Название объясняется тем, что изначально микроконтроллеры серии PIC предназначались для расширения возможностей ввода-вывода 16-битовых микропроцессоров CP1600Great microprocessors of the past and present (V 13.4.0) .

Под маркой PIC фирмой Microchip выпускаются 8-, 16- и 32-битовые микроконтроллеры и цифровые сигнальные контроллеры (DSC), отличительной особенностью которых является хорошая преемственность различных семейств: программная совместимость (общие средства разработки: бесплатная IDE MPLAB, общие библиотеки, общие стеки наиболее популярных протоколов передачи данных), совместимость по выводам, по периферии, по напряжениям питания. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, отличающимися объёмами памяти, количеством выводов, производительностью, диапазонами напряжений питания, рабочими температурами и др.

Широкая номенклатура, дающая возможность использования в конкретном изделии оптимального с точки зрения цены микроконтроллера (в том числе наличие в линейке однократно программируемых микроконтроллеров), низкое энергопотребление, большая гибкость и универсальность семейства являются причиной выбора PIC-контроллеров производителями электроники в качестве базового семейства для своих изделий.

8-битовые микроконтроллеры 8-битовые микроконтроллеры делятся на два больших семейства: PIC10/12/16 и PIC18.

8-битовые микроконтроллеры PIC10/12/16/18 Ядра 8-битовых микроконтроллеров PIC10/12/16 могут быть построены одной из двух архитектур: BASELINE и MID-RANGE.

Архитектура базового (BASELINE) семейства Архитектуру BASELINE имеют ядра контроллеров семейства PIC10 и часть контроллеров семейств PIC12 и PIC16. Отличительные черты: ширина слова памяти программ: ; количество поддерживаемых машинных инструкций: 35; количество выводов (контактов): от 6 до 28; дешевизна (по сравнению с другими решениями фирмы Microchip); поддержка широкого диапазона напряжений питания; возможность работы при низких напряжениях (применимо, например, в устройствах с батарейным питанием); низкое потребление тока; малые габаритные размеры корпуса; наличие встроенной flash-памяти для программ.

Архитектура среднего (MID-RANGE) семейства Архитектуру MID-RANGE имеют ядра микроконтроллеров серий PIC12 и PIC16. Отличительные черты: ширина слова памяти программ: ; количество поддерживаемых машинных инструкций: 35; количество выводов: от 6 до 64; работа в диапазоне напряжений питания от 2,0 до ; малый ток потребления; поддержка системных прерываний; аппаратная поддержка стека; наличие встроенной flash-памяти для программ; наличие энергонезависимой памяти типа EEPROM для данных; поддержка периферии (USB, SPI, I²C, USART, LCD, компараторов, АЦП и т. п.); производительность: .

Расширенная архитектура среднего (MID-RANGE) семейства Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты: ширина слова памяти программ: ; количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка C, позволяющих снизить размер кода на 40 %); увеличенный объём памяти программ и данных; более глубокий и улучшенный аппаратный стек; дополнительные источники сброса; поддержка периферийных устройств с модулем mTouch™ (используется для создания сенсорных пользовательских интерфейсов); уменьшенное время входа в прерывание; производительность увеличена до .

8-битовые микроконтроллеры PIC18 Отличительные черты микроконтроллеров семейства PIC18F: ширина слова памяти программ: ; возможность подключения следующей периферии: 10-битовых и 12-битовых АЦП, компараторов, ШИМ, захват/сравнение, драйверов, ЖКИ, периферии с интерфейсами USB, CAN, I²C, SPI, USART, Ethernet, TCP/IP, ZigBee и др.; производительность: до ; объём памяти программ: до ; количество выводов: от 18 до 100; поддержка технологии NanoWatt; наличие программируемого генератора; поддерживаемые напряжения питания: 3,3 и ; совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.

16-битовые контроллеры Компания Microchip производит два семейства 16-разрядных микроконтроллеров (MCU) и два семейства 16-разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Основные черты всех 16-разрядных семейств: ширина слова памяти программ: ; совместимость по выводам; единая система команд; общие компиляторы Си и средства разработки; количество выводов: от 18 до 100; объём flash-памяти: от 6 до .

16-битовые микроконтроллеры PIC24F и PIC24H Основные особенности: выполнение команды за 2 такта генератора; гарантированное время отклика на прерывание — 5 командных тактов; доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт; аппаратный умножитель (за 1 такт); аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов); диапазон питающих напряжений 1.8…, один источник питания; внутрисхемное и самопрограммирование; встроенный генератор с PLL; расширенная периферия (до 3 SPI, до 3 I2C, до 4 UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG); модуль измерения времени заряда (CTMU), основное применение — управление ёмкостными сенсорами; ток портов ввода-вывода общего назначения — ; порты толерантны к устройствам с питанием ; поддержка до девяти 16-битовых таймеров общего назначения; поддержка до восьми модулей захвата; поддержка нескольких энергосберегающих режимов; поддержка до двух АЦП (32 канала) с конфигурируемой разрядностью; поддержка до восьми 16-битовых модулей сравнения / генерации ШИМ; программное переназначение выводов (PPS); прямой доступ к памяти DMA (у PIC24H); расширенный набор инструкций; 16 ортогональных регистров общего назначения; векторная приоритетная система прерываний; и другие особенности (методы адресации, аппаратные циклы).

16-битовые микроконтроллеры представлены в двух модификациях — PIC24F и PIC24H, отличающихся технологией изготовления flash-памяти программ. Это определяет диапазон питающих напряжений — для PIC24F — 2,0…, для PIC24H — 3,0….

Контроллеры первого семейства (PIC24F) производятся по более дешёвой технологии () и работают с максимальной производительностью ядра (, ). Контроллеры второго семейства (PIC24H) производятся с использованием более сложного техпроцесса, что позволяет добиться большей скорости работы (, ). Контроллеры обоих семейств поддерживают внутрисхемное программирование (ICSP) и самопрограммирование (RTSP).

Контроллеры цифровой обработки сигналов dsPIC30F и dsPIC33F Компания Microchip предлагает два семейства 16-разрядных микроконтроллеров с flash-памятью и с поддержкой команд цифровой обработки сигналов — dsPIC30F и dsPIC33F. Быстродействие ( для dsPIC30F, для dsPIC33FJ, для dsPIC33EP) и эффективная система команд позволяют использовать контроллеры в системах реального времени. Особенности: расширенная система команд, включающая специфические команды поддержки цифровой обработки сигналов (DSP); 24-разрядные инструкции выполняются за 4 периода тактовой частоты у dsPIC30F и за 2 — у dsPIC33FJ(EP), за исключением команд деления, команд переходов, команд пересылки данных из регистра в регистр и табличных команд; разрядность программного счётчика () позволяет адресовать до слов программной памяти (*); аппаратная поддержка циклов типа DO и REPEAT, выполнение которых не требует дополнительных издержек программной памяти и времени на анализ условий окончания. В то же время эти циклы могут быть прерваны событиями прерывания в любой момент; 16 рабочих регистров. В регистрах можно хранить данные, адрес или смещение адреса; два класса команд: микроконтроллерные инструкции (MCU) и команды цифровой обработки сигналов (DSP). Оба этих класса равноправно встроены в архитектуру контроллера и обрабатываются одним ядром; различные типы адресации; система команд оптимизирована для получения максимальной эффективности при программировании на языке высокого уровня Си.

Если о PIC24F можно говорить, как об усечённом доработанном варианте dsPIC30F (без ядра ЦОС, с трёхвольтовым питанием и переработанным конвейером), то PIC24H — это усечённый вариант dsPIC33F. Хотя в данном сравнении нарушены причинно-следственные связи, технически оно верно. Ядро dsPIC33F полностью аналогично ядру dsPIC30F, за исключением того, что в dsPIC33F команда выполняется за два такта генератора. Семейства полностью совместимы по набору инструкций, программной модели и способам адресации, что позволяет использовать библиотеки и исходные коды программ, написанные для dsPIC30F. Особо следует отметить переработанную по сравнению с dsPIC30F систему тактирования. dsPIC33F, как и семейство PIC24H, имеют PLL с дробным коэффициентом умножения (настраиваемым программно), что позволяет получить сетку частот от до с шагом при использовании кварцевого резонатора. Кроме того, контроллеры dsPIC33F и PIC24H имеют два внутренних высокостабильных RC-генератора с частотами и . Отдельный делитель тактовой частоты ядра (модуль DOZE) присутствует во всех новых контроллерах 16-битовых семейств. Он позволяет уменьшить тактовую частоту, подаваемую на ядро, независимо от тактовой частоты периферийных модулей, что необходимо для уменьшения потребления в энергоограниченных приложениях. Большой выбор периферии.

Периферия общего назначения: календарь и часы реального времени RTCC; аппаратный подсчёт CRC; расширенная периферия (SPI, I2C, UART (с поддержкой IrDA, LIN), CAN (ECAN)); 10- и 12-битовые АЦП; компараторы; 10- и 16-битовые ЦАП; прямой доступ к памяти (DMA); ведущий параллельный порт (PMP); программное переназначение выводов (PPS); многоуровневая система защиты кода (code guard).

Периферия, предназначенная для управления двигателями и преобразователями энергии: специализированный ШИМ для управления приводом (motor control PWM); интерфейс квадратурного энкодера.

Периферия для импульсных источников питания (SMPS): специализированный ШИМ с высоким разрешением (SMPS PWM); специализированные АЦП (SMPS ADC).

Периферия для работы со звуком: 12-битовый АЦП; 16-битовый ЦАП; специализированный ШИМ (output compare PWM); интерфейс кодирования данных DCI (I2S, AC97).

Периферия, предназначенная для управления графическими дисплеями: ведущий параллельный порт PMP (QVGA); модуль измерения времени заряда CTMU (сенсорные дисплеи touch-screen).

32-битовые микроконтроллеры Отличительные черты семейства 32-разрядных микроконтроллеров PIC32: разрядность: ; ядро: MIPS32 M4K; частота тактирования ядра: до (для серии MX) и до (для серии MZ); выполнение большинства команд за 1 такт генератора; производительность: 1.53 Dhrystone MIPS/МГц; порты ввода-вывода относятся к основному частотному диапазону, таким образом, к примеру, можно дёргать портами с тактовой частотой; дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делителя, таким образом, частота тактирования периферии может быть снижена для снижения энергопотребления; количество выводов: 28, 44, 64 и 100; объём SRAM: до ; объём flash-памяти: с кэшем предвыборки; совместимость по выводам и отладочным средствам с 16-битовыми контроллерами фирмы Microchip; аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения; набор расширенных 16-битовых инструкций MIPS16e™, позволяющий уменьшить размер кода некоторых программ на 40 %; независимый от основного ядра контроллер USB.