Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску
PIC микроконтроллеры в DIP и QFN пакеты
16-битный 28-контактный микроконтроллер PDIP PIC24 рядом с метрической линейкой
Die из PIC12C508 8-бит, полностью статические, ЭСППЗ / ПЗУ / ROM , основанное КМОП микроконтроллер производства Microchip Technology с использованием 1200 нанометрового процесса
Умрите из PIC16C505 CMOS ROM основанное 8-битный микроконтроллер производства компании Microchip Technology с использованием 1200 нанометрового процесса

PIC (обычно произносится как «pick» ) - это семейство микроконтроллеров производства Microchip Technology , производное от PIC1650 [1] [2] [3], первоначально разработанное подразделением Microelectronics Division компании General Instrument . Название ПИК первоначально называется контроллером периферийного интерфейса , [4] и в настоящее время расширяется , как Programmable Intelligent Computer . [5] Первые части семейства были доступны в 1976 году; к 2013 году компания поставила более двенадцати миллиардов отдельных деталей, используемых во многих встраиваемых системах .

Ранние модели PIC имели постоянную память (ROM) или программируемую EPROM для хранения программ, некоторые с возможностью стирания памяти. Все современные модели используют флэш-память для хранения программ, а новые модели позволяют PIC перепрограммировать себя. Память программ и память данных разделены. Память данных бывает 8-битной, 16-битной и, в последних моделях, 32-битной шириной. Программные инструкции различаются по количеству битов в зависимости от семейства PIC и могут иметь длину 12, 14, 16 или 24 бита. Набор команд также различается в зависимости от модели, с более мощными микросхемами, добавляющими инструкции для функций цифровой обработки сигналов .

Аппаратные возможности устройств PIC варьируются от 6-контактных SMD , 8-контактных микросхем DIP до 144-контактных микросхем SMD с дискретными выводами ввода-вывода, модулями АЦП и ЦАП , а также портами связи, такими как UART , I2C , CAN и даже USB . Варианты малой мощности и высокой скорости существуют для многих типов.

Производитель поставляет программное обеспечение для разработки, известное как MPLAB X , ассемблеры и компиляторы C / C ++, а также оборудование для программирования / отладчика серий MPLAB и PICKit . Также доступны сторонние инструменты и некоторые инструменты с открытым исходным кодом. Некоторые части имеют возможность внутрисхемного программирования; доступны как недорогие программисты-разработчики, так и высокопроизводительные программисты.

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

История [ править ]

Оригинальная концепция [ править ]

Различные старые (EPROM) микроконтроллеры PIC

Исходный PIC предназначался для использования с новым 16-разрядным центральным процессором (ЦП) General Instrument CP1600 . CP1600 был мощным процессором для своего времени, реализовав большую часть архитектуры набора команд миникомпьютера PDP-11 в корпусе микрокомпьютера.

Хотя большинство людей считало CP1600 хорошим процессором, у него была одна существенная проблема; чтобы уменьшить количество выводов в его физической DIP- упаковке, общие выводы адресной шины и шины данных . Для процессоров с отдельными каналами ввода / вывода , таких как Intel 8008 , это не было бы проблемой, но 1600 также использовал ввод / вывод с отображением памяти PDP-11.концепция. Это означало, что для связи с устройством требовалось, чтобы устройство отслеживало доступ к ключевым ячейкам памяти в одном машинном цикле, а затем считывало данные в следующем. Это сделало ввод-вывод на машине медленнее, поскольку шина чередовалась между режимами адреса и данных, и более дорогостоящим в реализации, поскольку устройства должны были фиксировать вводы в течение нескольких циклов. Вся эта сложность была повторена на стороне ЦП в соответствующем драйвере устройства .

Чтобы устранить этот недостаток 1600, в 1975 году была разработана 8-битная PIC. Идея заключалась в том, что в системе будет один или несколько недорогих PIC, выполняющих фактический ввод-вывод с устройствами, а затем отправляющих эти данные. к процессору. PIC использовал простой микрокод, хранящийся в ПЗУ, для выполнения своих задач.

После 1600 г. [ править ]

В 1985 году General Instrument продала свое подразделение микроэлектроники, и новые владельцы отменили почти все, что к тому времени было в основном устаревшим. PIC, однако, был модернизирован внутренним EPROM для создания программируемого контроллера каналов . В то же время Plessey в Великобритании выпустил процессоры NMOS под номерами PIC1650 и PIC1655, основанные на дизайне GI, с использованием тех же наборов инструкций, либо с программируемой маской пользователя, либо с версиями, предварительно запрограммированными для устройств автоматического набора номера и интерфейсов клавиатуры. [6]

В 1998 году Microchip представила PIC 16F84, флэш-программируемую и стираемую версию своего успешного последовательного программируемого PIC16C84. В 2001 году Microchip представила больше программируемых Flash-устройств, а полное производство началось в 2002 году [2].

Сегодня доступно огромное количество PIC с различными встроенными периферийными устройствами ( модули последовательной связи , UART , ядра управления двигателем и т. Д.) И программной памятью от 256 до 64 тыс. Слов и более («слово» - это одна инструкция на языке ассемблера. , различной длиной от 8 до 16 бит , в зависимости от конкретного ПОС микро семьи).

PIC и PICmicro теперь являются зарегистрированными товарными знаками Microchip Technology. Обычно считается, что PIC расшифровывается как Peripheral Interface Controller , хотя первоначальное сокращение General Instruments для начальных устройств PIC1640 и PIC1650 было « Программируемый интерфейсный контроллер ». [4] Аббревиатуру быстро заменили на « Программируемый интеллектуальный компьютер ». [5]

Microchip 16C84 ( PIC16x84 ), представленный в 1993 году, был первым [7] процессором Microchip со встроенной памятью EEPROM.

К 2013 году Microchip поставляла более одного миллиарда микроконтроллеров PIC ежегодно. [8]

Семейства устройств [ править ]

Микрочипы PIC разработаны с использованием гарвардской архитектуры и предлагаются в различных семействах устройств. Семейства базового и среднего уровня используют память данных 8-битной ширины, а семейства high-end используют 16-битную память данных. Последняя серия, PIC32MZ, представляет собой 32-битный микроконтроллер на базе MIPS . Командные слова имеют размер 12-бит (PIC10 и PIC12), 14-бит (PIC16) и 24-бит (PIC24 и dsPIC). Бинарные представления машинных инструкций различаются в зависимости от семейства и показаны в списках инструкций PIC .

