Как выбрать микроконтроллер ARM Cortex M3?

26

Исходя из моих жестких требований быть в диапазоне от 36 до 72 МГц, иметь 16 Кбайт + SRAM, 128 Кбайт + флэш-память, будучи программируемым в C, я решил, что для своего приложения я хочу использовать микроконтроллер ARM Cortex M3.

Вопрос в том, по каким критериям люди выбирают, какую версию M3 использовать? Существует множество возможных поставщиков, таких как TI, ST, NXP, Freescale и т. Д. И т. Д.

Главным отличием с моей точки зрения будет простота программирования. В идеале я тестирую его на плате обсуждения / разработки, а затем внедряю в свою собственную печатную плату.

JDS
источник
11
Это полезный вопрос для всех, пожалуйста, не закрывайте его, так как он основан на мнениях .
Дзарда
2
Выбор поставщика чипов - это только часть проблемы. Задумывались ли вы о том, какой инструментарий разработки вы собираетесь использовать?
Ккрамбо
5
Я бы сказал, что важность выбора микросхемы uC в такой ситуации сильно переоценена. Подойдут все чипы, которые отвечают основным требованиям. Если вы придерживаетесь C или C ++ и не нуждаетесь в причудливой периферии, вы можете даже позже переключиться без особых усилий. Я бы основывал свой выбор на объеме поддержки, которую вы можете получить от www, vendor, (user) групп, списков, форумов и т. Д., К которым у вас есть легкий доступ.
Воутер ван Оойен
5
«Есть дюжина создателей одного и того же ядра. На какие вещи смотрят люди, чтобы помочь им выбрать один?» кажется хорошим вопросом для меня.
Скотт Сейдман
5
Это самый высокий вопрос в списке наших 250 самых новых, с тремя любимыми лейблами. С этой статистикой, если это ОТ, мы могли бы подумать, почему. Я думаю, совершенно ясно, что автор считает «простоту программирования» ОДНЫМ из критериев, которые он использует в настоящее время, и он просит большего. Из четырех ответов только один дает четкую рекомендацию для контроллера, а все остальные обсуждают, какие критерии они используют для выбора. Я сделал небольшое редактирование, которое должно сделать вопрос более актуальным, но мне показалось, что до редактирования это было довольно ясно.
Скотт Сейдман

Ответы:

19

Я думаю, что @markt, безусловно, находится в нужном месте: Toolchain, периферия, пакеты, devkits.

Я добавлю несколько, и, возможно, сниму несколько. Toolchain, безусловно, важен, но БЕСПЛАТНО может или не может быть. Иногда работа без реальной поддержки может стоить дороже, чем вы думаете, и использование разумного коммерческого пакета вполне может стоить того для данной ситуации. Иногда возможность пройти тщательный аудит лицензий также важна, и использование бесплатного инструмента с ограничительной лицензией может укусить вас позже.

Мне нужна хорошая библиотека CMSIS для поддержки микроконтроллера. CMSIS - стандарт программного интерфейса микроконтроллеров Cortex - arm.com/products/processors/cortex-m/… - это уровень абстрагирования оборудования для микроконтроллеров серии Cortex-M. Теоретически, если библиотека совместима с CMSIS, она не зависит от производителя и ее проще менять на разные семейства, и вам не нужно заново изучать среду с нуля, чтобы иметь возможность использовать библиотеку. Одним из привлекательных аспектов среды ARM Cortex является возможность смены платформ без лишних хлопот. Если вы выбираете платформу, которая не покупается в структуре CMSIS, вы не сможете перемещаться так удобно.

Для меня дешевая и удобная плата разработчика является обязательным условием, но это может или не может быть столь же важным, как и некоторые другие вещи (я думаю, что серия STM32 имеет удивительные устройства). Если в семье есть очень удобные и дешевые доски разработчика, то вам, скорее всего, понадобится помощь от более широкой пользовательской базы. Кроме того, эти чипы, как правило, находятся в пакетах SMT. Когда вы неизбежно взрываете микросхему, или порт на микросхеме, или бит на порте на микросхеме, замена микросхемы - это PITA, включающая переработку SMD. Если вы можете купить две или три платы по 10–15 долл. Каждая и заменять их по мере их разрушения, вы даже не ДУМАЕТЕ о том, чтобы сделать эту переделку SMD!

