Года так 2 назад на одном из форумов по радиоэлектронике я попросил посоветовать, какой микроконтроллер изучать — и больше всего голосов было в поддержку AVR — популярных, 8-и битных МК, под которые легко писать, программатор можно сделать одной рукой (из проводов и резисторов)… Будущее было ясным и безоблачным, пока в 2009-м году не пошли новости про новые микроконтроллеры на ядре ARM Cortex-M0, которые должны были стоить меньше 1$ (во что в принципе никто не верил) и перекрыть кислород 8-и битным микроконтроллерам.
Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
Пояснения: Потребление энергии — указаны в оптимальных условиях в соответствии с 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 такта на выполнение команд).
Все дело в том, что само 32-х битное ядро не так уж и много места занимает, порядка десятка тысяч транзисторов. А например 256Кб Flash-памяти — это 2 млн транзисторов, что не сравнимо больше. Т.е. основное место все равно занимает память и ввод/вывод, так почему бы не потратить +2% площади кристалла и получить 32-х битное ядро нормальной скорости. Также надо учитывать, что уменьшение площади кристалла даже в 2 раза не уменьшает стоимость вдвое — цена разрезания пластины, тестирования, корпусирования остается той-же — и выигрывает тот, кто имеет большие объемы производства.
Так что нам остается смириться, и использовать ARM даже там, где хватило бы и 4-х битного процессора. Небольшая ниша остается у 6-и ногих крошек PIC10 (и AtTiny10 при снижении цены), и все.
Программатор для ARM-ов собрать несколько сложнее, чем для AVR, но наши китайские товарищи не дремлют, и там можно заказать занедорого отличный программатор JLINK (подходит практически для всех армов всех производителей) — 24$ с доставкой — мне как раз сейчас едет.
Там же есть веселые отладочные платки с сенсорным экраном по 39.
Ну и любители халявы успели поиметь по отладочной платке от известного конкурса — конкурс еще идет, но неизвестно шлют ли еще — мне пока так и не прислали…
Комментарии / вопросы / мнения — в студию!
Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
МК | Ядро | Цена (рубли в розницу) | Flash-память (кб) | ОЗУ (кб) | Производительность (MIPS) | Потребление энергии (мА/Mhz) |
LPC1111FHN33 | ARM 32-bit Cortex M0 | 56 | 8 | 2 | 0.9*50 | 0.15 |
STM32F100C4T6B | ARM 32-bit Cortex-M3 | 28.15 | 16 | 4 | 1.25*24 | 0.23 |
AtTiny13A | Atmel 8bit | 25.5 | 1 | 0.064 | 20 | 0.3 (1mhz) 0.55 (20 mhz) |
atmega48 | Atmel 8bit | 47.06 | 4 | 0.5 | 20 | 0.3 (1mhz) 0.55 (20 mhz) |
MSP430F2101IPW | TI 16bit MSP430 | 52.12 | 1 | 0.12 | 16 | 0.25 (1mhz) 0.4 (16mhz) |
PIC16F676 | PIC16 8bit | 36.8 | 2 | 0.22 | 5 | 0.1*4 |
PIC12F509 | PIC12 8bit | 26.3 | 2 | 0.041 | 5 | 0.087*4 |
PIC10F200T | PIC10 8bit | 14 | 0.25 | 0.016 | 1 | 0.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.
Ну и любители халявы успели поиметь по отладочной платке от известного конкурса — конкурс еще идет, но неизвестно шлют ли еще — мне пока так и не прислали…
Комментарии / вопросы / мнения — в студию!