Какое семейство микроконтроллеров ARM лучше для начинающих? [закрыто]

Какое семейство микроконтроллеров ARM лучше для начинающих?

Я имею в виду, какая семья:

  • Простой и легкий в освоении
  • Имеет больше/лучшие ресурсы для обучения и развития
  • Имеет большее и лучшее сообщество
  • [Имеет доступное программное/аппаратное обеспечение для обучения и разработки FLOSS]

Обновлять:

  1. Стоит ли начинать с Cortex-M4? (из-за ARMv7, Гарвардской мемориальной арки и т. д.)
  2. между микроконтроллерами на базе NXP, ST и TI Cortex-M4, что лучше для начала? (на основе требований выше)
Этот вопрос можно считать основанным на мнении, поскольку «лучше» довольно субъективно, хотя я думаю, что будет достигнут общий консенсус.
Пожалуйста, не закрывайте этот вопрос, потому что он очень интересный. Существует ограниченное количество вариантов, это не основано на мнении, информация актуальна для многих пользователей, информация долговечна, потому что наборы инструментов существуют уже десять лет и устаревают очень мало. В общем, информация полезная и нужная.
не добавляя в качестве ответа, потому что у меня нет другого опыта, но лично после arduino я вскочил на stm32f3discovery, и на самом деле самой сложной частью была настройка инструмента сборки. Благодаря CMSIS и другим RTOS, таким как chibios, у вас может быть интерфейс, который поможет вам скрыть реестр и тому подобное, или предоставить пример того, как все было реализовано.
Я разочарован тем, что этот вопрос закрыт. Я готов думать, что ты сделал это главным образом, чтобы досадить мне, а потом нашел причины. Это именно тот вопрос, который нам нужен. Он извлекает выгоду из обширной объединенной базы знаний пользователей SE.EE. Лучше сформулировать, например, «Какие существуют наборы инструментов для разработки ARM и каковы их преимущества» или что-то в этом роде.
Мой голос был бы "это не имеет значения". Я предпочитаю использовать простой GCC (от launchpad.net/gcc-arm-embedded ) с моими собственными make-файлами, компоновщиком и кодом запуска. Мне нравятся LPC1114 и LPC810, потому что они находятся в DIP, а (загрузочная) загрузка легко выполняется с помощью lpc21isp, но я мог бы без особых усилий переключиться на любой другой чип, поддерживающий автоматическую загрузку.
@PkP Я не голосовал за закрытие, потому что он был закрыт до того, как я сюда попал, но я решил, что проголосовал бы за закрытие до того, как вопрос завершит загрузку, строго исходя из названия. 95% что интуиция верна.
@ Мэтт, понятно. У меня была такая же интуиция, поэтому я написал комментарий, чтобы попросить не закрывать его. Мне интересно, почему принято закрывать вопросы о рекомендациях по продукту - из-за системы голосования какой сайт может быть более подходящим для таких вопросов, чем обмен стеками? Может быть, я использую свои отпускные деньги, чтобы купить достаточно выпивки, чтобы осмелиться написать об этом мета и столкнуться с гневом сообщества!
@PkP Хотя подобные вопросы здесь не разрешены, есть и другие вещи, которые нам не особенно нравятся. Одним из них является ваш тон. В EE.SE мы не разрешаем вопросы с рекомендациями по продукту, потому что EE.SE предназначен для проектирования электроники, создания схемы, ее тестирования, сборки, а не покупки. Есть много других форумов, которые помогут вам с покупкой продукта, но в его нынешнем виде EE.SE — одно из немногих мест, где вы можете получить действительно точный ответ о конкретной проблеме в конкретном приложении.
@Funkyguy, ты можешь так себя чувствовать. И я понимаю политику в отношении рекомендаций продуктов, мне просто жаль, что она существует, потому что выбор компонентов является такой огромной частью дизайна электроники (продукта), и он требует так много времени, мыслей и энергии, и это было бы отличным сообществом, чтобы ответить на такого рода вопросы. И спасибо за ваш ответ на этот вопрос, это именно тот тип, который очень полезен, и я надеюсь, что мы увидим больше подобных ответов здесь.
@PkP Ой, спасибо за понимание. Честно говоря, я ненавижу быть плохим парнем. Я согласен, что это огромная часть проекта, хотя мы, похоже, просто полагаемся на то, что спрашивающий сначала проведет достаточное количество исследований. Надеюсь увидеть вас в нашем сообществе.

