Сравниваем микроконтроллеры до 50 рублей: ARM жаждет крови

Года так 2 назад на одном из форумов по радиоэлектронике я попросил посоветовать, какой микроконтроллер изучать - и больше всего голосов было в поддержку AVR - популярных, 8-и битных МК, под которые легко писать, программатор можно сделать одной рукой (из проводов и резисторов)... Будущее было ясным и безоблачным, пока в 2009-м году не пошли новости про новые микроконтроллеры на ядре ARM Cortex-M0, которые должны были стоить меньше 1$ (во что в принципе никто не верил) и перекрыть кислород 8-и битным микроконтроллерам.

Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены - из terraelectronica.ru).


МКЯдроЦена (рубли в розницу)Flash-память (кб)ОЗУ (кб)Производительность (MIPS)Потребление энергии (мА/Mhz)
LPC1111FHN33ARM 32-bit Cortex M056820.9*500.15
STM32F100C4T6BARM 32-bit Cortex-M328.151641.25*240.23
AtTiny13AAtmel 8bit25.510.064200.3 (1mhz)
0.55 (20 mhz)
atmega48Atmel 8bit47.0640.5200.3 (1mhz)
0.55 (20 mhz)
MSP430F2101IPWTI 16bit MSP43052.1210.12160.25 (1mhz)
0.4 (16mhz)
PIC16F676PIC16 8bit36.820.2250.1*4
PIC12F509PIC12 8bit26.320.04150.087*4
PIC10F200TPIC10 8bit140.250.01610.043*4
Пояснения: Потребление энергии - указаны в оптимальных условиях в соответствии с datasheet (минимальное напряжение для данной частоты + отключена лишняя периферия). На "высоких" частотах у некоторых МК потребление на MHz выше т.к. требуется более высокое напряжение.

Также нужно помнить, что MIPS-ы у ARM-ов существенно более мясистые, чем у 8/16-и битных МК. Умножение 32x32 за 1 такт это вам не шутки...

Выводы

Определенно, Atmel недокладывает мяса тиграм. В настоящий момент в области высокой производительности/функционала полностью проигрывают Cortex M3 от STM32 (и по цене и по функционалу), а для мелких приложений - мелким PIC-ам, которые вдвое дешевле. Видимо мой собранный потом и кровью программатор для Atmel скоро останется не у дел... Впрочем, есть еще небольшая ниша для приложений где требуется работа от 5V...

У PIC-а только у PIC10 своя ниша остается, остальные проигрывают младшим армам STM32.

Cortex M0 от NXP должен был быть самым дешевым (с ценой до 0.5$ крупными партиями), но в реальности нам приходится платить 2$.

А вот Cortex M3 от STM32 просто рвет все в клочья: при цене крупными партиями 0.85$, его сейчас можно купить по одному за 0.99$ - определенно так будет не всегда, и это вероятно маркетинговая акция, но мне она нравится (я лично купил 20 впрок ). Также нужно помнить, какие плюшки несет нам Cortex M3 по сравнению с M0: умножение 32x32->64 (у M0 только 32x32->32), аппаратный делитель, операции вида MADD - все это и дает на 38% больше скорости на МГц. По энергопотреблению на MIPS получается примерно то-же. Даже если цена вырастет до 1.5$ - все равно будет вкусно, и дешевле большинства AtMega. Кстати, STM32 скоро Cortex M0 также запускает, посмотрим что из этого получится.

А вот по энергопотреблению 8-и и 16-и битные контроллеры ощутимо проигрывают (как это ни удивительно), а если учесть что ARM может больше спать при выполнении той же задачи, отрыв будет еще сильнее. PIC конечно в цифрах выглядит хорошо, но цифру в их случае надо умножать на 4 (т.к. требуется по 4 такта на выполнение команд).

Почему цена 8-и и 32-х бит так мало отличается?

Все дело в том, что само 32-х битное ядро не так уж и много места занимает, порядка десятка тысяч транзисторов. А например 256Кб Flash-памяти - это 2 млн транзисторов, что не сравнимо больше. Т.е. основное место все равно занимает память и ввод/вывод, так почему бы не потратить +2% площади кристалла и получить 32-х битное ядро нормальной скорости. Также надо учитывать, что уменьшение площади кристалла даже в 2 раза не уменьшает стоимость вдвое - цена разрезания пластины, тестирования, корпусирования остается той-же - и выигрывает тот, кто имеет большие объемы производства.

Так что нам остается смириться, и использовать ARM даже там, где хватило бы и 4-х битного процессора. Небольшая ниша остается у 6-и ногих крошек PIC10 (и AtTiny10 при снижении цены), и все.

Как жить дальше?

Программатор для ARM-ов собрать несколько сложнее, чем для AVR, но наши китайские товарищи не дремлют, и там можно заказать занедорого отличный программатор JLINK (подходит практически для всех армов всех производителей) - 24$ с доставкой - мне как раз сейчас едет.

Там же есть веселые отладочные платки с сенсорным экраном по 39.

Ну и любители халявы успели поиметь по отладочной платке от известного конкурса - конкурс еще идет, но неизвестно шлют ли еще - мне пока так и не прислали...
5 Июня 2011

RSS@BarsMonster3@14.by