Внутри этих семейств устройства могут быть обозначены как PICnnCxxx (CMOS) или PICnnFxxx (Flash). Устройства "C" обычно классифицируются как "Не подходящие для новых разработок" (Microchip активно не продвигает их). Программная память устройств "C" по-разному описывается как OTP, ROM или EEPROM. По состоянию на октябрь 2016 года единственным продуктом OTP, классифицированным как «В производстве», является pic16HV540. Устройства «C» с кварцевыми окошками (для стирания) вообще больше не доступны.

PIC10 и PIC12 [ править ]

Эти устройства имеют 12-разрядную кодовую память, 32-байтовый регистровый файл и крошечный двухуровневый стек вызовов. Они представлены серией PIC10, а также некоторыми устройствами PIC12 и PIC16. Базовые устройства доступны в корпусах от 6 до 40 контактов.

Обычно первые 7–9 байтов регистрового файла являются регистрами специального назначения, а оставшиеся байты - ОЗУ общего назначения. Указатели реализуются с использованием пары регистров: после записи адреса в FSR (регистр выбора файла) регистр INDF (косвенный f) становится псевдонимом для адресуемого регистра. Если реализовано ОЗУ с банками, номер банка выбирается старшими 3 битами FSR. Это влияет на номера регистров 16–31; регистры 0–15 являются глобальными и не зависят от битов выбора банка.

Из-за очень ограниченного пространства регистров (5 битов) 4 редко читаемых регистра не имели адресов, а записывались специальными инструкциями ( OPTIONи TRIS).

Адресное пространство ПЗУ составляет 512 слов (по 12 бит каждое), которое может быть расширено до 2048 слов при помощи банка. CALLи GOTOинструкции определяют младшие 9 бит нового местоположения кода; дополнительные старшие биты берутся из регистра состояния. Обратите внимание, что инструкция CALL включает только 8 бит адреса и может указывать адреса только в первой половине каждой страницы из 512 слов.

Таблицы поиска реализованы с использованием вычисленных GOTO(присвоение регистру PCL) таблицы RETLWинструкций.

Это «базовое ядро» не поддерживает прерывания ; все операции ввода / вывода должны быть опрошены . Есть несколько «расширенных базовых» вариантов с поддержкой прерываний и четырехуровневым стеком вызовов.

Устройства PIC10F32x имеют 14-разрядную кодовую память среднего уровня на 256 или 512 слов, 64-байтовый регистровый файл SRAM и 8-уровневый аппаратный стек. Эти устройства доступны в корпусах с 6 выводами SMD и с 8 выводами DIP (с двумя неиспользуемыми выводами). Доступен только один вход и три контакта ввода / вывода. Доступен сложный набор прерываний. Часы представляют собой внутренний откалиброванный высокочастотный генератор с частотой 16 МГц с возможностью выбора скоростей с помощью программного обеспечения и маломощным источником 31 кГц.

PIC16 [ править ]

Микрочип PIC16C58A
PIC16LF870 в гнезде SOIC

Эти устройства имеют 14-разрядную память кода и улучшенный 8-уровневый стек вызовов. Набор команд очень мало отличается от базовых устройств, но два дополнительных бита кода операции позволяют напрямую адресовать 128 регистров и 2048 слов кода. Есть несколько дополнительных различных инструкций и две дополнительные 8-битные буквальные инструкции сложения и вычитания. Ядро среднего уровня доступно в большинстве устройств с маркировкой PIC12 и PIC16.

Первые 32 байта регистрового пространства выделяются специальным регистрам; остальные 96 байтов используются для ОЗУ общего назначения. Если используется ОЗУ с банками, старшие 16 регистров (0x70–0x7F) являются глобальными, как и некоторые из наиболее важных регистров специального назначения, включая регистр STATUS, в котором хранятся биты выбора банка ОЗУ. (Другими глобальными регистрами являются FSR и INDF, младшие 8 бит программного счетчика PCL, старший регистр предварительной загрузки ПК PCLATH и главный регистр управления прерываниями INTCON.)

Регистр PCLATH предоставляет биты адреса команды высокого порядка, когда 8 битов, предоставленных записью в регистр PCL, или 11 битов, предоставленных инструкцией GOTOили CALL, недостаточны для адресации доступного пространства ПЗУ.

PIC17 [ править ]

Серия 17 так и не стала популярной и была заменена архитектурой PIC18 (однако см. Клоны ниже). Серия 17 не рекомендуется для новых разработок, и доступность может быть ограничена для пользователей.

Усовершенствования по сравнению с более ранними ядрами - это 16-разрядные коды операций (позволяющие использовать множество новых инструкций) и 16-уровневый глубокий стек вызовов. Устройства PIC17 выпускались в корпусах от 40 до 68 контактов.

Серия 17 представила ряд важных новых функций: [9]

  • аккумулятор с отображением в память
  • доступ на чтение к памяти кода (чтение таблицы)
  • прямой регистр для перемещения регистров (предыдущие ядра необходимы для перемещения регистров через аккумулятор)
  • интерфейс внешней программной памяти для расширения пространства кода
  • 8-битный 8-битный аппаратный умножитель
  • вторая пара косвенных регистров
  • Адресация с автоматическим увеличением / уменьшением, управляемая битами управления в регистре состояния (ALUSTA)

Существенным ограничением было то, что пространство ОЗУ было ограничено 256 байтами (26 байтов регистров специальных функций и 232 байта ОЗУ общего назначения) с неудобным переключением банков в моделях, которые поддерживали больше.

PIC18 [ править ]

В 2000 году Microchip представила архитектуру PIC18. В отличие от 17-й серии, она оказалась очень популярной, и в настоящее время в производстве находится большое количество вариантов устройств. В отличие от более ранних устройств, которые чаще всего программировались на ассемблере, C стал преобладающим языком разработки. [10]

Серия 18 наследует большинство функций и инструкций серии 17, но при этом добавляет ряд важных новых функций:

  • стек вызовов имеет ширину 21 бит и намного глубже (31 уровень)
  • стек вызовов может быть прочитан и записан (TOSU: TOSH: TOSL регистры)
  • инструкции условного перехода
  • индексированный режим адресации (PLUSW)
  • расширение регистров FSR до 12 бит, что позволяет им линейно адресовать все адресное пространство данных
  • добавление еще одного регистра FSR (доведение числа до 3)