Подумайте «Дополнительно». Вам может понадобиться что-то сверх того, что считается «периферийным». Например, может быть, у вас есть большие потребности в Bluetooth, и вы можете выбрать Nordic Semiconductor для такой поддержки. Вы можете подумать о некоторых других вещах, например о том, насколько легко загружается загрузка и т. Д.

Подумайте, Документация. Я был немного менее впечатлен тем, как трудно разобраться с некоторыми документами STM.

Скотт Сейдман
источник
+1 Полностью согласен. В прошлом году я начал работать с ARM Cortex-M3 / M4, используя STM32. Я почти закончил проектирование STM32F207, когда мы переключились на STM32F407 в зависимости от цены / доступности. Это была вставка для аппаратного обеспечения, и изменения в программном обеспечении были тривиальными. Документация и сложность сделали его немного трудным для изучения, но дизайн надежен и стоит потраченных усилий. Я использую компилятор GCC (бесплатно) для написания тестового кода, а также бесплатную версию eil Keil для написания / тестирования примеров драйверов. Наш программист имеет лицензию на полный компилятор Keil. Оба кажутся твердыми.
Тут
1
@NickHalden, «ARM» лицензирует ядро ​​ARM для производителей чипов, которые их упаковывают и добавляют периферийные устройства. CMSIS - стандарт программного интерфейса микроконтроллеров Cortex - arm.com/products/processors/cortex-m/… - это уровень абстрагирования оборудования для микроконтроллеров серии Cortex-M. Теоретически, если библиотека совместима с CMSIS, она не зависит от производителя и ее проще менять на разные семейства, и вам не нужно заново изучать среду с нуля, чтобы иметь возможность использовать библиотеку.
Скотт Сейдман
1
@YoungMoney Выбирайте самое дешевое, что даст вам как минимум вдвое больше ресурсов, чем, по вашему мнению, вам потребуется.
Markt
1
Развивайся по-крупному, чтобы не застрять. Как только у вас будет хорошее представление о том, какие ресурсы вам нужны, сократите.
Скотт Сейдман
1
Бесплатные профессиональные наборы инструментов важны в профессиональном контексте не из-за стоимости, а из-за безопасности доступа - используйте заблокированный набор инструментов, и ваша способность поддерживать проект находится под угрозой из-за лицензий, которые могут истечь или быть недоступными для вашего портативного ноутбука или коллега, ключи, которые могут быть потеряны, серверы лицензий, которые можно отключить через несколько лет, и т. д. Срок службы большинства встроенных конструкций значительно превосходит возможности настольного оборудования и версий операционной системы, которые использовались для их разработки, и возможность восстановления исходного инструменты в будущем важны!
Крис Страттон
14
  1. Ищите бесплатный набор инструментов, ОСРВ и недорогую поддержку JTAG / SWD.
  2. Подумайте, с какими пакетами вы можете / хотите работать - если DIP является обязательным, исключите поставщиков кремния, которые не предлагают пакеты DIP.
  3. Посмотрите, какие периферийные устройства предлагаются, и что вы, вероятно, хотите / нужно.
  4. Поищите деньги - используйте один или несколько сайтов крупных производителей электроники, чтобы сравнить яблоки с яблоками.

Учитывая ваше желание создавать доски объявлений, подумайте, что там доступно.

Если вы переходите с другой платформы (PIC, Atmel и т. Д.), Примите во внимание, что во многих сферах перехода к ARM будет справедливая кривая обучения, но это хорошо и действительно того стоит.

Markt
источник
Да - бесплатные цепочки инструментов важны для обеспечения доступа будущего / альтернативного компьютера / альтернативного инженера к цепочке инструментов больше, чем по стоимости. Для частей Cortex наборы инструментов довольно универсальны, поэтому лучше знать, что вы можете запрограммировать их с помощью простого в работе устройства с интерфейсом SWD, которое будет доступно или воссоздаемо и может быть использовано из вашей нынешней (и будущей) ОС выбор.
Крис Страттон
5

