Когда дело доходит до выбора микроконтроллера, это действительно во многих случаях сложная задача, поскольку на современном рынке доступны различные микроконтроллеры с примерно одинаковыми характеристиками. Таким образом, каждый параметр становится важным, когда дело доходит до выбора микроконтроллера. Здесь мы сравниваем два наиболее часто используемых микроконтроллера — микроконтроллер PIC и микроконтроллер AVR. В этой статье мы сравним их по различным факторам, что должно помочь вам выборе одного из этих двух микроконтроллеров для вашего проекта.
Начните с требований к проекту
Прежде чем приступить к выбору микроконтроллера, соберите всю информацию о вашем проекте, который нужно запустить. Очень важно собрать как можно больше информации, поскольку это сыграет важную роль при выборе правильного микроконтроллера. В данном случае необходимо учесть следующие факторы:
- Размер проекта.
- Количество используемых периферийных устройств и датчиков.
- Требования к питанию.
- Бюджет проекта.
- Требования к интерфейсам (например, USB, SPI, I2C, UART и т. д.),
- Создайте базовую блок-схему оборудования.
- Определите сколько контактов ввода/вывода (GPIO) необходимо.
- Количество необходимых аналого-цифровых входов (АЦП).
- Параметры ШИМ (и нужна ли она в вашем проекте).
- Выберите нужную архитектуру, например (8-битную, 16-битную, 32-битную).
- Определите требования к памяти проекта (ОЗУ, флэш-память и т. д.).
Посмотрите на рекомендуемые параметры
Когда вся информация собрана, самое время выбрать микроконтроллер. В этой статье две конкурирующие марки микроконтроллеров PIC и AVR будут сравниваться по множеству параметров. В зависимости от необходимости проекта для сравнения этих двух параметров обратите внимание на следующие параметры, такие как:
- Частота: скорость, с которой будет работать микроконтроллер.
- Количество контактов ввода-вывода: необходимые порты и контакты.
- ОЗУ: все объявленные переменные и массивы (ДАННЫЕ) в большинстве микроконтроллеров.
- Флэш-память: любой написанный вами код попадает сюда после компиляции.
- Расширенные интерфейсы: расширенные интерфейсы, такие как USB, CAN и Ethernet.
- Рабочее напряжение: рабочее напряжение MCU, например 5 В, 3,3 В или более низкое напряжение.
- Целевые разъемы: разъемы для упрощения проектирования и размера схемы.
Большинство параметров схожи как в PIC, так и в AVR, но есть некоторые параметры, которые, несомненно, различаются при сравнении данных микроконтроллеров. Далее рассмотрим эти параметры более подробно.
Рабочее напряжение
Благодаря большему количеству продуктов с батарейным питанием PIC и AVR удалось улучшить работу при низком напряжении. AVR более известны своей работой при низком напряжении, чем более старые серии PIC, такие как PIC16F и PIC18F, поскольку в этих сериях PIC используется метод стирания чипа, для работы которого требуется напряжение не менее 4,5 В, а программаторы PIC ниже 4,5 В должны использовать алгоритм стирания строк, который не может стереть заблокированное устройство. Однако в AVR это не так.
AVR улучшила и выпустила новейшие варианты P (пико-мощности), такие как ATmega328P, которые имеют чрезвычайно малое энергопотребление. Кроме того, текущий ATtiny1634 улучшен и имеет спящие режимы для снижения энергопотребления при отключении питания, что очень полезно для устройств с батарейным питанием.
Вывод состоит в том, что раньше AVR были ориентированы на работу с низким напряжением и в этом плане они превосходили PIC, но в последнее время PIC был преобразован для работы с низким напряжением и выпустил некоторые продукты на основе picPower.
Целевые разъемы
Целевые разъемы очень важны при проектировании и разработке. В AVR предусмотрены 6- и 10-канальные интерфейсы ISP, что упрощает их использование, тогда как у PIC их нет, поэтому программаторы PIC поставляются со свободными выводами или разъемами RJ11, которые трудно вписать в схему.
Вывод заключается в том, что AVR упростил проектирование и разработку схем с целевыми разъемами, тогда как PIC все еще необходимо это исправить.
Расширенные интерфейсы
Что касается расширенных интерфейсов, то PIC, безусловно, является лучшим вариантом, поскольку он обладает расширенными функциями, такими как USB, CAN и Ethernet, чего нет в AVR. Однако можно использовать внешние чипы, такие как чипы FTDI USB для последовательного интерфейса, контроллеры Microchip Ethernet или чипы CAN Philips.
Вывод: у PIC наверняка есть более продвинутые интерфейсы, чем у AVR.
Среда разработки
Помимо этого, есть важные особенности, которые отличают оба микроконтроллера друг от друга. Простота среды разработки также очень важна. Ниже приведены некоторые важные параметры, которые объясняют простоту среды разработки:
- IDE для разработки;
- Компиляторы C;
- Сборщики.
IDE для разработки
И PIC, и AVR поставляются со своими собственными IDE для разработки. Разработка PIC осуществляется на MPLAB X, которая, как известно, является стабильной и простой IDE по сравнению с Atmel Studio 7 от AVR, которая имеет большой размер 750 МБ и немного неуклюжа с большим количеством дополнительных функций, что усложняет и усложняет работу начинающим любителям электроники.
Микроконтроллеры PIC можно запрограммировать с помощью инструментов от компании MicroChip как PicKit3 и MPLAB X. Микроконтроллеры AVR программируются с помощью таких инструментов как JTAGICE и Atmel Studio 7. Однако пользователи часто переходят на более старые версии AVR Studio, такие как 4.18 с пакетом обновления 3, поскольку они работают намного быстрее и имеют базовые функции для разработки.
Вывод таков: PIC MPLAB X немного быстрее и удобней для пользователя чем AtmelStudio7.
Компиляторы C
И PIC, и AVR поставляются с компиляторами C XC8 и WINAVR соответственно. PIC выкупила компанию Hi-tech и выпустила собственный компилятор XC8. Он полностью интегрирован в MPLAB X и работает хорошо. Но WINAVR — это ANSI C, основанный на компиляторе GCC, который позволяет легко переносить код и использовать стандартные библиотеки. Бесплатная ограниченная версия IAR C Compiler размером 4 КБ дает представление о профессиональных компиляторах, которые стоят дорого. Поскольку AVR изначально разработан для C, вывод кода небольшой и быстрый.
PIC имеет множество функций, которые делают его лучше AVR, но его код становится больше из-за структуры PIC. Платная версия доступна с большей оптимизацией, однако бесплатная версия оптимизирована недостаточно хорошо.
Вывод такой: WINAVR лучше и быстрее с точки зрения компиляторов, чем PIC XC8.
Сборщики
Благодаря трем 16-битным указательным регистрам, которые упрощают адресацию и операции со словами, язык ассемблера AVR очень прост, содержит множество инструкций и возможность использовать все 32 регистра в качестве аккумулятора. В то время как ассемблер PIC не так уж хорош, поскольку все вынуждено работать через аккумулятор, вынуждает все время использовать переключение банков для доступа ко всем регистрам специальных функций. Хотя MPLAB включает макросы для упрощения переключения банков, это утомительно и отнимает много времени.
Также отсутствие инструкций перехода, просто пропустить и GOTO, что приводит к запутанным структурам и немного запутанному коду. В серии PIC есть некоторые серии микроконтроллеров, которые работают намного быстрее, но опять же ограничены одним аккумулятором.
Вывод таков: хотя некоторые микроконтроллеры PIC и быстрее, но с AVR лучше работать в рамках ассемблеров.
Цена и наличие
Если говорить о цене, то PIC и AVR во многом схожи. Оба доступны в основном по одинаковой цене. Что касается доступности, то PIC удалось доставить продукцию в оговоренные сроки по сравнению с AVR, поскольку Microchip всегда придерживалась политики коротких сроков поставки. У Atmel были трудные времена, поскольку их широкий ассортимент продукции означает, что AVR составляют лишь небольшую часть их бизнеса, поэтому другие рынки могут иметь приоритет над AVR в плане производственных мощностей. Поэтому целесообразно использовать PIC с точки зрения графиков поставок, тогда как AVR может иметь решающее значение для производства. Хотя несколько лет назад фирма Microchip купила фирму Atmel и поэтому сейчас, наверно, по данным факторам различия в микроконтроллерах PIC и AVR уже несущественны.
Другие особенности
И PIC, и AVR доступны в различных упаковках. PIC выпускает больше версий, чем AVR. Развертывание этой версии может иметь свои плюсы и минусы в зависимости от приложений, например, большее количество версий создает путаницу при выборе подходящей модели, но в то же время обеспечивает большую гибкость. Последняя версия PIC и AVR очень маломощна и работает в различных диапазонах напряжений. Часы и таймеры PIC более точны, но с точки зрения скорости PIC и AVR практически одинаковы .
В Atmel Studio 7 добавлены производственные файлы ELF, которые включают данные EEPROM, Flash и Fuse в одном файле. В то время как AVR интегрировал данные Fuse в свой шестнадцатеричный формат файла, поэтому Fuse можно установить в коде. Это облегчает для PIC передачу проекта в производство.
Заключение
PIC и AVR — отличные недорогие микроконтроллеры, которые не только используются в промышленности, но и являются популярным выбором среди студентов и любителей. Оба широко используются и имеют хорошие сети (форумы, примеры кода) с активным присутствием в Интернете. Оба имеют широкий охват и поддержку сообщества, оба доступны в большом количестве размеров и форм-факторов с независимыми от ядра периферийными устройствами. Microchip взяла на себя управление Atmel и теперь заботится как об AVR, так и о PIC. В конце концов, хорошо понятно, что изучение микроконтроллера похоже на изучение языков программирования: изучение другого будет намного проще, если вы изучите один.
Независимо от того, кто победит, почти во всех отраслях техники не существует такого слова, как «лучший», тогда как «наиболее подходящий для применения» более подходящее словосочетание. Все зависит от требований конкретного продукта, метода разработки и процесса производства. Таким образом, в зависимости от проекта можно выбрать наиболее подходящий микроконтроллер из PIC и AVR.