Покажи-ка ножку, незнакомка!

Ни для кого не является секретом, что в современном мире очень много устройств, в которых присутствуют тот или иной микроконтроллер. Разнообразие микроконтроллеров очень огромно. Я даже не берусь назвать цифру — сколько разных типов их сегодня выпускается.

В процессе общения с микроконтроллерами меня как-то само выработалось, что я подразделяю их условно на две большие группы:

  1. ногодрыгалки
  2. числодробилки

Микроконтроллеры первой группы обычно имеют небольшие тактовые частоты (до нескольких десятков мегагерц), не впечатляют ни размерами своей памяти, ни наличием «толстых» интерфейсов для передачи данных. Их основное назначение — дрыгание ножками, отсюда и название — «ногодрыгалки». Основное требование к таким микроконтроллерам — предсказуемость поведения, предсказуемость временных характеристик.

Микроконтроллеры из второй группы обладают значительно бОльшими размерами памяти, работают на частотах выше 20-30 МГц и, как правило, имеют на борту такие мощные интерфейсы как USB, Ethernet. Они, конечно, могут тоже дрыгать ногами, но их основное назначение состоит в том, что бы принимать и отравлять (по интерфейсам) потоки информации, анализировать и вычислять большие объемы информации.

Понятно, что граница между ногодрыгалками и числодоробилками проводится условно. Причем, я уверен, — каждый разработчик проводит ее по своему, согласно своим задачам и своему представлению о мире микроконтроллеров. И понятно, что в виду размытости и не четкости правил проведения этой границы микроконтроллеры из первой и второй групп взаимно перекрывают области друг у друга.

Но так или иначе, когда перед разработчиком стоит задача построить девайс, который должен выдавать импульсы заданной ширины, четко прогнозироваться по времени и при этом не требуется пересылать файлы через Ethernet, то лучше брать микроконтроллеры из первой группы. У них всегда каждая команда выполняется за строго отведенное количество тактов. Поэтому нужную ширину импульса разработчики обычно задают частотой процессора и вставкой команд NOP при необходимости. Это как правило микроконтроллеры с ядром AVR (Mega, Tiny), MSP430 и другие. Я бы сюда также отнес и 51-е ядро, но мне кажется, что его уже мало кто применяет. Про микроконтроллеры PIC и XMEGA я ничего не скажу. Я просто принципиально ими не занимаюсь.

Когда же стоит задача передавать большие потоки информации, подсчитывать контрольные суммы или заниматься тяжелой обработкой результатов, а тем более — заниматься вычислениями с плавающей точкой, то наиболее удачный выбор микроконтроллера будет — это что-нибудь из многочисленных семейств ARM7, АРМ9, Cortex и других.

Я ничего не сказал про модное ныне поколение STM8. Я этими бестиями тоже не занимаюсь по принципиальным соображениям.

Вот тут я должен взять лирическую паузу и рассказать красивую притчу. Особенно полезно будет послушать ее тем, кто пытается продвигать новые микроконтроллеры. Послушать и попытаться понять, почему разработчики не бросаются с улыбкой к ним в объятия.

Рисую картину маслом:

Тихий летний вечер. Парк. Цветут и благоухают зеленые насаждения, по близости в пруду плавают утки и сытно крякают. Вы с молодой женой прогуливаетесь по зеленым аллеям. Ведете неспешную беседу, строите планы на будущее — какой авто покупать, где искать место для строительства коттеджа, как назовете первого ребенка. Ну и так далее. В общем, вы полностью погружены в чудесную семейную идиллию. Между Вам полное взаимопонимание.

Возможно, Ваша жена не умеет изысканно готовить борщ, или быстро бегать на лыжах. Возможно, она не очень разбирается в компах и ревнует Вас к осциллографу. Возможно. Возможно, она не так красива. Не так идеальна, как хотелось бы. Но это не мешает Вам получать удовольствие от общения с ней.

Но, как бы там ни было, к сожалению, у нее есть один маленький и серьезный недостаток — недавно она сломала ногу (руку) или подхватила двустороннее воспаление легких. И теперь Вам приходится на нее тратить раза в три больше денег, чем это было год назад. Проблема?

Парк. Тихий летний вечер. Тепло. Солнце уже клонится к закату и золотит своим светом асфальтовые дорожки. И в этот момент мимо Вас проплывает незнакомка .

Ахуэт… Ахуэтойнезнакомкикакиеформы! Ах!

Женщина в прозрачном платье белом,
В туфлях на высоком каблуке,
Ты зачем своим торгуешь телом
От большого дела вдалеке?

(«Камелия», Игорь Иртеньев)

И что? Следует ли Вам бросить жену и заняться изучением разодетой куклы?

Возвращаемся к нашим микроконтроллерам.

До недавнего времени я как мог, отбивался от навязчивых предложений бросить AVR, MSP430 и заняться STM8 (Xmega и другими модными штучками). Мне преиодически звонят и наши (Екатеринбургские) продаватели радиодеталей, и Московские, и Питерские. Все периодически уговаривают сориентироваться на продвигаемый ими продукт. Как правило, говорят что-то типа «первая доза бесплатно!». Образцы присылают. За что, собственно, им огромное спасибо! Но реально я не могу вырваться из круговорота дел и заняться углубленным изучением какого-нибудь нового для меня ядра.

Чем же мне претит, допустим, тот же STM8? Почему я до сих пор не смог с ним покувыркаться в кустах?

