Как выбрать платформу MCU? [закрыто]

43

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

У меня вопрос: если бы сегодня кто-то начал использовать MCU для задач общего назначения, как бы вы выбрали его? Каковы уникальные точки продажи различных платформ?

ARF
источник
2
Дайте нам знать, какие проекты и объемы вы имеете в виду, и это поможет нам ответить на вопрос.
Ракетный
3
Общего назначения слишком много . Не имеет смысла использовать один и тот же ОК для мигания светодиодного индикатора велосипеда и для ОСРВ с сенсорным цветным ЖК-дисплеем с высоким разрешением.
Wouter van Ooijen
1
Да, в идеале у вас должно быть несколько знакомых вам фишек для задач разного размера - и будьте готовы взять новый, если он однозначно подходит для задачи.
Крис Страттон
2
@WoutervanOoijen Идея этого вопроса заключалась в следующем: существует много задач, которые любая из платформ может легко выполнить (например, задачи общего назначения). Тогда можно совершенно свободно выбирать между платформами. В этом случае «мягкие факторы», например, простота использования, количество внешних компонентов и т. Д., Становятся доминирующими. - Я хотел выяснить, что разные платформы делают хорошо / плохо по сравнению с другими.
АРФФ
7
РЕЛИГИЯ
vicatcu

Ответы:

30

Прошел год, я выступил с докладом на тему комплектации микроконтроллеров (это заняло около 1,5 часов). Аудитория была программистами и производителями программного обеспечения высокого уровня. У большинства зрителей не было опыта работы с µC, остальные играли только с Arduino. Количество посетителей в аудитории было около 30. Итак, это была многоадресная рассылка, в отличие от клиники один на один.

Ключевым слайдом в разговоре было:

Размеры

для сравнения микроконтроллеров. Список в порядке убывания.

  • Среда разработки (цепочка инструментов)
    • Среда разработки
    • Я упоминал среду разработки?
  • Поддержка
    • Замечания по применению
    • Поддержка сверстников: знания племен, друзья, форумы, коды [sic]
  • особенности
    • объем памяти
    • Периферия
    • Мастерство вычислений
  • Потребляемая мощность
  • Стоимость

п.с.

Я должен определить область, которой ограничен мой ответ. Я вижу этот вопрос выбора платформы через два вида линз. Первый - это прототип. Второй - разработчик профессионального оборудования с уличными ценами порядка $ 3 тыс. И сотнями в год. Хобби-объектив тоже не за горами. В этих случаях дополнительные затраты на микроконтроллер невелики по сравнению со стоимостью разработки или стоимостью профессионального оборудования, в которое входит микроконтроллер.

Есть, конечно, совсем другая перспектива массового производства. Когда кто-то выбирает микроконтроллер для дешевого устройства, которое будет производиться в больших количествах (хороший пример - игрушки), это будет зависеть от стоимости оборудования. Небольшая экономия на стоимости оборудования, помноженная на большой объем производства (в сотни тысяч и более), может оправдать боль от использования громоздкой среды разработки и недорогого микроконтроллера с поддержкой mediochre.

Ник Алексеев
источник
Вы сосредоточены на среде разработки. Имеет смысл для меня. Каковы были ваши выводы?
АРФД
@ArikRaffaelFunke Ну, те пули в моем посте выше, выводы. Не достаточно убедительно? Моя цель для выступления состояла в том, чтобы: (1) предоставить минимальный список вопросов, которые необходимо задать в процессе отбора. (2) Покажите, где и как искать ответы. Я специально избегал делать жесткие выводы в том же духе: семья X хороша, если ..., семья Y хороша, если ...
Ник Алексеев
1
Для небольших объемов и типичных требований, да. Но иногда приходится выбирать лучшие технологии. Или, если объем огромен, довольно значительная головная боль в разработке может быть оправдана, если он экономит несколько центов на виджет - включая тестирование решений на основе конкурирующих частей и готовность к переходу.
Крис Страттон
1
@ChrisStratton Энергопотребление - это еще одна вещь [в дополнение к эффектам большого объема производства], которая иногда может оправдать некоторую головную боль. Мало что может сделать, если он хочет работать на очень малой мощности, а ОК (который он выбрал) не может его поддержать.
Ник Алексеев
9
Направленность на среду разработки абсолютно правильная. У вас мог бы быть лучший чип в мире, но если вы не можете программировать и отлаживать эту чертову штуку, это может быть кирпичом. Я слышал хорошие новости о NXP, но не получил прямого опыта. Я думал, что Freescale были бедны, но потом я попробовал TI (MSP, а затем DM36x), и теперь Freescale - сияющий маяк блеска в моих глазах. Лучший совет для ЛЮБОЙ среды разработки: соберите / установите ее на виртуальной машине и сохраните ее резервную копию в полностью рабочем состоянии, чтобы она не сломалась при перемещении компьютеров / обновлении ОС и т. Д.
Джон У
25

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