Пространство RAM составляет 12 бит, адресуется с помощью 4-битного регистра выбора банка и 8-битного смещения в каждой инструкции. Дополнительный бит «доступа» в каждой инструкции выбирает между банком 0 ( a = 0) и банком, выбранным BSR ( a = 1).

Также доступен одноуровневый стек для регистров STATUS, WREG и BSR. Они сохраняются при каждом прерывании и могут быть восстановлены при возврате. Если прерывания запрещены, их также можно использовать при вызове / возврате подпрограммы, установив бит s (добавив к инструкции ", FAST").

Функция автоматического увеличения / уменьшения была улучшена за счет удаления управляющих битов и добавления четырех новых косвенных регистров для каждого FSR. В зависимости от того, к какому косвенному регистру файла осуществляется доступ, можно выполнить постдекремент, постинкремент или прединкремент FSR; или сформируйте эффективный адрес, добавив W к FSR.

В более продвинутых устройствах PIC18 доступен «расширенный режим», который делает адресацию еще более удобной для скомпилированного кода:

  • новый режим смещения адресации; некоторые адреса, относящиеся к банку доступа, теперь интерпретируются относительно регистра FSR2
  • добавление нескольких новых инструкций, предназначенных для управления регистрами FSR.

Устройства PIC18 все еще разрабатываются (2017 г.) и оснащены CIP (Core Independent Peripherals).

PIC24 и dsPIC [ править ]

В 2001 году Microchip представила серию микросхем dsPIC [11], которая поступила в массовое производство в конце 2004 года. Это первые изначально 16-битные микроконтроллеры Microchip. Устройства PIC24 представляют собой микроконтроллеры общего назначения. Устройства dsPIC дополнительно включают в себя возможности цифровой обработки сигналов.

Хотя все еще похожи на более ранние архитектуры PIC, есть значительные улучшения: [12]

  • Все регистры имеют ширину 16 бит.
  • Счетчик программы - 22 бита (биты 22: 1; бит 0 всегда равен 0)
  • Инструкции имеют ширину 24 бита
  • Адресное пространство данных расширено до 64  КБ
  • Первые 2 КиБ зарезервированы для регистров управления периферией.
  • Переключение банка данных не требуется, если ОЗУ не превышает 62 КБ.
  • Прямая адресация "f операнд" расширена до 13 бит (8 КиБ)
  • Для операций регистр-регистр доступно 16 регистров Вт.
    (Но операции с операндами f всегда ссылаются на W0.)
  • Инструкции бывают в байтовых и (16-битных) словоформах.
  • Стек находится в ОЗУ (с указателем стека W15); нет аппаратного стека
  • W14 - указатель кадра
  • Доступ к данным, хранящимся в ПЗУ, возможен напрямую («Видимость пространства программы»)
  • Векторные прерывания для разных источников прерываний

Некоторые особенности:

  • (16 × 16) -битное умножение за один цикл и другие операции цифровой обработки сигналов
  • аппаратное умножение – накопление (MAC)
  • аппаратная помощь при разделении (19 циклов для 32/16-битного деления)
  • баррель переключения - как для аккумуляторов, так и для регистров общего назначения
  • инверсия долота
  • аппаратная поддержка индексирования цикла
  • периферийный прямой доступ к памяти

dsPIC могут быть запрограммированы на C с использованием компилятора Microchip XC16 (ранее называвшегося C30), который является вариантом GCC .

ПЗУ с инструкциями имеет ширину 24 бита. Программное обеспечение может обращаться к ПЗУ в 16-битных словах, где четные слова содержат 16 младших разрядов каждой инструкции, а нечетные слова - 8 старших разрядов. Старшая половина нечетных слов читается как ноль. Программный счетчик имеет ширину 23 бита, но младший бит всегда равен 0, поэтому имеется 22 изменяемых бита.

Инструкции бывают двух основных видов, причем наиболее важные операции (добавление, xor, сдвиги и т. Д.) Допускают обе формы.

Первый подобен классическим инструкциям PIC, с операцией между заданным регистром f (то есть первыми 8 КБ ОЗУ) и одним аккумулятором W0, с выбором бита выбора пункта назначения, который обновляется с результатом. (Регистры W отображены в память. Таким образом, операндом f может быть любой регистр W.)

Вторая форма более традиционна и позволяет использовать три операнда, которые могут быть любым из регистров по 16 Вт. Пункт назначения и один из источников также поддерживают режимы адресации, позволяя операнду находиться в памяти, на которую указывает регистр W.

Линия на базе PIC32M MIPS [ править ]

PIC32MX [ править ]

В ноябре 2007 года Microchip представила PIC32MX семейство 32-разрядных микроконтроллеров, на основе MIPS32 М4 Ядра . [13] Устройство может быть запрограммировано с помощью компилятора Microchip MPLAB C для микроконтроллеров PIC32 , варианта компилятора GCC. Первые 18 производимых в настоящее время моделей (PIC32MX3xx и PIC32MX4xx) совместимы по выводам и используют те же периферийные устройства, что и семейство (16-разрядных) устройств PIC24FxxGA0xx, что позволяет использовать общие библиотеки, программное обеспечение и аппаратные средства. Сегодня, начиная с 28 выводов в небольших корпусах QFN и заканчивая высокопроизводительными устройствами с Ethernet, CAN и USB OTG, доступен полный спектр 32-разрядных микроконтроллеров среднего уровня.

Архитектура PIC32 привнесла в портфолио Microchip ряд новых функций, в том числе:

  • Максимальная скорость выполнения 80 MIPS (120+ [14] Dhrystone MIPS @ 80 МГц )
  • Самая большая флеш-память: 512 КБ
  • Одна инструкция на выполнение тактового цикла
  • Первый кешированный процессор
  • Разрешает выполнение из ОЗУ
  • Возможности Full Speed ​​Host / Dual Role и OTG USB
  • Полное JTAG и 2-проводное программирование и отладка
  • Трассировка в реальном времени

PIC32MZ [ править ]

В ноябре 2013 года Microchip представила серию микроконтроллеров PIC32MZ на базе ядра MIPS M14K. Серия PIC32MZ включает: [15] [16]

  • Частота ядра 252 МГц, 415 DMIPS
  • До 2 МБ флэш-памяти и 512 КБ ОЗУ
  • Новые периферийные устройства, включая высокоскоростной USB, криптографический движок и SQI.

В 2015 году Microchip выпустила семейство PIC32MZ EF, использующее обновленный процессор MIPS M5150 Warrior M-класса. [17] [18]

