8-разрядные микроконтроллеры и арканоид

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). Изящное исполнение игры на простом кристалле напоминает разработчику, что счастье не в разрядности.

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

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

[embedded content]

Проект Space Invaders написан на Си. Производительности контроллера хватает на выполнение всех необходимых вычислений в реальном времени перед отрисовкой каждой линии (на работу с буфером ЖКИ не хватает памяти). Вычисления выполняются в рамках решения следующих задач:

расчет передвижений и состояний захватчиков; расчет траекторий и состояний снарядов, выпускаемых захватчиками; расчет положения игрока; обнаружение попадания снарядов в игрока и столкновений игрока со снарядами; преобразование результатов вычислений и передача соответствующих команд на ЖКИ (используется интерфейс SPI); генерация ШИМ-сигнала для управления трехцветным светодиодом (он служит индикатором уровня опасности, т.е. близости захватчиков к позиции игрока); определение положения джойстика через АЦП; определение нажатия на механическую кнопку (нажатие кнопки — выстрел по захватчикам) с использованием прерываний по линии ввода/вывода. Игра запускалась мной лично, работает всё действительно плавно, без лишних задержек.Отладочный набор SLSTK2021A стоит в РФ порядка 40–50 долларов, а всё программное обеспечение распространяется SiLabs-ом бесплатно. Среда разработки, документация, демо-примеры, утилиты для конфигурирования периферии и измерения энергопотребления «упакованы» в программную платформу Simplicity Studio (дистрибутив (Windows, MAC, Ubuntu) доступен на silabs.com).

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

© Habrahabr.ru