Пожалуйста, дайте мне знать, если есть какие-либо ошибки или есть информация, которую я могу добавить.


Сравнение платформ

Примечания относительно сравнения:

  • IDE: комментарии относятся к бесплатной версии

PIC:

  • безусловно, самые дешевые чипы начального уровня
  • у многих есть внутренние регуляторы напряжения
  • по заданной цене, как правило, имеют больше и лучше периферийных устройств
  • квази отраслевой стандарт: очень хорошие библиотеки и поддержка разработчиков
  • IDE: выдающиеся, основанные на NetBeans чернила, включая полное автономное моделирование и отладку
  • сторонние отладчики: около 25 долларов
  • очень широкий ассортимент пакетов
  • уникальные преимущества: 1. XLP = устройства со сверхнизким энергопотреблением; 2. Многие современные чипы имеют емкостный сенсорный модуль для сенсорных кнопок и т. Д.

AVR:

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

Arm Cortex-M:

  • современная процессорная архитектура: нет памяти, хорошая многозадачность
  • безусловно, самые дешевые 32-битные устройства
  • довольно легко перемещаться между разными чипами и разными производителями
  • устройства обычно требуют больше внешних компонентов, чем PIC
  • очень дешевые USB-устройства с загрузчиком ПЗУ: NXP LPC1342 / LPC1343
  • разумная поддержка библиотеки
  • IDE: разумно, нет автономной симуляции
  • Интерфейс SWD позволяет выполнять внутрисистемное программирование, отладку и трассировку с помощью простого в сборке оборудования (
  • недорогие чипы NXP поставляются только в упаковках с небольшим шагом или без булавки
  • пункты продажи: 1. самая дешевая 32-битная платформа; 2. дешевая платформа с загрузчиком USB ROM

PSoc: (из ответа Ракетного магнита )

  • Король, когда дело доходит до аналоговых периферийных устройств: данный чип может быть переконфигурирован внутри, чтобы обеспечить различные аналоговые и цифровые периферийные устройства
  • значительно дороже, чем PIC
  • IDE: отлично
  • Программист за 88 $ (это позволяет отладку?)
  • только SMD пакеты

Пропеллер: (из ответа Ракетного магнита)

  • многоядерный MCU: разные ядра могут симулировать работу над разными задачами
  • устраняет / уменьшает (?) потребность в традиционных прерываниях
  • несколько аппаратных периферийных устройств, которые должны быть явно закодированы для работы на одном из ядер, обеспечивает невероятную гибкость
  • слабый, когда дело доходит до аналоговой периферии
  • IDE: отлично
  • Пакет DIP доступен

Сравнение по Приложению

USB:

«Легенда» для списка ниже:

  • загрузчик = предварительно запрограммированный загрузчик USB
  • регулятор напряжения = может питаться от шины без внешнего регулятора
  • подтягивания = нет необходимости для внешнего подтягивания
  • согласование импеданса = нет необходимости во внешних согласующих резисторах
  • прецизионный генератор = нет необходимости во внешнем кристалле

Свойства наименее дорогого устройства: (в приблизительном порядке цены)

  • PIC: 8-битная, с низкой и полной скоростью, регулятор напряжения, подтягивания, согласование импеданса, защита от электростатического разряда
  • NXP: 32 бита, загрузчик, только на полной скорости, защита от электростатического разряда
  • Freescale: 8 бит, только на низкой скорости, регулятор напряжения, согласование импеданса, защита от электростатического разряда
  • Atmel: 8 бит, загрузчик, только на полной скорости, регулятор напряжения, подтягивание, защита от электростатического разряда
  • STM: 32 бита, загрузчик, только на полной скорости, подтягивание, согласование импеданса, защита от электростатического разряда
  • Кремниевые лаборатории: 8-разрядный, низко- и полноскоростной, регулятор напряжения, подтяжки, согласование импедансов, прецизионный генератор
  • TI: 32 бита, загрузчик, малой и полной скорости, другие свойства неизвестны
  • PSoc: настраивается как модуль, другие свойства неизвестны
  • Пропеллер: 32-битный, только битбэнг

Ethernet:

  • PIC: самое дешевое устройство со встроенной PHY
ARF
источник
1
Несколько замечаний: Propeller вообще не имеет прерываний и не поддерживает отладку в официальной IDE. Вместо этого предпочтительным механизмом отладки, по-видимому, является подключение устройства к телевизору и использование предоставленной библиотеки, которая отображает переменные на экране. Также нет завершения кода, нет симулятора, нет интеграции с системами управления кодом, необычная реализация включает в себя ... Также, насколько я знаю, нет аппаратной периферии, кроме двух счетчиков на ядро.
AndrejaKo
2
Обратите внимание на винт - он не имеет прерываний. На все . Если вам нужно что-то похожее на традиционное прерывание, вы раскручиваете дополнительное ядро ​​ЦП и запускаете его.
Коннор Вольф
4
Такой список почти неизбежно бессмыслен и устарел. Все производители постоянно конкурируют друг с другом, и большинство из них пытаются предложить что-то в каждой категории - вы проводите опрос, когда у вас есть необходимость, выбираете решение, и, если оно работает, вы работаете с ним, пока не возникнет необходимость для которого есть лучшее решение.
Крис Страттон
2
Для чего бы это ни стоило, вы можете включить сюда линию MSP430, а также ее сверхнизкое энергопотребление
Boardbite
2
«Встраиваемые системы / Особые микропроцессоры» содержат аналогичную информацию о том, как выбрать процессор, и аналогичным образом можно отредактировать, чтобы (надеюсь) сохранить его в актуальном состоянии и относительно нейтральным.
Дэвидкари
7

Ваш выбор MCU во многом зависит от того, над какими проектами вы собираетесь работать. Вы делаете громоздкие, супер-дешевые и простые устройства, такие как мигающие велосипедные фонари? Вы разрабатываете сложные прототипы роботов, которые имеют дело с многочисленными причудливыми устройствами ввода-вывода и датчиками?

Я в основном работаю над последним. Главная проблема для меня - это попытка найти микроконтроллеры, которые имеют периферийный набор, который я хочу. Это очень сложно, так как наши требования не являются общепринятыми. Нам нужны такие вещи, как 5 каналов ШИМ, 5 квадратурных декодеров, 2 нестандартных порта SPI и UART с отрицательным IO.

Единственные MCU, которые я видел, которые могут легко справиться с такими требованиями, - это PSoC и Propeller.

Чипы пропеллера

Propeller - это восемь 32-битных микроконтроллеров в одном чипе. Если вам нужен какой-то тип периферийного устройства, вы просто программируете один из MCU для выполнения этой работы. Таким образом, вы можете иметь все, что хотите.

PSoC

PSoC выпускаются в двух вариантах: 3 и 5. 3 - это ядро ​​8051, а 5 - ARM Cortex M3. Также в микросхему включены реконфигурируемые цифровые и аналоговые блоки, которые могут быть преобразованы в широкий спектр периферийных устройств: АЦП, фильтры, операционные усилители, ЦАП, SPI, UART, квадратурный декодер, генератор CRC и т. Д.

Среда разработки фантастическая. У вас есть обычное редактирование исходного кода типичной IDE, но у вас также есть редактор схем. Вы можете буквально подключить любую цифровую схему, какую захотите, подключив периферийные устройства с помощью шлюзов, триггеров и т. Д. Нужно 5 ШИМ? Легко, просто поместите их в схему, подключите их, и все готово. Вы даже можете написать свои собственные периферийные устройства в Verilog, если вы хотите что-то, что не предоставляется. Большая часть вашего приложения может быть просто реализована на таком оборудовании.

Реальное преимущество заключается в том, что вы можете придерживаться одной микросхемы, зная, что она может реализовать множество проектов, которые вы захотите реализовать в будущем. Что меня раздражало в PIC, так это то, что я постоянно искал десятки устройств в поисках того, у которого был именно тот набор периферийных устройств, который мне был нужен. Теперь у меня нет этой проблемы.

Rocketmagnet
источник
Пропеллер - любопытная концепция. Я должен немного подумать об этом. Что касается PSoC: я рассматривал их в прошлом из-за невероятной гибкости, но из-за необходимости программиста за 250 долларов это стало для меня не слишком хорошим началом.
АРФД
@ArikRaffaelFunke - Программист стоит всего 88 долларов , это меньше половины цены ICD3 .
Ракетный
@ArikRaffaelFunke - еще одно соображение - упаковка. Если вы планируете создавать свои собственные прототипы, тогда гораздо проще работать с DIP-пакетами. Большинство PIC и ATmel AVR поставляются в DIP, как и Propeller. PSoC 3 и 5 нет.
tcrosley
3
У schmartboard есть простое в использовании решение
smt
1
@ Quant231: Я думал об этом, но: 1) ПЛИС, как правило, больше и дороже, чем микроконтроллеры (а роботы часто отчаянно не хватает места). И 2) У меня нет большого опыта работы с ПЛИС, и всегда сложно освоить совершенно другой набор инструментов и образ мышления только для небольшого приложения.
Ракетный магнит
3