В 2017 году Microchip представила семейство PIC32MZ DA, включающее встроенный графический контроллер, графический процессор и 32 МБ DDR2 DRAM. [19] [20]

PIC32MM [ править ]

В июне 2016 года Microchip представила семейство PIC32MM, специализирующееся на маломощных и недорогих приложениях. [21] PIC32MM имеет независимые от ядра периферийные устройства, спящие режимы до 500 нА и корпуса 4 x 4 мм. [22] микроконтроллеры PIC32MM использовать MIPS Technologies М4, 32-битный в MIPS32 процессор. Они предназначены для очень низкого энергопотребления и ограничены до 25 МГц. Их ключевое преимущество - поддержка 16-битных инструкций MIPS, что значительно сокращает размер программы (около 40%).

PIC32MK [ править ]

Microchip представила семейство PIC32MK в 2017 году, специализирующееся на управлении двигателями, промышленном управлении, промышленном Интернете вещей (IIoT) и многоканальных приложениях CAN. [23]

Основная архитектура [ править ]

Архитектура PIC характеризуется множеством атрибутов:

  • Раздельное пространство кода и данных ( Гарвардская архитектура ).
    • За исключением PIC32: отдельные пути данных и инструкций в архитектуре MIPS M4K эффективно объединяются в единое общее адресное пространство модулем System Bus Matrix.
  • Небольшое количество инструкций фиксированной длины
  • Большинство инструкций являются одноцикловыми (2 тактовых цикла или 4 тактовых цикла в 8-битных моделях) с одним циклом задержки на переходах и пропусках.
  • Один аккумулятор (W0), использование которого (как исходный операнд) подразумевается (т.е. не закодировано в коде операции )
  • Все ячейки ОЗУ функционируют как регистры как источник и / или место назначения математических и других функций. [24]
  • Аппаратный стек для хранения адресов возврата
  • Небольшой объем адресуемого пространства данных (32, 128 или 256 байтов, в зависимости от семейства), расширенный за счет банковских
  • ЦП, порт и периферийные регистры с отображением в пространство данных
  • Флаги состояния ALU отображаются в пространстве данных
  • Программный счетчик также отображается в пространство данных и доступен для записи (это используется для реализации косвенных переходов).

Нет различия между пространством памяти и пространством регистров, потому что ОЗУ выполняет работу как памяти, так и регистров, а ОЗУ обычно называют просто файлом регистров или просто регистрами.

Пространство данных (RAM) [ править ]

У PIC есть набор регистров, которые функционируют как ОЗУ общего назначения. Специальные регистры управления аппаратными ресурсами на кристалле также отображаются в пространстве данных. Адресуемость памяти варьируется в зависимости от серии устройства, и все устройства PIC имеют некоторый банковский механизм для расширения адресации на дополнительную память. Более поздние серии устройств содержат инструкции перемещения, которые могут охватывать все адресное пространство, независимо от выбранного банка. В более ранних устройствах любое перемещение регистра должно было осуществляться через аккумулятор.

Для реализации косвенной адресации используются «регистр выбора файла» (FSR) и «косвенный регистр» (INDF). Номер регистра записывается в FSR, после чего чтение или запись в INDF фактически будет происходить из или в регистр, на который указывает FSR. Более поздние устройства расширили эту концепцию, добавив пост- и пре-инкремент / декремент для большей эффективности при доступе к последовательно сохраненным данным. Это также позволяет рассматривать FSR почти как указатель стека (SP).

Внешняя память данных не адресуется напрямую, за исключением некоторых устройств PIC18 с большим количеством контактов.

Пространство кода [ править ]

Кодовое пространство обычно реализуется как встроенное ПЗУ , СППЗУ или флэш-ПЗУ . Как правило, нет возможности хранить код во внешней памяти из-за отсутствия интерфейса внешней памяти. Исключением являются PIC17 и выберите устройства PIC18 с большим количеством выводов. [25]

Размер слова [ править ]

Все PIC обрабатывают (и адресуют) данные 8-битными порциями. Однако единица адресуемости кодового пространства обычно не такая же, как и для пространства данных. Например, PIC в базовом (PIC12) и среднем (PIC16) семействах имеют программную память, адресуемую в том же размере, что и ширина команды, то есть 12 или 14 битов соответственно. Напротив, в серии PIC18 память программ адресуется с 8-битными приращениями (байтами), что отличается от ширины инструкции в 16 бит.

Для ясности, объем памяти программ обычно указывается в количестве (однословных) инструкций, а не в байтах.

Стеки [ править ]

У PIC есть аппаратный стек вызовов , который используется для сохранения адресов возврата. Аппаратный стек недоступен программно на более ранних устройствах, но это изменилось с устройствами серии 18.

Аппаратная поддержка стека параметров общего назначения отсутствовала в ранних сериях, но она значительно улучшилась в 18-й серии, сделав архитектуру 18-й серии более удобной для компиляторов языков высокого уровня.

Набор инструкций [ править ]

Инструкции PIC варьируются от примерно 35 инструкций для PIC низкого уровня до более 80 инструкций для PIC высокого класса. Набор команд включает инструкции для выполнения множества операций непосредственно с регистрами, сумматором и литеральной константой или сумматором и регистром , а также для условного выполнения и ветвления программы.

Некоторые операции, такие как установка битов и проверка, могут выполняться в любом пронумерованном регистре, но арифметические операции с двумя операндами всегда включают W (аккумулятор), записывая результат обратно либо в W, либо в другой регистр операнда. Чтобы загрузить константу, необходимо загрузить ее в W, прежде чем ее можно будет переместить в другой регистр. На более старых ядрах все перемещения регистров должны были проходить через W, но это изменилось на ядрах «высокого класса».

Ядра PIC имеют инструкции пропуска, которые используются для условного выполнения и ветвления. Инструкции пропуска: «пропустить, если бит установлен» и «пропустить, если бит не установлен». Поскольку ядра до PIC18 имели только инструкции безусловного перехода, условные переходы реализованы с помощью условного перехода (с противоположным условием), за которым следует безусловный переход. Пропуски также полезны для условного выполнения любой немедленной последующей инструкции. Можно пропустить инструкции пропуска. Например, последовательность инструкций «пропустить, если A; пропустить, если B; C» выполнит C, если A истинно или если B ложно.

В 18-й серии реализованы теневые регистры, регистры, которые сохраняют несколько важных регистров во время прерывания, обеспечивая аппаратную поддержку для автоматического сохранения состояния процессора при обслуживании прерываний.