Ответы (3)

1.Хорошо ли начинать с Cortex-M4? (из-за ARMv7, Гарвардской мемориальной арки и т. д.)

Да, почему бы и нет? Если вы программируете на языке C, я думаю, вы не почувствуете разницы (почувствует только компилятор). С другой стороны, если вы программируете на ассемблере, то, конечно, есть различия.

2. Что лучше для начала выбрать между микроконтроллерами на базе NXP, ST и TI Cortex-M4? (на основе требований выше)

Из этих MCU я знаю только MCU TI Tiva. Вы можете купить недорогую стартовую панель Tiva C Series TM4C123G. На этой панели запуска есть два MCU. Один из них работает как программатор, и при желании его можно использовать для программирования/отладки внешнего микроконтроллера Tiva C.

Вы можете использовать Arduino-подобную среду программирования под названием Energia для очень быстрого программирования простых приложений. Для сложных приложений вам следует использовать Code Composer Studio (CCS), который бесплатен при определенных условиях (один из них использует его с низкоскоростными программистами, как тот, что в Launchpad). Текущая CCS (версия 6) позволяет легко устанавливать библиотеки и примеры. Бесплатные библиотеки, позволяющие «легко» (это, конечно, относительно) работать с периферией внутри MCU, взаимодействовать с внешней периферией или иметь RTOS (операционную систему реального времени).

Многое зависит от того, что вы подразумеваете под «семьей».

Если вы спрашиваете, какое семейство продуктов производителя является хорошим местом для начала, я бы рекомендовал серию SAM от Atmel в основном из-за цепочки инструментов, по крайней мере, если вы работаете в Windows.

К сожалению, ARM довольно фрагментирован с точки зрения поддержки производителя и наборов инструментов для Windows.

У Atmel есть Atmel Studio , которую вы устанавливаете, и она просто работает. Я провел некоторое время, разбираясь с частями STM32, прежде чем попробовать некоторые устройства Atmel, и получить функциональный набор инструментов было большим раздражением. В конце концов я заставил CooCox работать, но у меня очень мало поддержки со стороны. Студия Atmel работает сразу после установки. Это хорошо, потому что может потребоваться заставить GCC работать в Windows.


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

Интересные комментарии о CooCox. Хотя я согласен с отсутствием сторонней поддержки, мне было очень просто начать работать (в Windows) с STM32 — это просто сработало — и поддержка отладки (по крайней мере, для STM32) чертовски впечатляет для бесплатного решения. имо.
@markt - я смотрел на него около года назад, возможно, он сильно улучшился.

ARM Cortex M0 — самая простая и простая архитектура в семействе ARM.

Лично я учился на макетной плате FRDM-KL25z от Freescale, хотя существует множество вариантов.

Существует Arduino-подобная среда под названием mBed, которая очень похожа на Arduino, хотя и предназначена для контроллеров ARM. Вы можете использовать mBed со многими различными контроллерами, такими как Teensy и даже с платой разработки FRDM, о которой я упоминал.

Если вы не ищете среду, подобную Arduino, вы можете использовать плату разработки FRDM, о которой я упоминал, от Freescale, которая имеет бесплатную среду разработки, включающую генератор кода под названием Processor Expert. Processor Expert позволяет указать компоненты и протоколы связи, а затем сгенерирует для вас необработанный код. Код по-прежнему представляет собой чистый код и будет очень похож на код, который вы написали бы, если бы не использовали Processor Expert.

Еще одна очень популярная линейка, особенно среди пользователей здесь, на EE.SE, — это линейка макетных плат Discovery от ST Microelectronics.

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

M0+ имеет тот же набор инструкций, что и M0. Он оптимизирован, чтобы быть меньше, и имеет 2-этапный конвейер вместо 3-этапного M0, поэтому его штраф за переход составляет 2 вместо 3 тактов (поэтому он будет немного быстрее на тех же тактовых частотах).
@WoutervanOoijen Спасибо за разъяснения. Я не был уверен и почему-то не догадался посмотреть. я обновил свой пост
Разница между различными ядрами Cortex-M в основном не имеет отношения к сложности использования: большая часть работы уходит на работу с набором инструментов и периферийными устройствами.