Для меня самым важным требованием было, если устройство / IDE хорошо поддерживаются на моем компьютере, отличном от Windows (Linux). Оказалось, что для меня AVR Atmel имеет лучшую (с открытым исходным кодом) поддержку, чем PIC.

jippie
источник
3

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

У большинства из них есть хорошие инструменты для разработки, у arduino есть визуальная студия, у pic есть отличный инструмент, как и у других. Итак, для меня, насколько быстро и легко я могу выполнить свою работу хорошо, + сколько людей с открытым исходным кодом работают над одним и тем же?

Visual Micro
источник
Но как найти такую ​​информацию, не вводя в заблуждение маркетинговым беспорядком. Я имею в виду, что мы должны найти людей, которые использовали оборудование и набор инструментов для получения всей этой информации. Как вы находите такие сообщества в своей работе? Или вы полагаетесь на то, что вам говорит разработчик приложений?
квант231
Вы можете задавать вопросы на различных форумах, таких как этот. Объясните свое заявление и попросите о помощи
Visual Micro
2

Микроконтроллеры - это быстро меняющийся мир, есть много преимуществ в изучении текущих микросхем «в», и наиболее известной IDE является помощь сообщества. Как человек из PIC, я бы сказал, что Aduino, вероятно, имеет лучшие IDE и платы для разработки для новичков на данный момент, и вы можете многое добавить к базовой плате aduino, не касаясь паяльника.

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

