Python или Ruby? Android или iPhone? Playstation или Xbox?
Сложно выразить словами мою ненависть к такого рода спорам. Однако в этом посте я предлагаю познакомиться с новыми 8-разрядными микроконтроллерами от Silicon Labs. Они, как несложно догадаться, предлагаются как альтернатива 32-разрядным кристаллам, а значит Let the Fight Begin!

В 2015 году Silicon Labs выпустила новое семейство микроконтроллеров на оптимизированной версии ядра 8051 — EFM8. Доступно три серии контроллеров: EFM8SB с пониженным энергопотреблением, EFM8UB с USB-интерфейсом и самые аскетичные EFM8BB. Для каждой серии предлагается отладочная плата, на которой предустановлено демонстрационное приложение — игра арканоид (Space Invaders). Изящное исполнение игры на простом кристалле напоминает разработчику, что счастье не в разрядности.



На отладочной плате SLSTK2021A расположены микроконтроллер EFM8BB22F16G, встроенный отладчик, ЖКИ 128 x 128 пикселей, джойстик, две механические кнопки, светодиод, разъем для установки батарейки, miniUSB, кнопка аппаратного сброса, переключатель источников питания и 20-выводный разъем для подключения плат-расширений.

EFM8BB22F16G представляет собой ядро 8051 с тактовой частотой 50 МГц, 16 КБ Flash-памяти, 2 КБ ОЗУ, интерфейсы I2C, SPI, 2 x UART, два компаратора, 12-разрядный АЦП и 5 таймеров. Всё это в корпусе QFN28 (5x5 мм).



Проект Space Invaders написан на Си. Производительности контроллера хватает на выполнение всех необходимых вычислений в реальном времени перед отрисовкой каждой линии (на работу с буфером ЖКИ не хватает памяти). Вычисления выполняются в рамках решения следующих задач:
  • расчет передвижений и состояний захватчиков;
  • расчет траекторий и состояний снарядов, выпускаемых захватчиками;
  • расчет положения игрока;
  • обнаружение попадания снарядов в игрока и столкновений игрока со снарядами;
  • преобразование результатов вычислений и передача соответствующих команд на ЖКИ (используется интерфейс SPI);
  • генерация ШИМ-сигнала для управления трехцветным светодиодом (он служит индикатором уровня опасности, т.е. близости захватчиков к позиции игрока);
  • определение положения джойстика через АЦП;
  • определение нажатия на механическую кнопку (нажатие кнопки — выстрел по захватчикам) с использованием прерываний по линии ввода/вывода.

Игра запускалась мной лично, работает всё действительно плавно, без лишних задержек.

Отладочный набор SLSTK2021A стоит в РФ порядка 40-50 долларов, а всё программное обеспечение распространяется SiLabs-ом бесплатно. Среда разработки, документация, демо-примеры, утилиты для конфигурирования периферии и измерения энергопотребления «упакованы» в программную платформу Simplicity Studio (дистрибутив (Windows, MAC, Ubuntu) доступен на silabs.com).

Ссылки:


  1. первоисточник этой заметки: community.silabs.com/t5/Projects/EFM8-Space-Invaders-Demo-Not-Your-Standard-8-bit-MCU/m-p/140611#U140611
  2. обзор отладочной платы для EFM8 от прекрасного EEVblog (смотреть с 23-ей минуты): www.youtube.com/watch?v=UYGl0vebWN8