В общем, инструкции PIC делятся на пять классов:

  1. Операция над рабочим регистром (WREG) с 8-битным непосредственным («буквальным») операндом. Например movlw(переместить литерал в WREG), andlw(И литерал с WREG). Одна инструкция, характерная для PIC, - retlwнемедленно загрузить в WREG и вернуться, что используется с вычисленными ветвями для создания таблиц поиска .
  2. Работа с WREG и индексированным регистром. Результат можно записать либо в Рабочий регистр (например ). или выбранный регистр (например ).addwf reg,waddwf reg,f
  3. Битовые операции. Они принимают номер регистра и номер бита и выполняют одно из 4 действий: устанавливают или очищают бит, а также тестируют и пропускают установку / сброс. Последние используются для выполнения условных переходов. Обычные флаги состояния ALU доступны в пронумерованном регистре, поэтому возможны такие операции, как «переход при очистке переноса».
  4. Контрольные переводы. Помимо ранее упомянутых инструкций по пропуску, их всего две: gotoи call.
  5. Несколько разных инструкций с нулевым операндом, таких как возврат из подпрограммы и sleepпереход в режим пониженного энергопотребления.

Производительность [ править ]

Архитектурные решения направлены на максимальное увеличение соотношения скорости и стоимости. Архитектура PIC была одной из первых скалярных схем ЦП [ необходима цитата ] и до сих пор остается одной из самых простых и дешевых. Гарвардская архитектура, в которой инструкции и данные поступают из разных источников, значительно упрощает синхронизацию и проектирование микросхем, что способствует увеличению тактовой частоты, цены и потребления энергии.

Набор инструкций PIC подходит для реализации таблиц быстрого поиска в программном пространстве. Такой поиск занимает одну инструкцию и два цикла инструкций. Таким образом можно смоделировать многие функции. Оптимизация обеспечивается относительно большим программным пространством PIC (например, 4096 × 14-битных слов на 16F690) и конструкцией набора команд, который допускает встроенные константы. Например, цель инструкции ветвления может быть проиндексирована с помощью W и выполнить команду «RETLW», которая выполняет то, что названо - возврат с литералом в W.

Задержка прерывания постоянна на трех тактах команд. Внешние прерывания должны быть синхронизированы с четырехтактным командным циклом, в противном случае может возникнуть дрожание в один командный цикл. Внутренние прерывания уже синхронизированы. Постоянная задержка прерывания позволяет PIC достигать управляемых прерываниями временных последовательностей с низким уровнем дрожания. Примером этого является генератор импульсов синхронизации видео. Это уже не так в новейших моделях PIC, потому что они имеют задержку синхронного прерывания в три или четыре цикла.

Преимущества [ править ]

  • Небольшой набор инструкций для изучения
  • RISC- архитектура
  • Встроенный осциллятор с возможностью выбора скорости
  • Простой начальный уровень, внутрисхемное программирование и внутрисхемная отладка. Модули PICkit доступны менее чем за 50 долларов.
  • Недорогие микроконтроллеры
  • Широкий спектр интерфейсов, включая I²C , SPI , USB , USART , A / D , программируемые компараторы, PWM , LIN , CAN , PSP и Ethernet [26]
  • Наличие процессоров в пакете DIL позволяет легко использовать их для хобби.

Ограничения [ править ]

  • Один аккумулятор
  • Для доступа ко всей оперативной памяти многих устройств требуется переключение регистров и банков.
  • Операции и регистры не ортогональны ; некоторые инструкции могут обращаться к ОЗУ и / или непосредственным константам, в то время как другие могут использовать только аккумулятор.

Следующие ограничения стека были устранены в серии PIC18 , но по-прежнему применяются к более ранним ядрам:

  • Стек вызовов оборудования не является адресуемым, поэтому упреждающее переключение задач не может быть реализовано.
  • Программно реализованные стеки неэффективны, поэтому сложно генерировать реентерабельный код и поддерживать локальные переменные.

С выгружаемой программной памятью нужно беспокоиться о двух размерах страниц: один для CALL и GOTO, а другой для вычисленного GOTO (обычно используется для поиска в таблице). Например, на PIC16 CALL и GOTO имеют 11 бит адресации, поэтому размер страницы составляет 2048 командных слов. Для вычисленных GOTO, которые вы добавляете в PCL, размер страницы составляет 256 командных слов. В обоих случаях старшие биты адреса предоставляются регистром PCLATH. Этот регистр необходимо менять каждый раз при передаче управления между страницами. PCLATH также должен сохраняться любым обработчиком прерывания. [27]

Разработка компилятора [ править ]

Хотя доступно несколько коммерческих компиляторов, в 2008 году Microchip выпустила собственные компиляторы C, C18 и C30, для линейки процессоров 18F 24F и 30 / 33F.

По состоянию на 2013 год , Microchip предлагает свою серию XC компиляторов, для использования с MPLAB X . Microchip постепенно откажется от своих старых компиляторов, таких как C18, и рекомендует использовать свои компиляторы серии XC для новых проектов. [28]

Набор команд RISC кода на языке ассемблера PIC может затруднить понимание общей последовательности операций. Разумное использование простых макросов может повысить удобочитаемость языка ассемблера PIC. Например, исходный ассемблер Parallax PIC («SPASM») имеет макросы, которые скрывают W и делают PIC похожим на двухадресную машину. В нем есть макрокоманды, такие как mov b, a(переместить данные с адреса a на адрес b ) и add b, a(добавить данные с адреса a к данным на адресе b ). Он также скрывает инструкции пропуска, предоставляя макрокоманды ветвления с тремя операндами, такие как cjne a, b, dest(сравните a с b и перейдите кdest, если они не равны).

Характеристики оборудования [ править ]

Устройства PIC обычно имеют:

  • Флэш-память (программная память, программируемая с помощью устройств MPLAB )
  • SRAM (память данных)
  • Память EEPROM (программируется во время выполнения)
  • Спящий режим (экономия энергии)
  • Сторожевой таймер
  • Различные конфигурации кварцевого или RC- генератора или внешние часы

Варианты [ править ]