Как кто-то упомянул, что вы выбрали чип для своего проекта, я видел несколько проектов, в которых чипы ARM использовались в качестве простых датчиков температуры или преобразователей AD, точно так же, как я видел, как aduinos и PIC 16 доводят до предела свои возможности для создания игры космических захватчиков, FPGA. Являются ли они слишком хорошими, и это хорошо, чтобы понять HDL, если вы серьезно занимаетесь разработкой электроники ... но, к сожалению, в реальном мире не так много проектов, где вам нужно будет использовать одно, большинство из которых - это малый объем, быстрый дизайн и ограниченные цены и это где 8 битный UC царит

Боз
источник
Я вижу, каковы ограничения Arduino в том, что человек заставит человека выйти за их пределы? Обладает ли ARM большей вычислительной мощностью, чем PIC и Arduino, периферийными устройствами, которых нет в PIC и Arduino, или его набор инструментов превосходит то, что существует для PIC и Arduino? Почему так много шума в чипах на базе ARM. Я знаю, что у них очень низкое энергопотребление, но зачем еще ARM выбирать для «серьезных» проектов?
Quant231
1

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

Обнаженные минимальные требования
Если MCU не выполняет все эти требования, его не следует использовать.

  • Находится в производстве не менее 1 года.
  • Имеются сведения об ошибках в кремнии, которые были пересмотрены хотя бы один раз.
  • Внутренний сторож.
  • Внутреннее обнаружение низкого напряжения / отключения.
  • Флэш-память на чипе.
  • ESD защита.
  • JTAG / SWD или какой-либо однопроводный интерфейс отладки.
  • Ядро использует 8-битные байты и подпись 2-х дополнений.
  • Образцы и оценочные платы легко доступны.
  • Имеет отзывчивую техническую поддержку напрямую от производителя.

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

  • Неясные режимы адресации, которые должен обрабатывать программист. Включая использование непонятных, нестандартных ключевых слов для доступа к данным ПЗУ.
  • Серьезные ограничения памяти стека или глубины стека.
  • 16 бит int, что, в свою очередь, сопровождается всеми скрытыми опасностями целочисленных промоушенов на языке Си.
  • Невозможно выполнить 16- или 32-битную арифметику без начала кипения.
  • Не перехватывает, если вы выполняете код в разделах данных.
  • Нет буфера трассировки команд.
  • Поставляется с экзотической аппаратной периферией, которая вам не нужна.