Ну, во первых, под Линуксом никаких компиляторов-ассемблеров нет. И в ближайшее время скорее всего — не будет. А я, надо сказать, уже считаю себя твердым Линуксойдом. И снова затариваться Виндосовской технологией мне как-то нет никакого резона. Можно сказать, что только что очистился от скверны, а тут вдруг раз – и «снова корова» что-ли? Зачем мне это надо? Не-е, не надо мне никаких Шиндовсов! «Я, можно сказать, только жить начал. На пенсию вышел» (с) Почтальон из Простоквашино.

Я только почувствовал вкус Линукса. Только у меня всё начало танцевать и вертеться как надо. Нахрен мне сдались эти парикмахерские, вирусня и пиратство. В общем — твердое «нет!»

Во вторых, те средства разработки, что есть под Виндовсом, — они… как бы это выразится по мягче — какие-то не доделанные что-ли… Народ не в сильном восторге от них.

Поэтому, особого стимула менять жену у меня совсем нет. Вот когда совсем помрет, вот тогда и будем разбираться. И совсем не вариант, что я выберу ту, у которой ляжки по 0.5 мм или сиськи по 5 килобайт каждая.

Так вот, возвращаться к нашим «Камелиям». Я тут читаю обзор по STM8

http://we.easyelectronics.ru/Deer/pochemu-ya-ne-speshu-prodolzhat-razgovor-o-rastaktovke-vypolneniya-instrukciy-vychislitelnym-yadrom-stm8.html

и чувствую, слегка сползаю под стол.

Отлично! Отлично! Какое счастье, что этот отрицательный опыт получен не мной. Я не затратил на это дело ни минуты. Однако, спасибо автору публикации за предупреждения. Так сказать, спас меня от потери времени.

А о чем, собственно, речь? А речь вот о чем.

Как я уже упоминал в начале этой статьи, я подразделяю микроконтроллеры на ногодрыгалки и числодробилки. К числодробилкам STM8 отнести не получатся — слишком уж маленькая у него вычислительная мощность. Ну можно и на мопеде увезти пять мешков картошки, но зачем? Каждый МК должен решать свой круг задач.

А после прочтения статьи про особенности STM8 я начинаю понимать, что и к ногодрыгалкам его отнести тоже не получается.

Из-за непредсказуемости поведения, похоже, теперь цена на STM8 будет еще немного ниже. Кому она нужна такая — проблемная ногодрыгалка? Которая по вычислительной мощности до младших Кортексов мал-мал тоже сильно не дотягивает?

В общем, STM8 — какая-то хрень, с неожиданными граблями. Не-е, не нужна мне такая Камелия с непредсказуемым характером.

Тем более АТМЕЛ уже наполнил склады Америки и Европы. А теперь наполнил и наши Российские склады. И, как следствие, цены на AVR почти вернулись на свой прежний уровень.

На прошлой неделе я узнавал цену на Мегу88 в ЭФО — менее доллара при партии от 100 шт. Расскажите мне — вот теперь — в чем смысл менять шило на мыло? Что есть в STM8 такого, чего нет в AVR? Чего STM8 может делать такого, чего принципиально не может сделать AVR?

У вас не 25 часов сутках, поэтому хорошо знать всё, как ни крути, физически не получится. Можно о многом знать, но поверхностно. Можно и досконально знать, но только очень ограниченный круг вопросов.

Поверхностное знание множества ядер микроконтроллеров хорошо выглядит только в резюме студента при трудоустройстве. При работе это, наоборот, — только мешает. Лишние глубоко-специфичные знания других ядер, которыми ты владеешь, но не используешь их практически — это как лишняя мебель в доме.

А «эта» мебель — еще и с особенностями: непредсказуемой реакцией ножек.

Реклама

6 responses to “Покажи-ка ножку, незнакомка!

  1. у меня похожая точка зрения 🙂
    гораздо быстрее написать задачу используя контроллер который знаешь, чем учить новый чуть более подходящий для этого контроллер… поэтому в принципе и не слажу с авр

  2. да, да. Тем более, что другое ядро по техническим возможностям практически ни чем не отличается от того, которое уже знаешь.
    Смысла плодить сущности — нет. Потом сам начнешь путаться среди своих баб — кто у тебя жена, кто любовница, а кто соседка с верху.

  3. Не люблю я такие аналогии, на микроконтроллеры мне как-то чихать в отличии от)
    Я знаю 51-й авр и pic но цены на авр и их доступность иногда заставляли понервничать.
    Сейчас msp430 осваиваю

  4. Старперы, юзайте 51 контроллер — он ещё более изученей чем АВР, Пики там разные. Не хочешь юзать нормальный контроллер — не фиг его обсерать!!!

    • Абсолютно с Вами согласен! Спасибо за поддержку.

      Вы всё правильно говорите — нужно использовать нормальные микроконтроллеры, а не те «ватные» поделки, которые «выплыли» на рынок только за счет того, что кто-то на рынке «приболел». А в отношении STM8, собственно, вопрос-то даже и не стоит — для него никакого софта под Линуксом нет. Никто не пишет, типа — нафиг никому не нужно! Есть же нормальные микроконтроллеры, вот с ними и работать надо.

  5. Ну теперь-то SDCC есть и причина в 10р/шт видимо, при этом весьма заменяет мегу8. Но я бы всё равно их не использовал ведь уже есть stm32f030. Жаль когда разработчика уже не продавцы а заказчики требуют снизить себестоимость настолько…

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s