Внутри серии по-прежнему существует множество вариантов устройств в зависимости от того, какие аппаратные ресурсы использует чип:

  • Контакты ввода / вывода общего назначения
  • Внутренние тактовые генераторы
  • 8/16/32 битные таймеры
  • Синхронный / асинхронный последовательный интерфейс USART
  • MSSP Peripheral для I²C и SPI связи
  • Модули захвата / сравнения и ШИМ
  • Аналого-цифровые преобразователи (до ~ 1,0 Msps)
  • Поддержка интерфейса USB, Ethernet , CAN
  • Интерфейс внешней памяти
  • Встроенные аналоговые радиочастотные интерфейсы (PIC16F639 и rfPIC).
  • Периферийное устройство для шифрования с подвижным кодом KEELOQ (кодирование / декодирование)
  • И многое другое

Тенденции [ править ]

Первое поколение PIC с памятью EPROM почти полностью заменено микросхемами с флэш-памятью . Аналогичным образом, исходный 12-битный набор команд PIC1650 и его прямых потомков был заменен 14-битным и 16-битным наборами команд. Microchip по-прежнему продает OTP (одноразово программируемые) и оконные (УФ-стираемые) версии некоторых своих PIC на базе EPROM для устаревшей поддержки или объемных заказов. На веб-сайте Microchip перечислены PIC, которые электрически не стираются, как OTP. Можно заказать версии этих чипов с УФ-стиранием и окном.

Номер детали [ править ]

Буква F в номере детали PICMicro обычно указывает на то, что PICmicro использует флэш-память и может быть стерта электронным способом. И наоборот, C обычно означает, что его можно стереть, только подвергнув кристалл воздействию ультрафиолетового света (что возможно только при использовании оконного стиля упаковки). Исключением из этого правила является PIC16C84, который использует EEPROM и поэтому электрически стирается.

Буква L в названии указывает на то, что деталь будет работать при более низком напряжении, часто с ограничениями по частоте. [29] Детали, разработанные специально для работы с низким напряжением, в пределах строгого диапазона 3–3,6 вольт, помечены буквой J в номере детали. Эти компоненты также обладают уникальной толерантностью к вводу-выводу, поскольку они принимают до 5 В. в качестве входов. [29]

Инструменты разработки [ править ]

Microchip предоставляет бесплатный пакет IDE под названием MPLAB X , который включает ассемблер, компоновщик, программный симулятор и отладчик. Они также продают компиляторы C для PIC10, PIC12, PIC16, PIC18, PIC24, PIC32 и dsPIC, которые полностью интегрируются с MPLAB X. Также доступны бесплатные версии компиляторов C со всеми функциями. Но для бесплатных версий оптимизация будет отключена через 60 дней. [30]

Некоторые сторонние компании разрабатывают компиляторы языка C для PIC, многие из которых интегрируются в MPLAB и / или имеют собственную IDE. Полнофункциональный компилятор для языка PICBASIC для программирования микроконтроллеров PIC доступен от meLabs, Inc. Mikroelektronika предлагает компиляторы PIC на языках программирования C, BASIC и Pascal.

Существует графический язык программирования Flowcode , способный программировать 8- и 16-битные устройства PIC и генерировать PIC-совместимый код C. Он существует во многих версиях, от бесплатной демонстрации до более полной профессиональной версии.

Proteus Design Suite может имитировать многие популярные 8 и 16-битных PIC устройств вместе с другими схемами , что связано с ПОС на схеме. Смоделируемую программу можно разработать в самом Proteus, MPLAB или любом другом средстве разработки. [31]

Программисты устройств [ править ]

Это программист эпохи 2003 года для семейства микроконтроллеров Microchip "PIC". Он подключается кабелем RS 232 к ПК, совместимому с запущенным программным обеспечением для разработки. В 2003 году это устройство стоило 300 канадских долларов (около 200 долларов в то время).

Устройства, называемые « программистами », традиционно используются для ввода программного кода в целевой PIC. Большинство PIC, которые в настоящее время продает Microchip, имеют возможности ICSP (последовательное программирование в цепи) и / или LVP (программирование низкого напряжения), что позволяет программировать PIC, пока он находится в целевой цепи .

Microchip предлагает программаторы / отладчики серий MPLAB и PICKit . MPLAB ICD4 и MPLAB REAL ICE - нынешние программисты и отладчики для профессионального проектирования, а PICKit 3 - это недорогая линейка программаторов / отладчиков для любителей и студентов.

Загрузочная [ править ]

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

В качестве альтернативы доступна прошивка загрузчика, которую пользователь может загрузить на PIC с помощью ICSP. После программирования загрузчика на PIC, пользователь может перепрограммировать устройство, используя RS232 или USB, в сочетании со специализированным компьютерным программным обеспечением.

Преимуществами загрузчика перед ICSP являются более высокая скорость программирования, немедленное выполнение программы после программирования и возможность как отладки, так и программирования с использованием одного и того же кабеля.

Третья сторона [ править ]

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

Сторонние программисты варьируются от планов по созданию собственных устройств до комплектов для самостоятельной сборки и полностью протестированных готовых устройств. Некоторые из них представляют собой простые конструкции, требующие, чтобы ПК выполнял сигнализацию программирования низкого уровня (они обычно подключаются к последовательному или параллельному порту и состоят из нескольких простых компонентов), в то время как другие имеют встроенную логику программирования (они обычно используют последовательный порт ). или USB-соединение, обычно быстрее и часто строятся с использованием самих PIC для управления).

Отладка [ править ]

Внутрисхемная отладка [ править ]

Все новые устройства PIC имеют интерфейс ICD (внутрисхемной отладки), встроенный в ядро ​​ЦП, что позволяет выполнять интерактивную отладку программы в сочетании с MPLAB IDE. Отладчики MPLAB ICD и MPLAB REAL ICE могут связываться с этим интерфейсом, используя интерфейс ICSP .

Однако эта система отладки имеет свою цену, а именно ограниченное количество точек останова (1 на старых устройствах, 3 на новых устройствах), потеря некоторых операций ввода-вывода (за исключением некоторых 44-контактных PIC для поверхностного монтажа, которые имеют выделенные линии для отладки). и потеря некоторых встроенных функций.

Некоторые устройства не имеют встроенной поддержки отладки из-за стоимости или отсутствия контактов. Некоторые более крупные микросхемы также не имеют модуля отладки. Для отладки этих устройств требуется специальная версия микросхемы -ICD, установленная на дочерней плате, которая предоставляет выделенные порты. Некоторые из этих отладочных микросхем могут работать как несколько типов микросхем за счет использования выбираемых перемычек на дочерней плате. Это позволяет заменить в целом идентичные архитектуры, не содержащие все периферийные устройства на кристалле, на один кристалл -ICD. Например: 12F690-ICD будет работать как одна из шести различных частей, каждая из которых имеет одно, некоторые или все пять периферийных устройств на кристалле. [32]