Комментарии (20)


  1. StrangerInRed
    13.05.2015 15:18
    +2

    Поклонники пискель арта просто в восторге! А вообще программирование на таких платах обычно расширяет сознание программистов высокого уровня. Крутая плата, я б купил.


    1. uuuulala Автор
      13.05.2015 22:02
      +1

      могу посодействовать при покупке в РФ ;)
      придумаем скидку для хабраровчан


      1. jetman
        13.05.2015 22:08
        +1

        А для Беларуси можете ли как-нибудь посодействовать?..


        1. uuuulala Автор
          14.05.2015 10:20

          К сожалению, только Россия. Разве что у вас найдется товарищ готовый передать плату через границу…


          1. jetman
            14.05.2015 10:25

            Ок. К слову, таможенный союз ведь — у нас нет границы! :) Например, по этой причине российские интернет-магазины могут давно отправлять товары в Беларусь/Казахстан также, как засылают в дальние уголки России, но это знают и делают лишь единицы.


            1. uuuulala Автор
              14.05.2015 11:00

              Мне кажется если бы сложностей действительно не было, отправляли бы с радостью)
              Я советую проверить прямых поставщиков SiLabs-а в Беларуси,


  1. Error1024
    13.05.2015 15:40
    +1

    Памяти жалко для фреймбуфера нету :(


  1. MaxFilippov
    13.05.2015 20:29
    +2

    Плата смотрится довольно заманчиво. Я б затестил.
    Касательно Space invaders о чем задумался — интересно, платили ли они лицензионные отчислениях авторам игры?) Она, конечно, года этак 82-го -83-го, но тем не менее.
    Идея с портом игры на МК тоже прикольнула. Такой пример поразил бы многих новичков. Дескать — можно свою консольку сделать. По себе помню, что в свое время меня поражала даже мысль о том, что можно ЖК-дисплей подключить к МК и что-то вывести в него.
    А так, на мой взгляд, слишком пафосно подано дело это. Молодцы, что игру портировали, но, откровенно говоря, то что она у них работает и работает без тормозов — вызывает улыбку. Я бы удивился, если было бы иначе. Это тогда свидетельствовало бы об деградации уровня программистов — не смочь портировать игрушку 30-летней давности на 50-ти мегагерцовый проц, которая в свое время прекрасно работала с 3.5 мегагерцовым процессором и медленной ОЗУ. Запустили бы они на ней, хотя бы, Wolfenstein 3d — вот это было бы прикольно. А 2d игрушка совсем не демонстрирует возможностей контроллера.


    1. MaxFilippov
      13.05.2015 20:43

      Я не заострил внимание на характеристиках микроконтроллера сразу… 50 баксов за «Атмегу» с в 2,5 раза большей частотой и 12-ти разрядным АЦП — это сильно:) Конечно, может быть, они какие-нибудь супер экономичные и, хотя бы, умеют с плавающей точкой работать, но сейчас и не 96-й год.Тогда да — чем-то круче Space Invaders сдесь не пахнет. 50 баксов это отладка с stm и большим дисплеем.


      1. uuuulala Автор
        13.05.2015 22:26

        Про лицензионные отчисления — интересно) вспоминается история основателя тетриса.

        Если говорить про контроллер и Space Invaders, то замечу, что речь таки не о портировании игры и не о том удобный ли джойстик получается из отладочной платы. Это просто иллюстрирующий пример, который оживляет классический спор на тему жива ещё 8051 или уже мертва.


      1. uuuulala Автор
        13.05.2015 22:38

        На 25-мегагерцовых EFM8SB20F64 эта игрушка тоже далжна работать, кстати ;)

        А про цены вопрос более спорный… Я не то чтобы акула рынка, но мне цена 2К рублей (чуть больше, ладно) за такую платку со склада и у официального поставщика показалась хорошим предложением (с китайскими связываться — это на любителя). Но касательно цен я с удовольствием услышу контрпримеры!


        1. MaxFilippov
          13.05.2015 23:50
          -2

          Смотрите в сторону stm discovery.
          Мк нормальный. Просто, грубо говоря — сейчас такими характеристиками никого не удивить. Практически минимум, того, что сейчас есть в мире МК. Но этого будет вполне достаточно для огромного пласта задач. Вопрос только неоправданной цены за макетку и пафоса.


          1. uuuulala Автор
            14.05.2015 08:52

            Спасибо за ваш совет вообще за внимание.
            И всё же вы не совсем правильно меня поняли, никто никого не собилался удивлять (уж придумали бы что-то покруче :) ). Смысл скорее напомнить, что для подобных задач не нужно возможностей тех же STM32, а достаточно простого, дешевого контроллера 8051. В этом мы с вами как раз согласны!)


  1. Dark_Purple
    14.05.2015 10:50

    Ну и зачем они переименовали свои 51е процы в EFM…
    Лично для меня привлекательность EnergyMicro почему-то упала после покупки их Silabs'ом. Вобщем грустно наблюдать все эти слияния и поглощения.


    1. uuuulala Автор
      14.05.2015 11:17

      Что Вы, никто никого не переименовывал, C8051Fxxx как были, так и остались.
      EFM8 — это новая, независимая линейка, с EFM32 их роднят только средства поддержки разработки — платы похожего форм-фактора и инфраструктура программных средств разработки (Simplicity Studio).

      Про то что привлекательность бренда падает после интеграции в бОльшую по размеру компанию я слышала много раз, но никто, черт возьми, не приводит никаких рациональных аргументов… Эти «ну всё, теперь всё как всегда испортится» выглядят как пустые причитания… Не принимайте на свой счет, но это правда очень странно для меня.


      1. Dark_Purple
        14.05.2015 17:48

        Что Вы, никто никого не переименовывал, C8051Fxxx как были, так и остались.

        Хорошо, а зачем называть EFM8 якобы новую серию, если принципиально ничего не изменилось, как было i8051 так и осталось.
        И ещё «выпад» в сторону Silabs, я не смог найти на их сайте ссылок для скачивания примеров исходного кода, предлагается качать гигабайты Simplicity Studio ради пары десятков строчек кода. У EnergyMicro можно было скачать простой ZIP акхив с искомым примером либо скачать Simplicity Studio.


        1. uuuulala Автор
          14.05.2015 19:34

          И ещё «выпад» в сторону Silabs, я не смог найти на их сайте ссылок для скачивания примеров исходного кода, предлагается качать гигабайты Simplicity Studio ради пары десятков строчек кода.

          да, это так и это отвратительно((

          з.ы. аргумент против слияний засчитан, спасибо! ;)


        1. uuuulala Автор
          15.05.2015 16:04
          +2

          Dark_Purple, нашлись zip-ы с примерами, но только для EFM32:
          1) Заходите на сайте SiLabs на страничку какой-нибудь отладочной платы, например вот этой
          2) Внизу страницы ссылка Board Support Library and Example Code

          Но для EFM8 таких ссылок нет, может тоже добавят…


          1. Dark_Purple
            15.05.2015 21:02

            Ура, то что нужно, спасибо!


  1. Dark_Purple
    14.05.2015 17:47

    del