PIC-микроконтроллеры
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2019 г. ) |
PIC (обычно произносится как /pɪk/) — семейство микроконтроллеров производства Microchip Technology , созданное на основе PIC1640. [1] [2] Первоначально разработанный подразделением микроэлектроники компании General Instrument . Название PIC первоначально относилось к контроллеру периферийного интерфейса . [3] и в настоящее время расширен как Программируемый интеллектуальный компьютер . [4] Первые части семейства были доступны в 1976 году; к 2013 году компания поставила более двенадцати миллиардов отдельных деталей, используемых в самых разных встраиваемых системах . [5]
Первоначально PIC предназначался для использования с General Instrument CP1600 , первым коммерчески доступным однокристальным 16-битным микропроцессором . У CP1600 была сложная шина, с которой было трудно взаимодействовать, а PIC был представлен как сопутствующее устройство, предлагающее ПЗУ для хранения программ, ОЗУ для временной обработки данных и простой ЦП для управления передачей. Хотя это давало значительную мощность, маркетинг GI был ограничен, и CP1600 не имел успеха. Когда в 1985 году компания выделила свое подразделение по производству микросхем и образовала Microchip, продажи CP1600 практически прекратились. К этому времени PIC сформировала собственный крупный рынок и стала одним из основных продуктов новой компании.
Ранние модели имели только ПЗУ-маску для хранения кода, но вскоре оно было модернизировано для использования EPROM , а затем EEPROM , что позволило конечным пользователям программировать устройства на своих собственных объектах. Все текущие модели используют флэш-память для хранения программ, а новые модели позволяют 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 популярны как среди промышленных разработчиков, так и среди любителей из-за их низкой стоимости, широкой доступности, большой базы пользователей, обширной коллекции замечаний по применению, наличия недорогих или бесплатных инструментов разработки, последовательного программирования и возможности перепрограммируемой флэш-памяти. .
История
[ редактировать ]Оригинальная концепция
[ редактировать ]Оригинальный PIC предназначался для использования с новым (ЦП) General Instrument CP1600 16-битным центральным процессором . Чтобы уместить 16-битные шины данных и адреса в стандартную на тот момент 40-контактную микросхему с двойным входом (DIP), обе шины использовали один и тот же набор из 16 соединительных контактов. Для связи с ЦП устройствам приходилось наблюдать за другими контактами ЦП, чтобы определить, является ли информация на шине адресом или данными. Поскольку одновременно был представлен только один из них, устройствам приходилось наблюдать за шиной, чтобы перейти в адресный режим, проверять, является ли этот адрес частью отображаемого в памяти диапазона ввода/вывода , «фиксировать» этот адрес, а затем ждать режим данных, чтобы включить его, а затем прочитать значение. Кроме того, 1600 использовал несколько внешних контактов для выбора устройства, с которым он пытается связаться, что еще больше усложняло интерфейс.
Поскольку устройства сопряжения с 1600 могут быть сложными, GI также выпустила серию вспомогательных микросхем со всей необходимой встроенной схемой. В их число входили драйверы клавиатуры, интерфейсы кассетной деки для хранения данных и множество подобных систем. Для более сложных систем GI представила 8-битный PIC в 1975 году. Идея заключалась в том, что устройство будет использовать PIC для управления всем взаимодействием с CP1600 главного компьютера, но также использовать собственный внутренний процессор для управления фактическим устройством, которым оно является. подключен к. Например, дисковод гибких дисков может быть реализован с PIC, взаимодействующим с процессором с одной стороны, и контроллером гибких дисков с другой. В соответствии с этой идеей то, что сегодня будет известно как микроконтроллер , PIC включало в себя небольшой объем постоянной памяти (ПЗУ), в которую записывался код контроллера пользовательского устройства, и отдельное оперативное запоминающее устройство (ОЗУ) для хранения данных. буферизация и работа с данными. Они были подключены отдельно, что делало PIC системой Гарвардской архитектуры , в которой код и данные управлялись по разным внутренним каналам.
Теоретически комбинация 1600 CPU и PIC-контроллеров устройств обеспечивала очень высокопроизводительную систему управления устройствами, аналогичную по мощности и производительности контроллерам каналов, которые можно увидеть на мейнфреймах . Например, в примере с контроллером гибких дисков один PIC может управлять дисководом, обеспечивать разумную степень буферизации для повышения производительности, а затем передавать данные на главный компьютер и обратно с помощью прямого доступа к памяти (DMA) или с помощью относительно простого кода на языке процессор. Обратной стороной этого подхода была стоимость; хотя PIC не был необходим для низкоскоростных устройств, таких как клавиатура, для многих задач потребовался бы один или несколько PIC для создания полноценной системы.
Несмотря на то, что концепция дизайна имела ряд привлекательных особенностей, General Instrument никогда не продвигала 1600 на рынке, предпочитая иметь дело только с крупными клиентами и игнорируя рынок бюджетных инструментов. Это привело к очень небольшому распространению системы: Intellivision стала единственной действительно широко используемой системой, насчитывающей около трех миллионов единиц. Когда в 1985 году GI выделила свое подразделение по производству микросхем и сформировала Microchip Technology , производство CP1600 прекратилось. Однако к этому времени у PIC образовался большой рынок клиентов, использующих его для самых разных ролей, и PIC стал одним из основных продуктов новой компании.
После 1600 г.
[ редактировать ]В 1985 году General Instrument продала свое подразделение микроэлектроники , и новые владельцы отказались от почти всего, что к тому времени по большей части устарело. Однако PIC был модернизирован внутренней СППЗУ для создания программируемого контроллера каналов .В то же время Plessey в Великобритании выпустила процессоры NMOS под номерами PIC1650 и PIC1655, основанные на конструкции GI, с использованием тех же наборов команд, либо программируемых по маске пользователя, либо версий, предварительно запрограммированных для автодозвона и клавиатурных интерфейсов. [6]
В 1998 году компания Microchip представила PIC 16F84, программируемую и стираемую версию своего успешного последовательного программируемого PIC16C84. В 2001 году Microchip представила больше устройств с флэш-программированием, полное производство которых началось в 2002 году. [7]
Сегодня доступно огромное разнообразие PIC с различной встроенной периферией ( последовательной связи модулями , UART , ядрами управления двигателями и т. д.) и программной памятью от 256 слов до 64 КБ слов и более («слово» — это одна инструкция языка ассемблера). , длина которого варьируется от 8 до 16 бит , в зависимости от конкретного семейства PIC micro).
PIC и PICmicro теперь являются зарегистрированными торговыми марками Microchip Technology. Обычно считается, что PIC означает « контроллер периферийного интерфейса» , хотя первоначальная аббревиатура General Instruments для первоначальных устройств PIC1640 и PIC1650 была « программируемый контроллер интерфейса ». [3] Аббревиатуру быстро заменили на « Программируемый интеллектуальный компьютер ». [4]
Микрочип 16C84 ( PIC16x84 ), представленный в 1993 году, был первым [8] Микропроцессорный процессор со встроенной памятью EEPROM.
К 2013 году Microchip поставляла более одного миллиарда микроконтроллеров PIC ежегодно. [5] [ сомнительно – обсудить ]
Семейства устройств
[ редактировать ]Микрочипы PIC разработаны с использованием Гарвардской архитектуры и предлагаются в различных семействах устройств. В базовых и средних семействах используется 8-битная память данных, а в высокопроизводительных семействах используется 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. Устройства категории «С» с кварцевыми окнами (для защиты от УФ-излучения) больше не выпускаются.
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 и может указывать адреса только в первой половине каждой страницы из 512 слов. То есть инструкция CALL определяет младшие 9 бит адреса, но только младшие 8 бит этого адреса являются параметром инструкции, в то время как 9-й бит (бит 8) неявно указывается как 0 самой командой CALL.
Таблицы поиска реализованы с использованием вычисляемого GOTO
(присвоение регистру PCL) в таблицу RETLW
инструкции. RETLW возвращает в регистр W 8-битную константу, которая закодирована в инструкции.
Это «базовое ядро» не поддерживает прерывания ; все операции ввода-вывода должны быть опрошены . Существует несколько «расширенных базовых» вариантов с поддержкой прерываний и четырехуровневым стеком вызовов.
Устройства PIC10F32x имеют 14-битную кодовую память среднего уровня на 256 или 512 слов, 64-байтовый регистровый файл SRAM и 8-уровневый аппаратный стек. Эти устройства доступны в 6-контактном корпусе SMD и 8-контактном DIP-корпусе (два неиспользуемых контакта). Доступны только один вход и три контакта ввода-вывода. Доступен сложный набор прерываний. Часы представляют собой внутренний калиброванный высокочастотный генератор 16 МГц с возможностью выбора скорости с помощью программного обеспечения и источник малой мощности 31 кГц.
PIC16
[ редактировать ]Эти устройства оснащены 14-битной кодовой памятью и улучшенным 8-уровневым глубоким стеком вызовов. Набор команд очень мало отличается от базовых устройств, но два дополнительных бита кода операции позволяют напрямую обращаться к 128 регистрам и 2048 словам кода. Есть несколько дополнительных различных инструкций и две дополнительные 8-битные литеральные инструкции: сложение и вычитание. Ядро среднего уровня доступно в большинстве устройств с маркировкой PIC12 и PIC16.
Первые 32 байта регистрового пространства отводятся под регистры специального назначения; остальные 96 байт используются для оперативной памяти общего назначения. Если используется банковское ОЗУ, старшие 16 регистров (0x70–0x7F) являются глобальными, как и некоторые из наиболее важных регистров специального назначения, включая регистр STATUS, который содержит биты выбора банка ОЗУ. (Другими глобальными регистрами являются FSR и INDF, младшие 8 бит счетчика программ PCL, старший регистр предварительной загрузки ПК PCLATH и главный регистр управления прерываниями INTCON.)
Регистр PCLATH предоставляет биты адреса команды старшего порядка, когда 8 бит подаются при записи в регистр PCL, или 11 бит подаются при записи в регистр PCL. GOTO
или CALL
инструкций недостаточно для обращения к доступному пространству ПЗУ.
PIC17
[ редактировать ]Серия PIC17 так и не стала популярной и была заменена архитектурой PIC18 (однако см. клоны ниже). Серия PIC17 не рекомендуется для новых разработок, и ее доступность может быть ограничена для пользователей.
Улучшениями по сравнению с более ранними ядрами являются 16-битные коды операций (позволяющие использовать множество новых инструкций) и 16-уровневый стек вызовов. Устройства PIC17 выпускались в корпусах от 40 до 68 контактов.
Серия PIC17 представила ряд важных новых функций: [9]
- аккумулятор с отображением в памяти
- доступ на чтение к памяти кода (чтение таблицы)
- прямые перемещения между регистрами (предыдущие ядра требовались для перемещения регистров через аккумулятор)
- внешний интерфейс памяти программы для расширения пространства кода
- аппаратный умножитель 8 × 8 бит
- вторая пара косвенных регистров
- Адресация с автоинкрементом/автодекрементом, управляемая битами управления в регистре состояния (ALUSTA)
Существенным ограничением было то, что пространство ОЗУ было ограничено 256 байтами (26 байтов регистров специальных функций и 232 байта ОЗУ общего назначения), с неудобным переключением банков в моделях, которые поддерживали больше.
PIC18
[ редактировать ]В 2000 году Microchip представила архитектуру PIC18. В отличие от серии PIC17, она оказалась очень популярной, и в настоящее время производится большое количество вариантов устройств. В отличие от более ранних устройств, которые чаще всего программировались на языке ассемблера , C. преобладающим языком разработки стал [10]
Серия PIC18 унаследовала большинство функций и инструкций серии PIC17, добавив при этом ряд важных новых функций:
- стек вызовов имеет ширину 21 бит и намного глубже (глубина 31 уровень)
- стек вызовов можно читать и записывать (регистры TOSU:TOSH:TOSL)
- инструкции условного перехода
- режим индексированной адресации (PLUSW)
- регистры FSR расширены до 12 бит, что позволяет им линейно обращаться ко всему адресному пространству данных.
- добавление еще одного регистра FSR (доведение количества до 3)
Пространство ОЗУ составляет 12 бит, адресация которого осуществляется с помощью 4-битного регистра выбора банка (BSR) и 8-битного смещения в каждой инструкции. Дополнительный бит «доступа» в каждой инструкции выбирает между банком 0 ( a =0) и банком, выбранным BSR ( a =1).
Для регистров STATUS, WREG и BSR также доступен одноуровневый стек. Они сохраняются при каждом прерывании и могут быть восстановлены при возврате. Если прерывания отключены, их также можно использовать при вызове/возврате подпрограммы, установив бит s (добавив к инструкции «, FAST»).
Функция автоматического увеличения/уменьшения была улучшена за счет удаления управляющих битов и добавления четырех новых косвенных регистров на каждый FSR. В зависимости от того, к какому косвенному файловому регистру осуществляется доступ, можно выполнять постдекремент, постинкремент или предварительный инкремент FSR; или сформируйте эффективный адрес, добавив W к FSR.
В более продвинутых устройствах PIC18 доступен «расширенный режим», который делает адресацию еще более удобной для скомпилированного кода:
- новый режим адресации со смещением; некоторые адреса, которые раньше относились к банку доступа, теперь интерпретируются относительно регистра FSR2.
- добавление нескольких новых инструкций, в частности, для управления регистрами FSR.
Устройства PIC18 все еще разрабатываются (2021 г.) и оснащены 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 M4K Core . [13] Устройство можно запрограммировать с помощью компилятора C Microchip MPLAB для микроконтроллеров PIC32 , варианта компилятора GCC. Первые 18 моделей, выпускаемых в настоящее время (PIC32MX3xx и PIC32MX4xx), совместимы по выводам и имеют тот же набор периферийных устройств, что и семейство PIC24FxxGA0xx (16-разрядных) устройств, что позволяет использовать общие библиотеки, программные и аппаратные средства. Сегодня доступен полный ассортимент 32-битных микроконтроллеров среднего класса, начиная с 28-контактных в небольших корпусах QFN и заканчивая высокопроизводительными устройствами с Ethernet, CAN и USB OTG.
Архитектура PIC32 привнесла в портфолио Microchip ряд новых функций, в том числе:
- Высочайшая скорость выполнения 80 MIPS (120+ [14] Dhrystone MIPS @ 80 МГц )
- Самая большая флеш-память: 512 КБ.
- Одна инструкция за выполнение такта
- Первый кэшированный процессор
- Позволяет выполнение из оперативной памяти
- Полноскоростной хост/двойная роль и возможности OTG USB
- Полное JTAG и 2-проводное программирование и отладка
- Трассировка в реальном времени
ПИК32МЗ
[ редактировать ]В ноябре 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]
ПИК32ММ
[ редактировать ]В июне 2016 года Microchip представила семейство PIC32MM, специализирующееся на маломощных и недорогих приложениях. [21] PIC32MM оснащен независимыми от ядра периферийными устройствами, режимами ожидания до 500 нА и корпусами размером 4 x 4 мм. [22] В микроконтроллерах PIC32MM используется MIPS Technologies M4K, 32-битный процессор MIPS32 .Они предназначены для очень низкого энергопотребления и ограничены частотой 25 МГц.Их ключевым преимуществом является поддержка 16-битных инструкций MIPS, что делает размер программы намного компактнее (около 40%).
ПИК32МК
[ редактировать ]Компания Microchip представила семейство PIC32MK в 2017 году, специализирующееся на управлении двигателями, промышленном управлении, промышленном Интернете вещей (IIoT) и многоканальных приложениях CAN. [23]
ПИК64
[ редактировать ]В июле 2024 года компания Microchip представила серию высокопроизводительных многоядерных микропроцессоров PIC64 . Первоначально в этой серии будет использоваться набор инструкций RISC-V , однако Microchip также планирует версии с ARM Cortex-A. ядрами [24] . Серия PIC64 будет включать линейку PIC64GX, ориентированную на интеллектуальные периферийные приложения, и линейку PIC64-HPSC, устойчивую к радиации и ориентированную на приложения космических полетов. [25] .
Основная архитектура
[ редактировать ]Архитектура PIC характеризуется множеством атрибутов:
- Разделение пространств кода и данных ( Гарвардская архитектура ).
- За исключением PIC32: отдельные пути данных и инструкций архитектуры MIPS M4K эффективно объединяются в единое общее адресное пространство с помощью модуля System Bus Matrix.
- Небольшое количество инструкций фиксированной длины.
- Большинство инструкций являются однотактными (2 такта или 4 такта в 8-битных моделях) с одним циклом задержки на переходах и пропусках.
- Один аккумулятор (W0), использование которого (как исходного операнда) подразумевается (т.е. не кодируется в опкоде )
- Все ячейки ОЗУ функционируют как регистры как источник и/или назначение математических и других функций. [26]
- Аппаратный стек для хранения адресов возврата
- Небольшой объем адресуемого пространства данных (32, 128 или 256 байт, в зависимости от семейства), расширяемый за счет банковских операций.
- Сопоставленные с пространством данных регистры процессора, порта и периферийных устройств
- Флаги состояния ALU отображаются в пространстве данных.
- Программный счетчик также отображается в пространстве данных и доступен для записи (это используется для реализации косвенных переходов).
Нет никакого различия между пространством памяти и пространством регистров, поскольку ОЗУ выполняет функции как памяти, так и регистров, и ОЗУ обычно называют просто файлом регистров или просто регистрами.
Пространство данных (ОЗУ)
[ редактировать ]PIC имеют набор регистров, которые функционируют как ОЗУ общего назначения. Регистры управления специального назначения для встроенных аппаратных ресурсов также отображаются в пространство данных. Адресуемость памяти варьируется в зависимости от серии устройств, и все типы устройств PIC имеют некоторый банковский механизм для расширения адресации к дополнительной памяти (но в некоторых моделях устройств реализован только один банк). В более поздних сериях устройств есть инструкции перемещения, которые могут охватывать все адресное пространство независимо от выбранного банка. В более ранних устройствах любое перемещение регистра должно было осуществляться через аккумулятор.
Для реализации косвенной адресации используются «регистр выбора файла» (FSR) и «косвенный регистр» (INDF). Номер регистра записывается в FSR, после чего операции чтения или записи в INDF фактически будут осуществляться из регистра или в регистр, на который указывает FSR. Более поздние устройства расширили эту концепцию с помощью пост- и предварительного инкремента/декремента для большей эффективности доступа к последовательно хранящимся данным. Это также позволяет рассматривать FSR почти как указатель стека (SP).
Внешняя память данных не имеет прямой адресации, за исключением некоторых устройств PIC18 с большим количеством контактов. Однако общие порты ввода-вывода могут использоваться для реализации параллельной шины или последовательного интерфейса для доступа к внешней памяти и другим периферийным устройствам (с использованием подпрограмм), с оговоркой, что такой программируемый доступ к памяти (конечно) намного медленнее, чем доступ к Родная память PIC MCU.
Кодовое пространство
[ редактировать ]Пространство кода обычно реализуется как встроенное ПЗУ , СППЗУ или флэш-ПЗУ . В общем случае хранение кода во внешней памяти не предусмотрено из-за отсутствия интерфейса внешней памяти. Исключением являются PIC17 и некоторые устройства PIC18 с большим количеством контактов. [27]
Размер слова
[ редактировать ]Все PIC обрабатывают (и адресуют) данные 8-битными фрагментами. Однако единица адресации кодового пространства обычно не совпадает с единицей адресации пространства данных. Например, PIC в базовом (PIC12) и среднем (PIC16) семействах имеют программную память, адресуемую с тем же размером слова, что и ширина инструкции, т.е. 12 или 14 бит соответственно. Напротив, в серии PIC18 память программ адресуется с шагом 8 бит (байт), что отличается от ширины инструкции в 16 бит.
Для ясности: объем памяти программы обычно указывается в количестве инструкций (однословных), а не в байтах.
Стеки
[ редактировать ]PIC имеют аппаратный стек вызовов , который используется для сохранения адресов возврата. Аппаратный стек недоступен программно на более ранних устройствах, но с появлением устройств серии PIC18 ситуация изменилась.
Аппаратная поддержка стека параметров общего назначения отсутствовала в ранних сериях, но в серии PIC18 она значительно улучшилась, что сделало архитектуру серии PIC18 более дружественной к компиляторам языков высокого уровня.
Набор инструкций
[ редактировать ]Наборы инструкций PIC варьируются от примерно 35 инструкций для PIC младшего класса до более 80 инструкций для PIC высокого класса. Набор команд включает в себя инструкции для выполнения различных операций непосредственно над регистрами, над аккумулятором и константой или над аккумулятором и регистром , а также для условного выполнения и ветвления программы.
Некоторые операции, такие как установка битов и проверка, могут выполняться с любым нумерованным регистром, но арифметические операции с двумя операндами всегда включают W (аккумулятор), записывая результат обратно либо в W, либо в другой регистр операнда. Чтобы загрузить константу, необходимо загрузить ее в W, прежде чем ее можно будет переместить в другой регистр. На старых ядрах все перемещения регистров должны были проходить через W, но на ядрах «высокого класса» ситуация изменилась.
Ядра PIC имеют инструкции пропуска, которые используются для условного выполнения и ветвления. Инструкции пропуска: «пропустить, если бит установлен» и «пропустить, если бит не установлен». Поскольку ядра до PIC18 имели только инструкции безусловного перехода, условные переходы реализуются путем условного пропуска (с противоположным условием), за которым следует безусловный переход. Пропуски также полезны для условного выполнения любой немедленной следующей инструкции. Инструкции по пропуску можно пропустить. Например, последовательность команд «пропустить, если A; пропустить, если B; C» выполнит C, если A истинно или B ложно.
В серии PIC18 реализованы теневые регистры: это регистры, которые сохраняют несколько важных регистров во время прерывания, обеспечивая аппаратную поддержку автоматического сохранения состояния процессора при обслуживании прерываний.
В целом инструкции PIC делятся на пять классов:
- Операция с рабочим регистром (WREG) с 8-битным непосредственным («литеральным») операндом. Например
movlw
(переместить буквально в WREG),andlw
(И буквально с WREG). Одна инструкция, специфичная для PIC:retlw
, немедленно загрузить в WREG и вернуть результат, который используется с вычисляемыми ветвями для создания таблиц поиска . - Работа с WREG и индексированным регистром. Результат может быть записан либо в рабочий регистр (например,
addwf reg,w
). или выбранный регистр (например,addwf reg,f
). - Битовые операции. Они принимают номер регистра и номер бита и выполняют одно из 4 действий: устанавливают или очищают бит, а также тестируют и пропускают установку/очистку. Последние используются для выполнения условных переходов. Обычные флаги состояния ALU доступны в пронумерованном регистре, поэтому возможны такие операции, как «переход при очистке переноса».
- Контрольные трансферы. Помимо упомянутых ранее инструкций пропуска, есть только две:
goto
иcall
. - Несколько различных инструкций с нулевым операндом, таких как возврат из подпрограммы и
sleep
для входа в режим пониженного энергопотребления.
Производительность
[ редактировать ]Архитектурные решения направлены на максимизацию соотношения скорости и стоимости. Архитектура PIC была одной из первых скалярных конструкций ЦП. [ нужна ссылка ] и по-прежнему остается одним из самых простых и дешевых. Гарвардская архитектура, в которой инструкции и данные поступают из отдельных источников, значительно упрощает синхронизацию и проектирование микросхем, что положительно сказывается на тактовой частоте, цене и энергопотреблении.
Набор инструкций PIC подходит для реализации таблиц быстрого поиска в программном пространстве. Такой поиск занимает одну инструкцию и два командных цикла. Многие функции могут быть смоделированы таким образом. Оптимизации способствует относительно большой программный объем PIC (например, 4096 × 14-битных слов на 16F690) и конструкция набора команд, позволяющая встраивать константы. Например, цель инструкции ветвления может быть проиндексирована W и выполнить команду «RETLW», которая делает то, что называется — возврат с литералом в W.
Задержка прерывания постоянна и составляет три командных цикла. Внешние прерывания должны быть синхронизированы с четырехтактным циклом команд, в противном случае может возникнуть дрожание одного цикла команд. Внутренние прерывания уже синхронизированы. Постоянная задержка прерывания позволяет PIC достигать управляемых прерываниями временных последовательностей с низким джиттером. Примером этого является генератор импульсов видеосинхронизации. Это уже не относится к новейшим моделям PIC, поскольку у них задержка синхронного прерывания составляет три или четыре цикла.
Преимущества
[ редактировать ]- Небольшой набор инструкций для изучения
- RISC- архитектура
- Встроенный генератор с возможностью выбора скорости.
- Простой начальный уровень, внутрисхемное программирование и внутрисхемная отладка. Модули PICkit доступны менее чем за 50 долларов США.
- Недорогие микроконтроллеры
- Широкий спектр интерфейсов, включая I²C , SPI , USB , UART , A/D , программируемые компараторы, PWM , LIN , CAN , PSP и Ethernet. [28]
- Наличие процессоров в корпусе DIL упрощает их использование в хобби.
Ограничения
[ редактировать ]- Один аккумулятор
- регистров. переключение банка Для доступа ко всей оперативной памяти многих устройств требуется
- Операции и регистры не ортогональны ; некоторые инструкции могут обращаться к ОЗУ и/или непосредственным константам, тогда как другие могут использовать только аккумулятор.
Следующие ограничения стека были устранены в серии PIC18 , но все еще применимы к более ранним ядрам:
- Стек аппаратных вызовов не адресуется, поэтому упреждающее переключение задач реализовать невозможно.
- Программно реализованные стеки неэффективны, поэтому сложно генерировать реентерабельный код и поддерживать локальные переменные.
При использовании страничной программной памяти следует беспокоиться о двух размерах страниц: один для CALL и GOTO, а другой для вычисляемого GOTO (обычно используется для поиска в таблицах). Например, на PIC16 CALL и GOTO имеют 11 бит адресации, поэтому размер страницы составляет 2048 командных слов. Для вычисляемых GOTO при добавлении к PCL размер страницы составляет 256 командных слов. В обоих случаях старшие биты адреса предоставляются регистром PCLATH. Этот регистр необходимо изменять каждый раз при передаче управления между страницами. PCLATH также должен сохраняться любым обработчиком прерываний. [29]
Разработка компилятора
[ редактировать ]Хотя доступно несколько коммерческих компиляторов, в 2008 году Microchip выпустила собственные компиляторы C, C18 и C30, для линейки процессоров 18F, 24F и 30/33F.
С 2013 года Microchip предлагает серию компиляторов XC для использования с MPLAB X. В конечном итоге Microchip откажется от своих старых компиляторов, таких как C18, и рекомендует использовать компиляторы серии XC для новых разработок. [30]
Набор инструкций 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 для 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 в названии указывает, что деталь будет работать при более низком напряжении, часто с наложенными ограничениями по частоте. [31] Детали, предназначенные специально для работы при низком напряжении в строгом диапазоне 3–3,6 В, отмечены буквой J в номере детали. Эти детали также обладают уникальной устойчивостью к вводу/выводу, поскольку они принимают входное напряжение до 5 В. [31]
Инструменты разработки
[ редактировать ]Microchip предоставляет бесплатный IDE пакет под названием MPLAB X , который включает в себя ассемблер, компоновщик, симулятор программного обеспечения и отладчик. Они также продают компиляторы C для PIC10, PIC12, PIC16, PIC18, PIC24, PIC32 и dsPIC, которые легко интегрируются с MPLAB X. Также доступны бесплатные версии компиляторов C со всеми функциями. Но в бесплатных версиях оптимизация будет отключена через 60 дней. [32]
Несколько сторонних разработчиков разрабатывают C языка компиляторы для PIC, многие из которых интегрируются с MPLAB и/или имеют собственную IDE. Полнофункциональный компилятор языка PICBASIC для программирования микроконтроллеров PIC доступен в компании meLabs, Inc. Компания «Микроэлектроника» предлагает компиляторы PIC для языков программирования C, BASIC и Pascal.
Существует графический язык программирования Flowcode , способный программировать 8- и 16-битные устройства PIC и генерировать PIC-совместимый код C. Он существует в многочисленных версиях: от бесплатной демонстрации до более полной профессиональной версии.
Proteus Design Suite способен моделировать многие популярные 8- и 16-битные устройства PIC, а также другие схемы, подключенные к PIC на схеме. Программа для моделирования может быть разработана в самом Proteus, MPLAB или любом другом инструменте разработки. [33]
Программисты устройств
[ редактировать ]Устройства, называемые « программистами », традиционно используются для переноса программного кода в целевой 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. Например: 16F690-ICD будет функционировать как одна из шести различных частей, каждая из которых не имеет ни одного, некоторых или всех пяти встроенных периферийных устройств. [34]
Внутрисхемные эмуляторы
[ редактировать ]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-подобную операционную систему, включая встроенную среду разработки, в пределах ограничений встроенного оборудования. [35]
Клоны
[ редактировать ]Параллакс
[ редактировать ]Parallax выпустила серию PICmicro-подобных микроконтроллеров, известных как Parallax SX . В настоящее время оно прекращено. Разработанные так, чтобы быть архитектурно похожими на микроконтроллеры PIC, используемые в исходных версиях BASIC Stamp , микроконтроллеры SX заменили PIC в нескольких последующих версиях этого продукта.
SX компании Parallax — это 8-битные RISC-микроконтроллеры, использующие 12-битное командное слово и быстро работающие на частоте 75 МГц (75 MIPS). Они включают в себя до 4096 12-битных слов флэш-памяти и до 262 байт оперативной памяти , восьмибитный счетчик и другую вспомогательную логику. Существуют модули библиотеки программного обеспечения для эмуляции интерфейсов I²C и SPI , UART, генераторов частоты, счетчиков измерений, а также ШИМ- и сигма-дельта аналого-цифровых преобразователей. Другие интерфейсы относительно легко написать, а существующие модули можно модифицировать для получения новых функций.
ПКК Миландр
[ редактировать ]Российский ПКК «Миандр» производит микроконтроллеры с использованием архитектуры PIC17 серии 1886 года. [36] [37] [38] [39] Память программ состоит из Flash-памяти объемом до 64 КБ в 1886ВЕ2У ( 1886ВЕ2У ) или EEPROM объемом 8 КБ в 1886ВЕ5У ( 1886ВЕ5У ). Модели от 1886ВЭ5У ( 1886ВЕ5У ) до 1886ВЭ7У ( 1886ВЕ7У ) рассчитаны на военный температурный диапазон от -60 °C до +125 °C. Аппаратные интерфейсы в различных частях включают USB, CAN, I2C, SPI, а также аналого-цифровые и цифро-аналоговые преобразователи. 1886ВЭ3У ( 1886ВЕ3У ) содержит аппаратный ускоритель криптографических функций по ГОСТ 28147-89 . Существуют даже радиационно-стойкие микросхемы с обозначениями 1886ВЭ8У ( 1886ВЕ8У ) и 1886ВЭ10У ( 1886ВЕ10У ). [40]
ЭЛАН Микроэлектроника
[ редактировать ]Тайваньская корпорация ELAN Microelectronics производит линейку микроконтроллеров на основе архитектуры PIC16 с 13-битными инструкциями и меньшим (6-битным) адресным пространством ОЗУ. [41]
Холтек Полупроводник
[ редактировать ]Holtek Semiconductor производит большое количество очень дешевых микроконтроллеров [42] (всего 8,5 центов в количестве [43] ) с 14-битным набором команд, поразительно похожим на PIC16.
Другие производители в Азии
[ редактировать ]Многие сверхдешевые микроконтроллеры OTP от азиатских производителей, встречающиеся в недорогой бытовой электронике, основаны на архитектуре PIC или в ее модифицированной форме. Большинство клонов нацелены только на базовые части (PIC16C5x/PIC12C50x). Microchip пыталась подать в суд на некоторых производителей, когда копирование было особенно вопиющим. [44] [45] без успеха. [46] [47] [ нужен лучший источник ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 23 марта 2012 г. Проверено 29 июня 2011 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «Семейное древо PICmicro», презентация семинара PIC16F «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 2 марта 2012 г. Проверено 2 августа 2011 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Перейти обратно: а б «MOS DATA 1976», Справочник General Instrument, 1976 г.
- ^ Перейти обратно: а б «Каталог данных 1977 года», микроэлектроника от General Instrument Corporation «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 15 августа 2011 г. Проверено 2 августа 2011 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Перейти обратно: а б Лоусон, Эрик (16 мая 2013 г.). «Microchip Technology поставила 12-миллиардный микроконтроллер PIC® ведущему производителю двигателей, корпорации Nidec» . Пресс-релиз компании Microchip. Архивировано из оригинала 21 июля 2013 года . Проверено 21 декабря 2017 г.
Microchip поставила этот 12-миллиардный микроконтроллер примерно через 10 месяцев после поставки 11-миллиардного.
- ^ Справочник по интегральным схемам спутникового и кабельного телевидения Плесси, май 1986 г.
- ^ Данн, Д. (31 августа 2001 г.). «Микрочип предлагает флэш-память по ценам OTP» . ЭТаймс .
- ^ «Зал славы чипов: Микроконтроллер PIC 16C84» . IEEE-спектр . 30 июня 2017 года . Проверено 16 сентября 2018 г.
- ^ «Технические данные микроконтроллера PIC17C4x» (PDF) . Микрочиповая технология. 1996. DS30412C . Проверено 16 августа 2016 г.
- ^ «Микрочипы PIC и C — исходный код и пример кода» . www.microchipc.com . Проверено 7 апреля 2018 г.
- ^ «MICROCHIP TECHNOLOGY ПРЕДСТАВЛЯЕТ САМЫЕ ПРОИЗВОДИТЕЛЬНЫЕ В МИРЕ 16-БИТНЫЕ МИКРОКОНТРОЛЛЕРЫ» . Микрочип. 01.10.2001. Архивировано из оригинала 11 июня 2004 г. Проверено 14 декабря 2022 г.
- ^ «Обзор семейства PIC24H» (PDF) . Проверено 23 сентября 2007 г.
- ^ «MIPS32® M4K® Core — технологии MIPS — MIPS Everywhere — технологии MIPS» . Архивировано из оригинала 2 февраля 2009 г. Проверено 21 января 2009 г.
- ^ «32-битные микроконтроллеры PIC» . Проверено 13 октября 2010 г.
- ^ «32-битные микроконтроллеры — технология микрочипов» . www.microchip.com . Проверено 7 апреля 2018 г.
- ^ «32-разрядные микроконтроллеры Microchip PIC32MZ обладают лучшей в своем классе производительностью: 330 DMIPS и 3,28 CoreMarks™/МГц; плотность кода выше на 30 %» . Микрочип. 18 ноября 2013 г. Архивировано из оригинала 21 ноября 2013 г. Проверено 14 декабря 2022 г.
- ^ «Добро пожаловать в блог Imagination» . imgtec.com . Проверено 7 апреля 2018 г.
- ^ «PIC32MZ EF | Технология микрочипов» .
- ^ «Microchip представляет первый в отрасли микроконтроллер со встроенным 2D-графическим процессором и встроенной памятью DDR2 для революционных графических возможностей» . Архивировано из оригинала 20 июля 2017 г. Проверено 9 августа 2023 г.
- ^ «Семейство PIC32MZ DA» . Микрочип. Архивировано из оригинала 02 апреля 2018 г. Проверено 14 декабря 2022 г.
- ^ «Microchip представляет семейство PIC32 с самым низким энергопотреблением и экономичностью — технология Microchip» . www.microchip.com . Проверено 7 апреля 2018 г.
- ^ «Семейство недорогих 32-разрядных микроконтроллеров с чрезвычайно низким энергопотреблением (XLP) PIC32MM» . Проверено 9 августа 2023 г.
- ^ «Семейство PIC32MK» . Микрочип. Архивировано из оригинала 16 марта 2018 г. Проверено 14 декабря 2022 г.
- ^ Аниша. «Microchip запускает семейство 64-битных PIC64 с RISC-V – RISC-V International» . Проверено 24 июля 2024 г.
- ^ «Microchip представляет линейку 64-битных многоядерных процессоров PIC64» . Хакстер.io . Проверено 24 июля 2024 г.
- ^ «Технические данные PIC16F84A» (PDF) .
- ^ Ровнак, Тим (2003). «AN869: Методы взаимодействия с внешней памятью для PIC18F8XXX» (PDF) . Микрочиповая технология. DS00869B . Проверено 24 августа 2009 г.
- ^ «Усовершенствованный выбор деталей микрочипа» . Микрочип. Архивировано из оригинала 10 января 2016 г. Проверено 14 декабря 2022 г.
- ^ «Замедление 208.80.153.50,10-192-48-43&c=1&t=43197.5553483796» . Massmind.org . Проверено 7 апреля 2018 г.
- ^ «MPLAB® XC: Решения для компиляторов» . microchip.com . Проверено 7 апреля 2018 г.
- ^ Перейти обратно: а б «Дизайн-центр 3В» . Проверено 2 августа 2011 г.
- ^ «Компилятор MPLAB XC8 для микроконтроллеров PIC10/12/16/18» .
- ^ «Как смоделировать микроконтроллер PIC в Proteus Design Suite 8 — Галерея схем» . 02 августа 2013 г. Проверено 12 июля 2016 г.
- ^ Документ о микрочипе № DS51292R.
- ^ «старт — RetroBSD» . Retrobsd.org . Проверено 7 апреля 2018 г.
- ^ «Миландр К1886ВЕ: КВС, уехавший в Россию» . Хижина процессора. 10 марта 2016 г. Проверено 21 июля 2016 г.
- ^ "Высокопроизводительные 8-ми разрядные КМОП микроконтроллеры 1886ВЕ1 и 1886ВЕ2. Перечень отличий от ближайшего функционального аналога PIC17C756A" [High-performance 8-bit CMOS microcontrollers 1886VE1 and 1886VE2. List of differences from the nearest functional analog PIC17C756A.] (PDF) (in Russian). Moscow: PKK Milandr. 7 September 2006. Archived from the original (PDF) on 5 February 2017 . Retrieved 23 October 2017 .
- ^ "Каталог продукции группы компаний "Миландр" 2017" [Product catalog of the Milandr Group 2017] (PDF) (in Russian). Moscow: PKK Milandr. Archived from the original (PDF) on 27 October 2017 . Retrieved 18 April 2018 .
- ^ «1886я серия» [серия 1886] (на русском языке) . Проверено 21 июля 2016 г.
- ^ «Часть II: Как «открыть» микросхему и что внутри? Z80, Мультиклет, MSP430, PIC и многое другое» . ЗептоБарс. 21 февраля 2013 года . Проверено 11 апреля 2017 г.
- ^ «Elan Electronics Co., Ltd. Elan Electronics снова создает будущее! »
- ^ Карлсон, Джей (15 сентября 2017 г.). «Холтек ХТ-66» . Удивительный микроконтроллер за 1 доллар . Проверено 8 июля 2019 г.
- ^ Офранк, Жан-Люк (3 августа 2016 г.). «Какой микроконтроллер самый дешевый? Моя попытка: 8-битный микроконтроллер Holtek HT48R002 продается за 0,085 доллара» . Блог CNX Software . Проверено 8 июля 2019 г.
- ^ «Microchip Technology подает иск о нарушении авторских прав против MICON Design Technology CO. LTD» (PDF) (пресс-релиз). 29 января 1999 года . Проверено 23 октября 2017 г.
- ^ «Microchip Technology подает в суд на Shanghai Haier Integrated Circuit» (PDF) (пресс-релиз). 5 июля 2007 года . Проверено 23 октября 2017 г.
- ^ Фуллер, Брайан (1 мая 2013 г.). «Борьба с китайской контрафактной продукцией? Забудьте об этом» . Новости электронного бизнеса .
- ^ «Интегрированный чип Haier выиграет патентную битву против американских микрочипов» . Электронные компоненты sb2a0 (блог). 18 мая 2015 года . Проверено 8 июля 2019 г.
Дальнейшее чтение
[ редактировать ]- Теория и приложения микроконтроллеров с PIC18F ; 2-е изд.; М. Рафикуззаман; Уайли; 544 страницы; 2018 год; ISBN 978-1119448419 .
- Проектирование микроконтроллерной системы с использованием процессоров PIC18F ; Николас К. Хаддад; ИГИ Глобал; 428 страниц; 2017 год; ISBN 978-1683180005 .
- Проекты микроконтроллеров PIC на языке C: от базового до продвинутого (для PIC18F) ; 2-е изд.; Доган Ибрагим; Ньюнес; 660 страниц; 2014 г.; ISBN 978-0080999241 . (1-е изд.)
- Программирование микроконтроллера: микрочип PIC ; Санчес и Кантон; ЦРК Пресс; 824 страницы; 2006 г.; ISBN 978-0849371899 . (1-е изд.)
- Книга проектов микроконтроллера PIC ; Джон Айовин; ТАБ; 272 страницы; 2000 г.; ISBN 978-0071354790 . (1-е изд.)