Если у вас нет сильных предпочтений (например, цены, размера, мощности и того, что перечислили другие), я бы подумал, кто вас поддерживает. Если производитель не отвечает на ваши вопросы, это может быть проблемой. Или у них есть местный дистрибьютор с FAE (Field Applciation Engineer), которого вы можете спросить? Это особенно важно для небольших компаний и хоббистов.

Некоторые детали могут быть недоступны в небольших количествах. Например, те, которые имеют DRAM в одной упаковке, предназначены для крупных покупателей (> 10 тыс. Единиц).

Брайан Карлтон
источник
2

Возможно, STM32L151VBT6 соответствует вашим требованиям. Даже когда мы использовали его в нашей компании, он имеет умеренную стоимость и хорошо с точки зрения энергопотребления. Также вы получите большую часть ресурсов по дизайну на http://www.st.com .

Основные характеристики микроконтроллера STM32L151VB:

Сверхмалое энергопотребление от 1,65 до 3,6 В

От -40 ° C до 85 ° C / диапазон температур 105 ° C

Режим ожидания 0,3 мкА (3 пробуждающих контакта)

0,9 мкА в режиме ожидания + RTC

Режим останова 0,57 мкА (16 пробуждений)

Стоп режим 1,2 мкА + RTC

9 мкА Режим низкого энергопотребления

Режим работы 214 мкА / МГц

Сверхнизкая утечка ввода / вывода 10 нА

Время пробуждения <8 мкс

Ядро: ARM®Cortex ™ -M3 32-битный процессор

Максимум от 32 кГц до 32 МГц

33,3 пик DMIPS (Dhrystone 2,1)

Блок защиты памяти

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

Сверхбезопасный BOR с низким энергопотреблением (сброс по умолчанию) с 5 выбираемыми пороговыми значениями

POR / PDR со сверхнизким энергопотреблением

Программируемый детектор напряжения (PVD)

Источники часов

Кварцевый генератор от 1 до 24 МГц

Генератор 32 кГц для RTC с калибровкой

Высокоскоростной внутренний 16 МГц радиоуправляемый радиоприемник (+/- 1%)

Внутренний маломощный 37 кГц RC

Внутренняя многоскоростная малая мощность от 65 кГц до 4,2 МГц

ФАПЧ для тактовой частоты процессора и USB (48 МГц)

Запрограммированный загрузчик

USART поддерживается

Поддержка развития

Поддержка отладки последовательного провода

JTAG и трассировка поддерживается

До 83 быстрых входов / выходов (73 ввода / вывода с допуском 5 В), все они могут отображаться на 16 внешних векторах прерываний

Воспоминания:

Flash до 128 КБ с ECC

До 16 КБ ОЗУ

До 4 КБ истинной EEPROM с ECC

Регистр резервного копирования 80 байт

Драйвер LCD для сегментов до 8x40

Поддержка регулировки контрастности

Поддержка режима мигания

Повышающий преобразователь на борту

Богатая аналоговая периферия (до 1,8 В)

12-битный АЦП 1 Msps до 24 каналов

12-битный ЦАП 2 канала с выходными буферами

Два сверхкомпактных компаратора (режим окна и возможность пробуждения)

DMA контроллер 7х каналов

8x интерфейс связи периферии

1x USB 2.0 (внутренняя ФАПЧ 48 МГц)

3x USART (ISO 7816, IrDA)

2x SPI 16 Мбит / с

2x I2C (SMBus / PMBus)

10-кратные таймеры: 6-кратное 16-разрядное с до 4-х каналов IC / OC / PWM, 2-кратное 16-разрядное базовое время, 2-кратные сторожевые таймеры (независимые и оконные)

До 20 емкостных сенсорных каналов с поддержкой сенсорных кнопок, линейных и поворотных сенсорных датчиков. Блок вычисления CRC, 96-битный уникальный идентификатор.

Myanju
источник