Предупреждающие знаки - цепь инструмента

  • Полагается на программные симуляторы на ПК или какой-либо загрузчик вместо того, чтобы перепрограммировать весь MCU и использовать выполнение / отладку на кристалле.
  • Не поставляется с готовыми драйверами / примерами / библиотеками, написанными профессионалами. Полагается на разработчиков, заново изобретающих колесо, или на интернет-форумах / с открытым исходным кодом.
  • CRT для компилятора C не соответствует требованиям, перечисленным здесь .
  • Компилятор C поставляется с длинным списком стандартных функций C, которые не поддерживаются.
  • Компилятор C по-прежнему не поддерживает C11 (независимо от того, собираетесь вы его использовать или нет).
  • Среда IDE выдает много странных ошибок компоновщика при первой попытке запустить программу «hello world».
  • Обнаружение множества ошибок IDE или компилятора в течение первых недель использования.
Лундин
источник
Это слишком догматично. Вы полностью опускаете стоимость, варианты упаковки ((с открытым исходным кодом! = Непрофессионал), качество периферийных устройств и т. Д. И т. Д. В целом я не согласен с большинством из этого, но такие вещи, как «ограничения стека [...]» просто означает, что вам нужно знать компромисс, который привел к этим ограничениям в первую очередь.
awjlogan
@awjlogan Стоимость и варианты упаковки зависят от конкретного проекта, поэтому здесь нет смысла обращаться к ним. Я не говорил, что открытый исходный код непрофессиональный, но компания, которая передает свою цепочку инструментов на аутсорсинг и поддерживает такие сайты, как SO, не профессиональна. Хотя проекты с открытым исходным кодом, в которых слишком мало участников, также не являются профессиональными, как мы видим из портов компилятора с открытым исходным кодом для различных экзотических микроконтроллеров. Не должно быть никаких причин выбирать MCU с ограниченным стеком в 2019 году.
Лундин
Конечно, они зависят от проекта, но вы сразу увеличили базовую стоимость, указав только 16/32 бита в своем списке (быстрое сканирование Digikey), и я недавно не видел 6-контактный M0. Если вам что-то не нужно (включая время), не тратьте на это лишние деньги, это решения, которые вы должны принять как профессионал. Но, да, хорошая оснастка так важна, не могу не согласиться.
awjlogan
@awjlogan LPC81X существует уже более 5 лет. Я только недавно узнал о Cypress PSoC4, который выглядит интересно. И так далее. Количество выводов не является аргументом, просто размер пакета и тип. Если вы можете терпеть QFN или BGA, вы можете получить очень маленькие фишки.
Лундин
согласились на это, ваш выбор сужается при небольших размерах (хотя и для любой архитектуры). Моя общая точка зрения заключается в том, что, хотя все вещи в вашем списке желательны, вы также должны быть достаточно осведомлены, чтобы знать, когда их сломать.
awjlogan
0

Если вы собираетесь выполнять задачи общего назначения, которые могут иметь аналоговую и цифровую обработку, то я бы предпочел PSoC из-за его IDE, отладчика и большого количества вещей, которые вы можете сделать с ними.

Я использовал PSoC3 в колледже для своих проектов, и освоить его довольно просто. Единственное, что если вам нужны микросхемы производительности, вам все равно придется получать их отдельно. У него достаточно хороших портов. Так что, если вы ищете некоторые чипы производительности вместе с комплектом разработчика, лучше перейдите на отдельные компоненты.

ganesh737
источник
1
Возможно, стоит добавить немного больше информации о PSoC, чтобы сделать это более полезным, пара других ответов уже охватывает его.
PeterJ
@PeterJ: Я хотел дать это как комментарий к ответу Rocketmagnet, но у меня нет никакой репутации, чтобы комментировать.
ganesh737
Есть ли причина, по которой вы не выбрали дизайн, основанный на софткоре, например, использование Nios II на Altera FPGA или microblaze / picoblaze на Xilinx FPGA? Их можно использовать для получения того же эффекта, что и PSoC, и я бы сказал, что во многих отношениях это лучший выбор.
квант231
1
@ квант231: Я бы с этим согласился, но основным ограничением для меня в то время был бюджет, и это было доступно бесплатно в нашем отделе электроники.
ganesh737