Изменения
Перейти к навигации
Перейти к поиску
м
→Ссылки: оформление
{{Другие значения|PIC (значения)}}
{{О|микросхеме Intel 8259A|Контроллер прерываний}}
[[Файл:PIC microcontrollers.jpg|thumb|[[Микроконтроллер]]ы серии PIC в корпусах [[Dual in-line package|DIP]] и [[QFN]]]]
[[Файл:Microchip PIC24HJ32GP202.jpg|thumb|PIC24 — 16-битовый микроконтроллер серии PIC с 28‑ю контактами (pin) в корпусе типа PDIP]]
'''PIC''' — серия [[микроконтроллер]]ов, имеющих [[Гарвардская архитектура|гарвардскую архитектуру]] и производимых американской компанией [[Microchip Technology|Microchip Technology Inc.]] Название PIC является сокращением от {{lang-en|peripheral interface controller}}, что означает «контроллер [[интерфейс]]а [[Периферийное устройство|периферии]]». Название объясняется тем, что изначально микроконтроллеры серии PIC предназначались для расширения возможностей [[Ввод-вывод|ввода-вывода]] 16-битовых микропроцессоров [[General Instrument CP1600|CP1600]]<ref>[http://jbayko.sasktelwebsite.net/cpu1.html#Sec1Part9 Great microprocessors of the past and present (V 13.4.0)] {{Wayback|url=http://jbayko.sasktelwebsite.net/cpu1.html#Sec1Part9 |date=20090227055237 }}</ref>.
Под маркой PIC фирмой Microchip выпускаются 8-, 16- и 32-битовые [[микроконтроллер]]ы и [[Цифровой сигнальный процессор|цифровые сигнальные контроллеры (DSC)]], отличительной особенностью которых является хорошая преемственность различных семейств: программная совместимость (общие средства разработки: бесплатная [[Интегрированная среда разработки|IDE]] [[MPLAB]], общие [[Библиотека (программирование)|библиотеки]], общие стеки наиболее популярных [[Протокол передачи данных|протоколов передачи данных]]), совместимость по выводам, по периферии, по [[Электрическое напряжение|напряжениям]] питания. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, отличающимися объёмами памяти, количеством выводов, производительностью, диапазонами напряжений питания, рабочими температурами и др.
Широкая номенклатура, дающая возможность использования в конкретном изделии оптимального с точки зрения цены микроконтроллера (в том числе наличие в линейке однократно программируемых микроконтроллеров), низкое энергопотребление, большая гибкость и универсальность семейства являются причиной выбора PIC-контроллеров производителями электроники в качестве базового семейства для своих изделий<ref>{{книга |автор = |заглавие = Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети Интернет |язык = ru |ответственный = «[[Телесистемы (компания)|Телесистемы]]». Под ред. Коршуна И.В.; составление, пер. с англ. и литературная обработка Горбунова Б.Б. |место = М. |издательство = «Аким» |год = 1998 |страницы = 151 |страниц = 272 |isbn = 5-85399-045-4 |тираж = 15000 |ref = }}</ref>.
== 8-битовые микроконтроллеры ==
8-битовые микроконтроллеры делятся на два больших семейства: PIC10/12/16 и PIC18.
=== 8-битовые микроконтроллеры PIC10/12/16/18 ===
Ядра 8-битовых микроконтроллеров PIC10/12/16 могут быть построены одной из двух архитектур: BASELINE и MID-RANGE.
==== Архитектура базового (BASELINE) семейства ====
Архитектуру BASELINE имеют ядра контроллеров семейства PIC10 и часть контроллеров семейств PIC12 и PIC16. Отличительные черты:
* ширина слова памяти программ: {{число|12|бит}};
* количество поддерживаемых [[Машинная инструкция|машинных инструкций]]: 35;
* количество выводов (контактов): от 6 до 28;
* дешевизна (по сравнению с другими решениями фирмы Microchip);
* поддержка широкого диапазона [[Электрическое напряжение|напряжений]] питания;
* возможность работы при низких напряжениях (применимо, например, в устройствах с [[Батарея (электротехника)|батарейным питанием]]);
* низкое потребление [[Электрический ток|тока]];
* малые габаритные размеры корпуса;
* наличие встроенной flash-памяти для программ.
==== Архитектура среднего (MID-RANGE) семейства ====
Архитектуру MID-RANGE имеют ядра микроконтроллеров серий PIC12 и PIC16. Отличительные черты:
* ширина слова памяти программ: {{число|14|бит}};
* количество поддерживаемых машинных инструкций: 35;
* количество выводов: от 6 до 64;
* работа в диапазоне напряжений питания от 2,0 до {{число|5,5|В}};
* малый ток потребления;
* поддержка системных [[Прерывание|прерываний]];
* аппаратная поддержка стека;
* наличие встроенной flash-памяти для программ;
* наличие энергонезависимой памяти типа [[EEPROM]] для данных;
* поддержка периферии ([[USB]], [[Serial Peripheral Interface|SPI]], [[I²C]], [[USART]], [[LCD]], [[компаратор]]ов, [[АЦП]] и т. п.);
* производительность: {{число|5|[[MIPS (быстродействие)|MIPS]]}}.
==== Расширенная архитектура среднего (MID-RANGE) семейства ====
Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты:
* ширина слова памяти программ: {{число|14|бит}};
* количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка [[Си (язык программирования)|C]], позволяющих снизить размер кода на 40 %);
* увеличенный объём памяти программ и данных;
* более глубокий и улучшенный аппаратный стек;
* дополнительные источники сброса;
* поддержка периферийных устройств с модулем mTouch™ (используется для создания сенсорных пользовательских интерфейсов);
* уменьшенное время входа в [[прерывание]];
* производительность увеличена до {{число|8|MIPS}}.
=== 8-битовые микроконтроллеры PIC18 ===
Отличительные черты микроконтроллеров семейства PIC18F:
* ширина слова памяти программ: {{число|16|бит}};
* возможность подключения следующей периферии: 10-битовых и 12-битовых [[Аналого-цифровой преобразователь|АЦП]], [[компаратор]]ов, ШИМ, захват/сравнение, [[Драйвер (электроника)|драйверов]], [[Жидкокристаллический дисплей|ЖКИ]], периферии с интерфейсами [[USB]], [[Controller Area Network|CAN]], [[I²C]], [[Serial Peripheral Interface|SPI]], [[Универсальный асинхронный приёмопередатчик|USART]], [[Ethernet]], [[TCP/IP]], [[ZigBee]] и др.;
* производительность: до {{число|16|[[MIPS (быстродействие)|MIPS]]}};
* объём памяти программ: до {{число|128|кБ}};
* количество выводов: от 18 до 100;
* поддержка технологии NanoWatt;
* наличие программируемого генератора;
* поддерживаемые напряжения питания: 3,3 и {{число|5|В}};
* совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.
== 16-битовые контроллеры ==
Компания Microchip производит два семейства 16-разрядных микроконтроллеров (MCU) и два семейства 16-разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Основные черты всех 16-разрядных семейств:
* ширина слова памяти программ: {{число|24|бит}};
* совместимость по выводам;
* единая система команд;
* общие компиляторы Си и средства разработки;
* количество выводов: от 18 до 100;
* объём flash-памяти: от 6 до {{число|536|Кб}}.
=== 16-битовые микроконтроллеры PIC24F и PIC24H ===
Основные особенности:
* выполнение команды за 2 такта генератора;
* гарантированное время отклика на прерывание — 5 командных тактов;
* доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт;
* аппаратный умножитель (за 1 такт);
* аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов);
* диапазон питающих напряжений 1.8…{{число|3.6|В}}, один источник питания;
* внутрисхемное и самопрограммирование;
* встроенный генератор с PLL;
* расширенная периферия (до 3 SPI, до 3 I2C, до 4 UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG);
* модуль измерения времени заряда (CTMU), основное применение — управление ёмкостными сенсорами;
* ток портов ввода-вывода общего назначения — {{число|18|мА}};
* порты толерантны к устройствам с питанием {{число|5|В}};
* поддержка до девяти 16-битовых таймеров общего назначения;
* поддержка до восьми модулей захвата;
* поддержка нескольких энергосберегающих режимов;
* поддержка до двух АЦП (32 канала) с конфигурируемой разрядностью;
* поддержка до восьми 16-битовых модулей сравнения / генерации ШИМ;
* программное переназначение выводов (PPS);
* прямой доступ к памяти DMA (у PIC24H);
* расширенный набор инструкций;
* 16 ортогональных регистров общего назначения;
* векторная приоритетная система прерываний;
* и другие особенности (методы адресации, аппаратные циклы).
16-битовые микроконтроллеры представлены в двух модификациях — PIC24F и PIC24H, отличающихся технологией изготовления flash-памяти программ. Это определяет диапазон питающих напряжений — для PIC24F — 2,0…{{число|3,6|В}}, для PIC24H — 3,0…{{число|3,6|В}}.
Контроллеры первого семейства (PIC24F) производятся по более дешёвой технологии ({{число|0,25|мкм}}) и работают с максимальной производительностью ядра ({{число|16|MIPS}}, {{число|32|МГц}}). Контроллеры второго семейства (PIC24H) производятся с использованием более сложного техпроцесса, что позволяет добиться большей скорости работы ({{число|40|MIPS}}, {{число|80|МГц}}). Контроллеры обоих семейств поддерживают внутрисхемное программирование (ICSP) и самопрограммирование (RTSP).
=== Контроллеры цифровой обработки сигналов dsPIC30F и dsPIC33F ===
Компания Microchip предлагает два семейства 16-разрядных микроконтроллеров с flash-памятью и с поддержкой команд цифровой обработки сигналов — dsPIC30F и dsPIC33F. Быстродействие ({{число|30|MIPS}} для dsPIC30F, {{число|40|MIPS}} для dsPIC33FJ, {{число|70|MIPS}} для dsPIC33EP) и эффективная система команд позволяют использовать контроллеры в системах реального времени. Особенности:
* расширенная система команд, включающая специфические команды поддержки [[Цифровая обработка сигналов|цифровой обработки сигналов (DSP)]];
* 24-разрядные инструкции выполняются за 4 периода тактовой частоты у dsPIC30F и за 2 — у dsPIC33FJ(EP), за исключением команд деления, команд переходов, команд пересылки данных из регистра в регистр и табличных команд;
* разрядность программного счётчика ({{число|24|бита}}) позволяет адресовать до {{число|4|М}} слов программной памяти ({{число|4|М}}*{{число|24|бит}});
* аппаратная поддержка циклов типа DO и REPEAT, выполнение которых не требует дополнительных издержек программной памяти и времени на анализ условий окончания. В то же время эти циклы могут быть прерваны событиями прерывания в любой момент;
* 16 рабочих регистров. В регистрах можно хранить данные, адрес или смещение адреса;
* два класса команд: микроконтроллерные инструкции (MCU) и команды цифровой обработки сигналов (DSP). Оба этих класса равноправно встроены в архитектуру контроллера и обрабатываются одним ядром;
* различные типы адресации;
* система команд оптимизирована для получения максимальной эффективности при программировании на языке высокого уровня Си.
Если о PIC24F можно говорить, как об усечённом доработанном варианте dsPIC30F (без ядра ЦОС, с трёхвольтовым питанием и переработанным конвейером), то PIC24H — это усечённый вариант dsPIC33F. Хотя в данном сравнении нарушены причинно-следственные связи, технически оно верно.
Ядро dsPIC33F полностью аналогично ядру dsPIC30F, за исключением того, что в dsPIC33F команда выполняется за два такта генератора. Семейства полностью совместимы по набору инструкций, программной модели и способам адресации, что позволяет использовать библиотеки и исходные коды программ, написанные для dsPIC30F.
Особо следует отметить переработанную по сравнению с dsPIC30F систему тактирования. dsPIC33F, как и семейство PIC24H, имеют PLL с дробным коэффициентом умножения (настраиваемым программно), что позволяет получить сетку частот от {{число|12,5|МГц}} до {{число|80|МГц}} с шагом {{число|0,25|МГц}} при использовании {{число|4|МГц}} [[Кварцевый резонатор|кварцевого резонатора]]. Кроме того, контроллеры dsPIC33F и PIC24H имеют два внутренних высокостабильных RC-генератора с частотами {{число|7,3728|МГц}} и {{число|32,768|кГц}}.
Отдельный делитель тактовой частоты ядра (модуль 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:
* разрядность: {{число|32|бита}};
* ядро: [[MIPS (архитектура)|MIPS32 M4K]];
* частота тактирования ядра: до {{число|120|МГц}} (для серии MX) и до {{число|200|МГц}} (для серии MZ){{Нет АИ|3|7|2016}};
* выполнение большинства команд за 1 такт генератора;
* производительность: 1.53 [[Dhrystone]] MIPS/МГц;
* порты ввода-вывода относятся к основному частотному диапазону, таким образом, к примеру, можно дёргать портами с тактовой частотой;
* дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делителя, таким образом, частота тактирования периферии может быть снижена для снижения энергопотребления;
* количество выводов: 28, 44, 64 и 100;
* объём SRAM: до {{число|128|кБ}};
* объём flash-памяти: {{число|512|кБ}} с кэшем предвыборки;
* совместимость по выводам и отладочным средствам с 16-битовыми контроллерами фирмы Microchip;
* аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения;
* набор расширенных 16-битовых инструкций MIPS16e™, позволяющий уменьшить размер кода некоторых программ на 40 %;
* независимый от основного ядра контроллер USB.
Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объёмом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битовый параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидкокристаллических TFT-индикаторов.
Семейство PIC32 построено на ядре MIPS32®, отличающегося низким потреблением энергии, быстрой реакцией на прерывания, функциональностью средств разработки и лидирующим в своём классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.
== Средства программирования и отладки ==
Для программирования микроконтроллеров семейства PIC применяется фирменные [[программатор|программаторы]]-отладчики IC PROG, ICD-2, ICD-3, REAL ICE, Pickit, PicKit2, Pickit3, Pickit4. Эти программаторы позволяют не только программировать, но и отлаживать код. Возможности: пошаговое выполнение, установка точек останова, просмотр содержимого оперативной и программной памяти, просмотр содержимого стека.
Помимо выпускаемых Microchip, распространено большое число программаторов и отладчиков, выпускаемых сторонними российскими и зарубежными разработчиками<ref>{{Cite web |url=https://www.rlocman.ru/review/article.html?di=677 |title=Программаторы. Краткий обзор |access-date=2020-10-04 |archive-date=2020-10-10 |archive-url=https://web.archive.org/web/20201010135239/https://www.rlocman.ru/review/article.html?di=677 |deadlink=no }}</ref><ref>{{Cite web |url=https://www.chipdip.ru/video/id000258944 |title=Видеообзор программаторов |access-date=2020-10-04 |archive-date=2020-10-08 |archive-url=https://web.archive.org/web/20201008010410/https://www.chipdip.ru/video/id000258944 |deadlink=no }}</ref><ref>{{Cite web |url=https://www.ixbt.com/live/topcompile/top-10-luchshih-programmatorov-i-debaggerov-s-aliekspress.html |title=Топ-10 лучших программаторов и дебаггеров с Алиэкспресс |access-date=2020-10-04 |archive-date=2020-10-09 |archive-url=https://web.archive.org/web/20201009104142/https://www.ixbt.com/live/topcompile/top-10-luchshih-programmatorov-i-debaggerov-s-aliekspress.html |deadlink=no }}</ref>.
== См. также ==
* [[AVR]]
* [[Intel 8051]]
* [[ARM (архитектура)|ARM]]
* [[MSP430]]
== Примечания ==
{{примечания}}
== Ссылки ==
* [http://microchip.com Официальный сайт microchip.com] {{Wayback|url=http://microchip.com/ |date=20210302043750 }}{{ref-en}}
* [http://microchip.su/ Форум по продукции Microchip]
* [http://www.pic24.ru/doku.php PIC24.ru] Русскоязычный сайт, посвящённый преимущественно семействам PIC24 и dsPIC
* [http://radiolaba.ru/ Сайт посвященный программированию PIC контроллеров]
{{commonscat-inline}}
{{rq|sources|style|wikify}}
{{Микроконтроллеры}}
{{RISC-based processor architectures}}
{{реклама}}
[[Категория:Микроконтроллеры]]
{{О|микросхеме Intel 8259A|Контроллер прерываний}}
[[Файл:PIC microcontrollers.jpg|thumb|[[Микроконтроллер]]ы серии PIC в корпусах [[Dual in-line package|DIP]] и [[QFN]]]]
[[Файл:Microchip PIC24HJ32GP202.jpg|thumb|PIC24 — 16-битовый микроконтроллер серии PIC с 28‑ю контактами (pin) в корпусе типа PDIP]]
'''PIC''' — серия [[микроконтроллер]]ов, имеющих [[Гарвардская архитектура|гарвардскую архитектуру]] и производимых американской компанией [[Microchip Technology|Microchip Technology Inc.]] Название PIC является сокращением от {{lang-en|peripheral interface controller}}, что означает «контроллер [[интерфейс]]а [[Периферийное устройство|периферии]]». Название объясняется тем, что изначально микроконтроллеры серии PIC предназначались для расширения возможностей [[Ввод-вывод|ввода-вывода]] 16-битовых микропроцессоров [[General Instrument CP1600|CP1600]]<ref>[http://jbayko.sasktelwebsite.net/cpu1.html#Sec1Part9 Great microprocessors of the past and present (V 13.4.0)] {{Wayback|url=http://jbayko.sasktelwebsite.net/cpu1.html#Sec1Part9 |date=20090227055237 }}</ref>.
Под маркой PIC фирмой Microchip выпускаются 8-, 16- и 32-битовые [[микроконтроллер]]ы и [[Цифровой сигнальный процессор|цифровые сигнальные контроллеры (DSC)]], отличительной особенностью которых является хорошая преемственность различных семейств: программная совместимость (общие средства разработки: бесплатная [[Интегрированная среда разработки|IDE]] [[MPLAB]], общие [[Библиотека (программирование)|библиотеки]], общие стеки наиболее популярных [[Протокол передачи данных|протоколов передачи данных]]), совместимость по выводам, по периферии, по [[Электрическое напряжение|напряжениям]] питания. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, отличающимися объёмами памяти, количеством выводов, производительностью, диапазонами напряжений питания, рабочими температурами и др.
Широкая номенклатура, дающая возможность использования в конкретном изделии оптимального с точки зрения цены микроконтроллера (в том числе наличие в линейке однократно программируемых микроконтроллеров), низкое энергопотребление, большая гибкость и универсальность семейства являются причиной выбора PIC-контроллеров производителями электроники в качестве базового семейства для своих изделий<ref>{{книга |автор = |заглавие = Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети Интернет |язык = ru |ответственный = «[[Телесистемы (компания)|Телесистемы]]». Под ред. Коршуна И.В.; составление, пер. с англ. и литературная обработка Горбунова Б.Б. |место = М. |издательство = «Аким» |год = 1998 |страницы = 151 |страниц = 272 |isbn = 5-85399-045-4 |тираж = 15000 |ref = }}</ref>.
== 8-битовые микроконтроллеры ==
8-битовые микроконтроллеры делятся на два больших семейства: PIC10/12/16 и PIC18.
=== 8-битовые микроконтроллеры PIC10/12/16/18 ===
Ядра 8-битовых микроконтроллеров PIC10/12/16 могут быть построены одной из двух архитектур: BASELINE и MID-RANGE.
==== Архитектура базового (BASELINE) семейства ====
Архитектуру BASELINE имеют ядра контроллеров семейства PIC10 и часть контроллеров семейств PIC12 и PIC16. Отличительные черты:
* ширина слова памяти программ: {{число|12|бит}};
* количество поддерживаемых [[Машинная инструкция|машинных инструкций]]: 35;
* количество выводов (контактов): от 6 до 28;
* дешевизна (по сравнению с другими решениями фирмы Microchip);
* поддержка широкого диапазона [[Электрическое напряжение|напряжений]] питания;
* возможность работы при низких напряжениях (применимо, например, в устройствах с [[Батарея (электротехника)|батарейным питанием]]);
* низкое потребление [[Электрический ток|тока]];
* малые габаритные размеры корпуса;
* наличие встроенной flash-памяти для программ.
==== Архитектура среднего (MID-RANGE) семейства ====
Архитектуру MID-RANGE имеют ядра микроконтроллеров серий PIC12 и PIC16. Отличительные черты:
* ширина слова памяти программ: {{число|14|бит}};
* количество поддерживаемых машинных инструкций: 35;
* количество выводов: от 6 до 64;
* работа в диапазоне напряжений питания от 2,0 до {{число|5,5|В}};
* малый ток потребления;
* поддержка системных [[Прерывание|прерываний]];
* аппаратная поддержка стека;
* наличие встроенной flash-памяти для программ;
* наличие энергонезависимой памяти типа [[EEPROM]] для данных;
* поддержка периферии ([[USB]], [[Serial Peripheral Interface|SPI]], [[I²C]], [[USART]], [[LCD]], [[компаратор]]ов, [[АЦП]] и т. п.);
* производительность: {{число|5|[[MIPS (быстродействие)|MIPS]]}}.
==== Расширенная архитектура среднего (MID-RANGE) семейства ====
Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты:
* ширина слова памяти программ: {{число|14|бит}};
* количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка [[Си (язык программирования)|C]], позволяющих снизить размер кода на 40 %);
* увеличенный объём памяти программ и данных;
* более глубокий и улучшенный аппаратный стек;
* дополнительные источники сброса;
* поддержка периферийных устройств с модулем mTouch™ (используется для создания сенсорных пользовательских интерфейсов);
* уменьшенное время входа в [[прерывание]];
* производительность увеличена до {{число|8|MIPS}}.
=== 8-битовые микроконтроллеры PIC18 ===
Отличительные черты микроконтроллеров семейства PIC18F:
* ширина слова памяти программ: {{число|16|бит}};
* возможность подключения следующей периферии: 10-битовых и 12-битовых [[Аналого-цифровой преобразователь|АЦП]], [[компаратор]]ов, ШИМ, захват/сравнение, [[Драйвер (электроника)|драйверов]], [[Жидкокристаллический дисплей|ЖКИ]], периферии с интерфейсами [[USB]], [[Controller Area Network|CAN]], [[I²C]], [[Serial Peripheral Interface|SPI]], [[Универсальный асинхронный приёмопередатчик|USART]], [[Ethernet]], [[TCP/IP]], [[ZigBee]] и др.;
* производительность: до {{число|16|[[MIPS (быстродействие)|MIPS]]}};
* объём памяти программ: до {{число|128|кБ}};
* количество выводов: от 18 до 100;
* поддержка технологии NanoWatt;
* наличие программируемого генератора;
* поддерживаемые напряжения питания: 3,3 и {{число|5|В}};
* совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.
== 16-битовые контроллеры ==
Компания Microchip производит два семейства 16-разрядных микроконтроллеров (MCU) и два семейства 16-разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Основные черты всех 16-разрядных семейств:
* ширина слова памяти программ: {{число|24|бит}};
* совместимость по выводам;
* единая система команд;
* общие компиляторы Си и средства разработки;
* количество выводов: от 18 до 100;
* объём flash-памяти: от 6 до {{число|536|Кб}}.
=== 16-битовые микроконтроллеры PIC24F и PIC24H ===
Основные особенности:
* выполнение команды за 2 такта генератора;
* гарантированное время отклика на прерывание — 5 командных тактов;
* доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт;
* аппаратный умножитель (за 1 такт);
* аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов);
* диапазон питающих напряжений 1.8…{{число|3.6|В}}, один источник питания;
* внутрисхемное и самопрограммирование;
* встроенный генератор с PLL;
* расширенная периферия (до 3 SPI, до 3 I2C, до 4 UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG);
* модуль измерения времени заряда (CTMU), основное применение — управление ёмкостными сенсорами;
* ток портов ввода-вывода общего назначения — {{число|18|мА}};
* порты толерантны к устройствам с питанием {{число|5|В}};
* поддержка до девяти 16-битовых таймеров общего назначения;
* поддержка до восьми модулей захвата;
* поддержка нескольких энергосберегающих режимов;
* поддержка до двух АЦП (32 канала) с конфигурируемой разрядностью;
* поддержка до восьми 16-битовых модулей сравнения / генерации ШИМ;
* программное переназначение выводов (PPS);
* прямой доступ к памяти DMA (у PIC24H);
* расширенный набор инструкций;
* 16 ортогональных регистров общего назначения;
* векторная приоритетная система прерываний;
* и другие особенности (методы адресации, аппаратные циклы).
16-битовые микроконтроллеры представлены в двух модификациях — PIC24F и PIC24H, отличающихся технологией изготовления flash-памяти программ. Это определяет диапазон питающих напряжений — для PIC24F — 2,0…{{число|3,6|В}}, для PIC24H — 3,0…{{число|3,6|В}}.
Контроллеры первого семейства (PIC24F) производятся по более дешёвой технологии ({{число|0,25|мкм}}) и работают с максимальной производительностью ядра ({{число|16|MIPS}}, {{число|32|МГц}}). Контроллеры второго семейства (PIC24H) производятся с использованием более сложного техпроцесса, что позволяет добиться большей скорости работы ({{число|40|MIPS}}, {{число|80|МГц}}). Контроллеры обоих семейств поддерживают внутрисхемное программирование (ICSP) и самопрограммирование (RTSP).
=== Контроллеры цифровой обработки сигналов dsPIC30F и dsPIC33F ===
Компания Microchip предлагает два семейства 16-разрядных микроконтроллеров с flash-памятью и с поддержкой команд цифровой обработки сигналов — dsPIC30F и dsPIC33F. Быстродействие ({{число|30|MIPS}} для dsPIC30F, {{число|40|MIPS}} для dsPIC33FJ, {{число|70|MIPS}} для dsPIC33EP) и эффективная система команд позволяют использовать контроллеры в системах реального времени. Особенности:
* расширенная система команд, включающая специфические команды поддержки [[Цифровая обработка сигналов|цифровой обработки сигналов (DSP)]];
* 24-разрядные инструкции выполняются за 4 периода тактовой частоты у dsPIC30F и за 2 — у dsPIC33FJ(EP), за исключением команд деления, команд переходов, команд пересылки данных из регистра в регистр и табличных команд;
* разрядность программного счётчика ({{число|24|бита}}) позволяет адресовать до {{число|4|М}} слов программной памяти ({{число|4|М}}*{{число|24|бит}});
* аппаратная поддержка циклов типа DO и REPEAT, выполнение которых не требует дополнительных издержек программной памяти и времени на анализ условий окончания. В то же время эти циклы могут быть прерваны событиями прерывания в любой момент;
* 16 рабочих регистров. В регистрах можно хранить данные, адрес или смещение адреса;
* два класса команд: микроконтроллерные инструкции (MCU) и команды цифровой обработки сигналов (DSP). Оба этих класса равноправно встроены в архитектуру контроллера и обрабатываются одним ядром;
* различные типы адресации;
* система команд оптимизирована для получения максимальной эффективности при программировании на языке высокого уровня Си.
Если о PIC24F можно говорить, как об усечённом доработанном варианте dsPIC30F (без ядра ЦОС, с трёхвольтовым питанием и переработанным конвейером), то PIC24H — это усечённый вариант dsPIC33F. Хотя в данном сравнении нарушены причинно-следственные связи, технически оно верно.
Ядро dsPIC33F полностью аналогично ядру dsPIC30F, за исключением того, что в dsPIC33F команда выполняется за два такта генератора. Семейства полностью совместимы по набору инструкций, программной модели и способам адресации, что позволяет использовать библиотеки и исходные коды программ, написанные для dsPIC30F.
Особо следует отметить переработанную по сравнению с dsPIC30F систему тактирования. dsPIC33F, как и семейство PIC24H, имеют PLL с дробным коэффициентом умножения (настраиваемым программно), что позволяет получить сетку частот от {{число|12,5|МГц}} до {{число|80|МГц}} с шагом {{число|0,25|МГц}} при использовании {{число|4|МГц}} [[Кварцевый резонатор|кварцевого резонатора]]. Кроме того, контроллеры dsPIC33F и PIC24H имеют два внутренних высокостабильных RC-генератора с частотами {{число|7,3728|МГц}} и {{число|32,768|кГц}}.
Отдельный делитель тактовой частоты ядра (модуль 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:
* разрядность: {{число|32|бита}};
* ядро: [[MIPS (архитектура)|MIPS32 M4K]];
* частота тактирования ядра: до {{число|120|МГц}} (для серии MX) и до {{число|200|МГц}} (для серии MZ){{Нет АИ|3|7|2016}};
* выполнение большинства команд за 1 такт генератора;
* производительность: 1.53 [[Dhrystone]] MIPS/МГц;
* порты ввода-вывода относятся к основному частотному диапазону, таким образом, к примеру, можно дёргать портами с тактовой частотой;
* дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делителя, таким образом, частота тактирования периферии может быть снижена для снижения энергопотребления;
* количество выводов: 28, 44, 64 и 100;
* объём SRAM: до {{число|128|кБ}};
* объём flash-памяти: {{число|512|кБ}} с кэшем предвыборки;
* совместимость по выводам и отладочным средствам с 16-битовыми контроллерами фирмы Microchip;
* аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения;
* набор расширенных 16-битовых инструкций MIPS16e™, позволяющий уменьшить размер кода некоторых программ на 40 %;
* независимый от основного ядра контроллер USB.
Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объёмом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битовый параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидкокристаллических TFT-индикаторов.
Семейство PIC32 построено на ядре MIPS32®, отличающегося низким потреблением энергии, быстрой реакцией на прерывания, функциональностью средств разработки и лидирующим в своём классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.
== Средства программирования и отладки ==
Для программирования микроконтроллеров семейства PIC применяется фирменные [[программатор|программаторы]]-отладчики IC PROG, ICD-2, ICD-3, REAL ICE, Pickit, PicKit2, Pickit3, Pickit4. Эти программаторы позволяют не только программировать, но и отлаживать код. Возможности: пошаговое выполнение, установка точек останова, просмотр содержимого оперативной и программной памяти, просмотр содержимого стека.
Помимо выпускаемых Microchip, распространено большое число программаторов и отладчиков, выпускаемых сторонними российскими и зарубежными разработчиками<ref>{{Cite web |url=https://www.rlocman.ru/review/article.html?di=677 |title=Программаторы. Краткий обзор |access-date=2020-10-04 |archive-date=2020-10-10 |archive-url=https://web.archive.org/web/20201010135239/https://www.rlocman.ru/review/article.html?di=677 |deadlink=no }}</ref><ref>{{Cite web |url=https://www.chipdip.ru/video/id000258944 |title=Видеообзор программаторов |access-date=2020-10-04 |archive-date=2020-10-08 |archive-url=https://web.archive.org/web/20201008010410/https://www.chipdip.ru/video/id000258944 |deadlink=no }}</ref><ref>{{Cite web |url=https://www.ixbt.com/live/topcompile/top-10-luchshih-programmatorov-i-debaggerov-s-aliekspress.html |title=Топ-10 лучших программаторов и дебаггеров с Алиэкспресс |access-date=2020-10-04 |archive-date=2020-10-09 |archive-url=https://web.archive.org/web/20201009104142/https://www.ixbt.com/live/topcompile/top-10-luchshih-programmatorov-i-debaggerov-s-aliekspress.html |deadlink=no }}</ref>.
== См. также ==
* [[AVR]]
* [[Intel 8051]]
* [[ARM (архитектура)|ARM]]
* [[MSP430]]
== Примечания ==
{{примечания}}
== Ссылки ==
* [http://microchip.com Официальный сайт microchip.com] {{Wayback|url=http://microchip.com/ |date=20210302043750 }}{{ref-en}}
* [http://microchip.su/ Форум по продукции Microchip]
* [http://www.pic24.ru/doku.php PIC24.ru] Русскоязычный сайт, посвящённый преимущественно семействам PIC24 и dsPIC
* [http://radiolaba.ru/ Сайт посвященный программированию PIC контроллеров]
{{commonscat-inline}}
{{rq|sources|style|wikify}}
{{Микроконтроллеры}}
{{RISC-based processor architectures}}
{{реклама}}
[[Категория:Микроконтроллеры]]