Основываясь на моих приблизительных требованиях: работа в диапазоне от 36 до 72 МГц, наличие 16 КБ+ SRAM, 128 КБ+ флэш-памяти, возможность программирования на C, я решил, что для своего приложения я хочу использовать микроконтроллер ARM Cortex M3.
Вопрос в том, по каким критериям люди выбирают версию M3? Есть много возможных поставщиков, таких как TI, ST, NXP, Freescale и т. д. и т. д.
Основным отличием с моей точки зрения будет простота программирования. В идеале я тестирую его на плате для прорыва / разработки, а затем внедряю в свою собственную печатную плату.
Я думаю, что @markt, безусловно, находится в нужном месте: набор инструментов, периферийные устройства, пакеты, наборы для разработки.
Добавлю несколько, а может и уберу. 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.
Учитывая ваше стремление к доскам разработки, подумайте, что там доступно.
Если вы переходите с другой платформы (PIC, Atmel и т. д.), смиритесь с тем, что при переходе на ARM во многих областях придется пройти обучение, но оно того стоит.
Если у вас нет явных предпочтений (например, цена, размер, мощность, плюс то, что перечислено другими), то я бы подумал, кто вас поддерживает. Если производитель не отвечает на ваши вопросы, это может быть проблемой. Или у них есть местный дистрибьютор с FAE (инженером по эксплуатации), о котором вы можете спросить? Это особенно важно для небольших компаний и любителей.
Некоторые детали могут быть недоступны в небольших количествах. Например, те, у которых в одной упаковке есть DRAM, рассчитаны на крупных покупателей (> 10 тыс. штук).
Вероятно, 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 мкс время пробуждения
Ядро: 32-разрядный процессор ARM®Cortex™-M3
От 32 кГц до 32 МГц макс.
Пик 33,3 DMIPS (Dhrystone 2.1)
Блок защиты памяти
Сброс и управление питанием
Сверхбезопасный маломощный BOR (сброс при снижении напряжения) с 5 выбираемыми пороговыми значениями
POR/PDR со сверхнизким энергопотреблением
Программируемый детектор напряжения (PVD)
Источники часов
Кварцевый генератор от 1 до 24 МГц
Генератор 32 кГц для RTC с калибровкой
Высокоскоростной внутренний 16 МГц RC с заводской подстройкой (+/- 1%)
Внутренний маломощный 37 кГц RC
Внутренняя многоскоростная маломощная от 65 кГц до 4,2 МГц
PLL для тактовой частоты процессора и USB (48 МГц)
Запрограммированный загрузчик
USART поддерживается
Поддержка развития
Поддерживается последовательная проводная отладка
JTAG и трассировка поддерживаются
До 83 быстрых операций ввода-вывода (73 операции ввода-вывода с допустимым напряжением 5 В), все они могут быть сопоставлены с 16 внешними векторами прерываний
Воспоминания:
До 128 КБ флэш-памяти с ECC
До 16 КБ ОЗУ
До 4 КБ настоящего EEPROM с ECC
80-байтовый резервный регистр
ЖК-драйвер до 8x40 сегментов
Поддержка регулировки контрастности
Поддержка мигающего режима
Повышающий преобразователь на борту
Богатая аналоговая периферия (до 1,8 В)
12-разрядный АЦП 1 Мбит/с до 24 каналов
12-битный ЦАП 2 канала с выходными буферами
2 компаратора со сверхнизким энергопотреблением (оконный режим и возможность пробуждения)
DMA-контроллер 7x каналов
8-кратный периферийный интерфейс связи
1x USB 2.0 (внутренний PLL 48 МГц)
3x USART (ISO 7816, ИК-порт)
2x SPI 16 Мбит/с
2x I2C (SMBus/PMBus)
10 таймеров: 6 16-разрядных с 4 каналами IC/OC/PWM, 2 16-разрядных базовых таймера, 2 сторожевых таймера (независимых и оконных)
До 20 емкостных сенсорных каналов, поддерживающих сенсорные кнопки, линейные и поворотные сенсорные датчики Блок вычисления CRC, 96-битный уникальный идентификатор
Дзарда
ккрамбо
Воутер ван Оойен
пользователь 20088
пользователь 20088
ткросли
Преподобный
Скотт Сейдман
Скотт Сейдман
Ник Алексеев
Скотт Сейдман