Внутрисхемные эмуляторы [ править ]

Microchip предлагает три полноценных эмулятора : MPLAB ICE2000 (параллельный интерфейс, имеется USB-преобразователь); более новый MPLAB ICE4000 (подключение USB 2.0); и совсем недавно REAL ICE (соединение USB 2.0). Все такие инструменты обычно используются вместе с MPLAB IDE для интерактивной отладки на уровне исходного кода кода, выполняемого на целевом компьютере.

Операционные системы [ править ]

В проектах PIC могут использоваться операционные системы реального времени, такие как FreeRTOS , AVIX RTOS, uRTOS, Salvo RTOS или другие аналогичные библиотеки для планирования задач и определения приоритетов.

Открытый исходный код Сергея Вакуленко адаптирует 2.11BSD к архитектуре PIC32 под названием RetroBSD. Таким образом, микроконтроллер получает знакомую Unix-подобную операционную систему, включая встроенную среду разработки, в пределах ограничений встроенного оборудования. [33]

Клоны [ править ]

Параллакс [ править ]

Parallax произвел серию микроконтроллеров, подобных PICmicro, известных как Parallax SX . В настоящее время снят с производства. Разработанные так, чтобы быть архитектурно подобными микроконтроллерам PIC, используемым в исходных версиях BASIC Stamp , микроконтроллеры SX заменили PIC в нескольких последующих версиях этого продукта.

SX от Parallax - это 8-битные микроконтроллеры RISC, использующие 12-битное командное слово, которые работают быстро на частоте 75 МГц (75 MIPS). Они включают до 4096 12-битных слов флэш-памяти и до 262 байтов оперативной памяти , восьмибитный счетчик и другую вспомогательную логику. Существуют программные библиотечные модули для эмуляции интерфейсов I²C и SPI , UART, генераторов частоты, счетчиков измерений, ШИМ и сигма-дельта аналого- цифровых преобразователей. Другие интерфейсы относительно легко написать, а существующие модули можно модифицировать для получения новых функций.

РПК Миланд [ править ]

1886VE2U

Российский ПКК Миландр производит микроконтроллеры, использующие архитектуру PIC17 как серию 1886 года. [34] [35] [36] [37] Программная память состоит из флэш-памяти объемом до 64 Кбайт в 1886VE2U ( русский язык : 1886ВЕ2У ) или 8кбайт EEPROM в 1886VE5U ( 1886ВЕ5У ). Модели 1886ВЕ5У ( 1886ВЕ5У ) - 1886VE7U ( 1886ВЕ7У ) предназначены для военного температурного диапазона от -60 ° C до +125 ° C. Аппаратные интерфейсы в различных частях включают USB, CAN, I2C, SPI, а также аналого-цифровые и цифро-аналоговые преобразователи. 1886VE3U ( 1886ВЕ3У ) содержит аппаратный ускоритель для криптографических функций в соответствии сГОСТ 28147-89 . Есть даже радиационно- стойкие микросхемы с обозначениями 1886ВЕ8У ( 1886ВЕ8У ) и 1886VE10U ( 1886ВЕ10У ). [38]

ELAN Microelectronics [ править ]

Корпорация ELAN Microelectronics на Тайване производит линейку микроконтроллеров на основе архитектуры PIC16 с 13-битными инструкциями и меньшим (6-битным) адресным пространством RAM. [39]

Holtek Semiconductor [ править ]

Holtek Semiconductor производит большое количество очень дешевых микроконтроллеров [40] (всего 8,5 цента в количестве [41] ) с 14-битным набором команд, поразительно похожим на PIC16.

Другие производители в Азии [ править ]

Многие сверхдешевые микроконтроллеры OTP от азиатских производителей, используемые в недорогой бытовой электронике, основаны на архитектуре PIC или модифицированной форме. Большинство клонов нацелены только на базовые части (PIC16C5x / PIC12C50x). Microchip безуспешно пыталась подать в суд на некоторых производителей, когда копирование было особенно вопиющим [42] [43] . [44] [45] [ нужен лучший источник ]

См. Также [ править ]

  • PIC16x84
  • Atmel AVR
  • Ардуино
  • БАЗОВЫЙ Атом
  • БАЗОВЫЙ штамп
  • ООПик
  • PICAXE
  • TI MSP430
  • Максимит

Ссылки [ править ]

  1. ^ http://ww1.microchip.com/downloads/en/DeviceDoc/39630C.pdf
  2. ^ http://www.datasheetarchive.com/dl/Databooks-1/Book241-407.pdf
  3. ^ «Семейное древо PICmicro», презентация семинара PIC16F «Архивная копия» (PDF) . Архивировано из оригинального (PDF) на 2012-03-02 . Проверено 2 августа 2011 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  4. ^ a b "MOS DATA 1976", General Instrument 1976 Databook
  5. ^ a b "Каталог данных 1977 года", Micro Electronics от General Instrument Corporation "Архивная копия" (PDF) . Архивировано из оригинального (PDF) на 2011-08-15 . Проверено 2 августа 2011 . CS1 maint: заархивированная копия как заголовок ( ссылка )
  6. ^ Plessey Спутникового Кабельного ТВ Integrated Circuit Handbook май 1986
  7. ^ "Зал славы микросхем: микроконтроллер Microchip Technology PIC 16C84" . IEEE . Проверено 16 сентября 2018 года .
  8. Лоусон, Эрик (16 мая 2013 г.). «Компания Microchip Technology поставляет 12-миллиардный микроконтроллер PIC® ведущему производителю двигателей, Nidec Corporation» . Пресс-релиз Microchip. Архивировано из оригинала 21 июля 2013 года . Проверено 21 декабря 2017 года . Microchip поставила этот 12-миллиардный микроконтроллер примерно через 10 месяцев после поставки 11-миллиардного микроконтроллера.
  9. ^ "Технические данные микроконтроллера PIC17C4x" (PDF) . Технология микрочипов. 1996. DS30412C . Проверено 16 августа 2016 .
  10. ^ "Микросхемы Microchip PIC и C - исходный код и образец кода" . www.microchipc.com . Проверено 7 апреля 2018 года .
  11. ^ [1]
  12. ^ "Обзор семейства PIC24H" (PDF) . Проверено 23 сентября 2007 года .
  13. ^ "Архивная копия" . Архивировано из оригинала на 2009-02-02 . Проверено 21 января 2009 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  14. ^ "32-битные микроконтроллеры PIC" . Проверено 13 октября 2010 года .
  15. ^ «32-битные микроконтроллеры - Microchip Technology» . www.microchip.com . Проверено 7 апреля 2018 года .
  16. ^ «Ошибка 404 - страница не найдена - Microchip Technology Inc» . www.microchip.com . Проверено 7 апреля 2018 года . Cite использует общий заголовок ( справка )
  17. ^ «Добро пожаловать в блог воображения» . imgtec.com . Проверено 7 апреля 2018 года .
  18. ^ http://www.microchip.com/design-centers/32-bit/architecture/pic32mz-family
  19. ^ «Ошибка 404 - страница не найдена - Microchip Technology Inc» . www.microchip.com . Проверено 7 апреля 2018 года . Cite использует общий заголовок ( справка )
  20. ^ «Ошибка 404 - страница не найдена - Microchip Technology Inc» . www.microchip.com . Проверено 7 апреля 2018 года . Cite использует общий заголовок ( справка )
  21. ^ «Microchip запускает самое низкое энергопотребление и экономичное семейство PIC32 - Microchip Technology» . www.microchip.com . Проверено 7 апреля 2018 года .
  22. ^ http://www.microchip.com/promo/pic32mm
  23. ^ «Ошибка 404 - страница не найдена - Microchip Technology Inc» . www.microchip.com . Проверено 7 апреля 2018 года . Cite использует общий заголовок ( справка )
  24. ^ http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf
  25. ^ Ровнаг, Тим (2003). «AN869: Методы взаимодействия с внешней памятью для PIC18F8XXX» (PDF) . Технология микрочипов. DS00869B . Проверено 24 августа 2009 года .
  26. ^ «Ошибка 404 - страница не найдена - Microchip Technology Inc» . www.microchip.com . Проверено 7 апреля 2018 года . Cite использует общий заголовок ( справка )
  27. ^ "Замедление 208.80.153.50,10-192-48-43 & c = 1 & t = 43197.5553483796" . massmind.org . Проверено 7 апреля 2018 года .
  28. ^ «MPLAB® XC: решения для компиляторов» . microchip.com . Проверено 7 апреля 2018 года .
  29. ^ a b «Дизайн-центр 3V» . Проверено 2 августа 2011 года .
  30. ^ "Компилятор MPLAB XC8 для микроконтроллеров PIC10 / 12/16/18" .
  31. ^ «Как имитировать микроконтроллер PIC в Proteus Design Suite 8 - Галерея схем» . 2013-08-02 . Проверено 12 июля 2016 .
  32. ^ Документ о микросхеме № DS51292R
  33. ^ "начало - RetroBSD" . retrobsd.org . Проверено 7 апреля 2018 года .
  34. ^ "Миландр K1886VE: ПИК, который поехал в Россию" . CPU Shack. 10 марта 2016 . Проверено 21 июля +2016 .
  35. ^ "Высокопроизводительные 8-ми разрядные КМОП микроконтроллеры 1886ВЕ1 и 1886ВЕ2. Перечень отличный от ближайшего функционального аналога PIC17C756A" [Высокопроизводительные 8-битные микроконтроллеры CMOS 1886VE1 и 1886VE2. Список отличий от ближайшего функционального аналога PIC17C756A.] (PDF ). Москва: РПК Миландр. 7 сентября 2006. Архивировано из оригинального (PDF) 5 февраля 2017 года . Проверено 23 октября 2017 года .
  36. ^ "Каталог продукции группы компаний" Миландр "2017" [Каталог продукции Milandr Group 2017] (PDF) (на русском языке). Москва: РПК Миландр. Архивировано из оригинального (PDF) 27 октября 2017 года . Проверено 18 апреля 2018 года .
  37. ^ "1886ая серия" [1886 серия] . Проверено 21 июля +2016 .
  38. ^ «Часть II: Как« открыть »микрочип и что внутри? Z80, Multiclet, MSP430, PIC и другие» . ZeptoBars. 21 февраля 2013 . Проверено 11 апреля 2017 года .
  39. ^ http://www.emc.com.tw/eng/products.asp
  40. Рианна Карлсон, Джей (15 сентября 2017 г.). «Холтек HT-66» . Удивительный микроконтроллер за 1 доллар . Проверено 8 июля 2019 .
  41. ^ Aufranc, Жан-Люк (3 августа 2016). «Какой самый дешевый микроконтроллер? Моя попытка: 8-битный микроконтроллер Holtek HT48R002, проданный за 0,085 доллара» . Блог CNX Software . Проверено 8 июля 2019 .
  42. ^ "Microchip Technology подает иск о нарушении авторских прав против MICON Design Technology CO. LTD" (PDF) (пресс-релиз). 29 января 1999 . Проверено 23 октября 2017 года .
  43. ^ "Microchip Technology подает судебный иск против Shanghai Haier Integrated Circuit" (PDF) (пресс-релиз). 5 июля 2007 . Проверено 23 октября 2017 года .
  44. ^ Фуллер, Брайан (1 мая 2013 г.). «Борьба с китайской подделкой? Забудьте об этом» . Новости бизнеса электроники .
  45. ^ "Интегрированный чип Haier, чтобы выиграть патентную битву против микрочипа США" . sb2a0 электронные компоненты (блог). 18 мая 2015 . Проверено 8 июля 2019 .

Дальнейшее чтение [ править ]

  • Теория и приложения микроконтроллеров с PIC18F ; 2-е изд; М. Рафикзаман; Wiley; 544 страницы; 2018; ISBN 978-1119448419 . 
  • Проектирование микроконтроллерных систем с использованием процессоров PIC18F ; Николас К. Хаддад; IGI Global; 428 страниц; 2017; ISBN 978-1683180005 . 
  • Проекты микроконтроллеров PIC на C: от базового до продвинутого (для PIC18F) ; 2-е изд; Доган Ибрагим; Newnes; 660 страниц; 2014; ISBN 978-0080999241 . (1-е изд) 
  • Программирование микроконтроллера: Microchip PIC ; Санчес и Кантон; CRC Press; 824 страницы; 2006; ISBN 978-0849371899 . (1-е изд) 
  • Книга проекта микроконтроллера PIC ; Джон Айовин; TAB; 272 страницы; 2000; ISBN 978-0071354790 . (1-е изд) 

Внешние ссылки [ править ]

  • Микроконтроллеры PIC в Curlie .
  • Официальный сайт Microchip
  • Сайт проектов PIC wifi