Микроконтроллеры семейства EFM8 Bee с каждым днем становятся всё популярнее и уже накопился список частых вопросов, на которые приходится регулярно отвечать. Решил разместить их здесь, чтобы люди, которые стесняются задавать вопросы инженерам компании «ЭФО», могли найти ответы через поисковик.

Для читателей, кто не знаком с микроконтроллерами EFM8 Bee, вкратце изложу основные особенности этих кристаллов, ответив тем на уже наверняка возникший вопрос: Чем особенны микроконтроллеры EFM8 Bee?

Микроконтроллеры EFM8 Bee представлены четырьмя семействами «пчел»: Busy Bee, Sleepy Bee, Universal Bee и Laser Bee, каждая из которых имеет свои отличительные особенности. В основу
EFM8 Bee заложено процессорное ядро CIP-51 с системой команд 51-го процессора, в отличие от которого более 70% команд выполняются за 1-2 такта системной тактовой частоты — такое же как в известных микроконтроллерах C8051Fxxx.

Не вдаваясь в хитросплетения брендинга и аналогии с пчелами, рассмотрим ключевые особенности этих кристаллов и их технические характеристики:

1. Серия EFM8 Busy Bee


Самая бюджетная серия кристаллов, где ключевой акцент ставится на стоимость микросхем. Стоимость самого дешевого микроконтроллера — 0,21$ без учета НДС (0,25$ с учетом НДС) на проекты с годовым объемом от 10 тыс. шт.

Серия подразделяется на три линейки, суммировав которые можно выделить следующие характеристики:
  • максимальная производительность до 50 MIPS на тактовой частоте до 50 МГц;
  • Flash-память: до 64 кБайт;
  • ОЗУ: до 4352 Байт;
  • линий ввода/вывода общего назначения: до 29;
  • АЦП: 12 бит с максимальной частотой дискретизации до 350 тыс. отсчетов в сек.;
  • до четырех 12-разрядных ЦАП;
  • понижающий регулятор напряжения 5В > 3,3В.

А что же предлагается за заявленные 0,21$?

По цене 0,21$ (без учета НДС) предлагается микросхема EFM8BB10F2G-A-QFN20, которая включает:
  • процессорное ядро с производительностью до 25 MIPS на тактовой частоте 25МГц;
  • Flash-память 2 кБайта;
  • ОЗУ 256 Байт;
  • два встроенных тактовых генератора на частоты 24,5 МГц и 80 кГц;
  • интерфейс SMBus / I2C;
  • интерфейс SPI;
  • интерфейс UART;
  • 16 линий ввода/вывода общего назначения;
  • 3-канальный программируемый массив счетчиков;
  • четыре 16-битных таймера/счетчика;
  • два аналоговых компаратора со встроенным ЦАП для гибкой установки порогов;
  • 12-разрядный АЦП с мультиплексором на 15 каналов, источником опорного напряжения и датчиком температуры;
  • 16-разрядный блок CRC;
  • встроенный загрузчик по UART.


2. Серия EFM8 Sleepy Bee


Серия кристаллов, ориентированная на приложения с батарейным питанием. Имеет сходные параметры энергопотребления с 32-разрядными микроконтроллерами EFM32 этого же производителя, но не реализованы «интеллектуальные» режимы работы и значительно меньше периферии. Выгода EFM8 Sleepy Bee состоит в меньшей стоимости кристаллов и более простом их освоении.

Серия подразделяется на две линейки и имеет следующие отличительные особенности:
  • максимальная производительность до 25 MIPS на тактовой частоте до 25 МГц;
  • аппаратный контроллер сенсорных клавиатур;
  • ток потребления в активном режиме: 88 мкА/МГц на тактовых частотах от 14 МГц;
  • ток потребления в режиме сна с часами реального времени (тактирование от внутреннего генератора): 0,3 мкА при 1,8В и 0,5 мкА при 3,6В;
  • ток потребления в режиме сна с пробуждением от сенсорной кнопки: 1 мкА (среднее значение);
  • время пробуждения не превышает 2 мкс при использовании внутреннего генератора.

Аналоговая и цифровая периферия аналогична EFM8 Busy Bee.

О ценах.
Младшая микросхема EFM8SB10F2G-A-QFN20, аналогичная по «начинке» минимальному кристаллу из серии EFM8 Busy Bee, предлагается по цене 0,32$ + НДС.
Более функциональная и в более удобном для многих корпусе QSOP24 микросхема EFM8SB10F8G-A-QSOP24 с 8 кБайт Flash-памяти и 512 Байт ОЗУ предлагается по цене 0,48$ + НДС
Цены действительны для проектов с годовым потреблением порядка 10 тыс. шт. в год.

3. Серия EFM8 Laser Bee


Серия кристаллов EFM8 Laser Bee ориентирована на приложения с аналоговыми измерениями — кристаллы этой серии снабжены 14-разрядным АЦП, который обеспечивает типовое значение сигнал/шум + искажения (SNDR) на уровне 72 дБ, общие гармонические искажения (THD) -74 дБ и динамический диапазон, свободный от гармоник (SFDR) 74 дБ. Помимо этого, кристаллы EFM8 Laser Bee применимы в приложениях, где требуется недорогой микроконтроллер с высокой рабочей тактовой частотой.

Характеристики кристаллов EFM8 Laser Bee в сухом изложении следующие:
  • максимальная производительность до 72 MIPS на тактовой частоте до 72 МГц;
  • 14-разрядный АЦП последовательного приближения с частотой дискретизации до 900 тыс. отсчетов в секунду с возможностью организации непрерывного сбора данных по всем каналам АЦП без участия процессорного ядра;
  • два либо четыре 12-разрядных ЦАП с возможностью генерации комплементарных синусоидальных сигналов и сигналов произвольной формы;
  • два аналоговых компаратора с перестраиваемым соотношением «время реакции»/«энергопотребление» и гибкой схемой выбора входных сигналов;
  • встроенный калиброванный датчик температуры, обеспечивающий в базовом исполнении измерения с погрешностью в пределах ±3°C, а с применением описанных производителем методик – в пределах ±0,2°C;
  • диапазон рабочих температур всех кристаллов в серии от -40°C до +105°C.

И уникальность этой серии заключается в сочетании представленных характеристик и цены.

Для примера
В «минимальной комплектации» представлена микросхема EFM8LB10F16E-B-QFN24, которая имеет 16 кБайт Flash-памяти и 1.25 кБайт ОЗУ. Её цена составляет 0,54$ + НДС. Более универсальный вариант EFM8LB10F16E-B-QFP32 в корпусе QFP32 предлагается по цене 0,70$ + НДС.
Наиболее функциональный вариант из серии — EFM8LB12F64E-B-QSOP24 — с 64 кБайтами Flash-памяти, 4.25 кБайтами ОЗУ и четырьмя ЦАП доступен по цене 0,94$ + НДС.
Цены из расчета на 10 тыс. шт. в год.

4. Серия EFM8 Universal Bee


Название серии происходит из названия интерфейса USB, которым снабжены кристаллы этой серии.

Среди особенностей линейки можно выделить:
  • интерфейс USB Device с режимом пониженного энергопотребления;
  • стабильный генератор тактовой частоты, обеспечивающий работу интерфейса USB без внешнего кварца во всем диапазоне рабочих температур и напряжений питания;
  • регулятор напряжения 5 В > 3,3 В для обеспечения работы устройства от шины USB без использования дополнительного регулятора напряжения;
  • функцию распознавания подключения к зарядному устройству согласно спецификации USB-BCS 1.2.

Режим пониженного энергопотребления интерфейса USB в EFM8 Universal Bee необходим для работы с автономными устройствами, обмен данными с которыми должен происходить без взаимной нагрузки по питанию.

Цены радуют
Устройство с минимумом внешних компонентов (без внешнего кварца и регулятора напряжения) можно построить на микросхеме EFM8UB10F8G-C-QFN20 ценой 0,43$ + НДС, которая помимо интерфейса USB снабжена 8 кБайтами Flash-памяти, 2304 Байтами ОЗУ, 12-разрядным АЦП и типовыми блоками микроконтроллера, которые есть и в других сериях EFM8.

Если говорить обо всех микроконтроллерах EFM8 Bee, то в целом можно отметить, что «начинка» кристаллов всех серий достаточно насыщенна, в чем наглядно можно убедиться в сводной таблице под спойлером.

Сводная таблица EFM8
Сводная таблица EFM8


А еще есть ряд немаловажных особенностей, присущих микроконтроллерам всех серий:
  • наличие цифрового коммутатора (crossbar), обеспечивающего определенную гибкость при проектировании печатной платы за счет изменения назначения коммутации внутренней периферии на внешние выводы;
  • наличие блоков конфигурируемой логики, каждый из которых обеспечивает возможность реализации до 256 функций комбинаторной логики с подключением внешних сигналов и сигналов внутренней периферии;
  • уникальный 128-битный ID каждого процессора, упрощающий задачу сериализации изделий с использованием EFM8 Bee;
  • запрограммированный во Flash-память загрузчик, работающий по одному из имеющихся на кристалле интерфейсов.

Микроконтроллеры серий Busy Bee и Sleepy Bee представлены как в промышленном температурном диапазоне, так и в автомобильном исполнении, соответствующие требованиям стандарта AEC-Q100.

Корпуса весьма компактны — самый большой кристалл выпускается в 48-выводном корпусе QFP:


Разбивка корпусов по семействам и артикулам
Корпуса с одинаковым названием (QFN24 и QFN32) представлены в разных размерах — отмечено отдельными цветами.



Ну вот, пожалуй, и сложился ответ на первый вопрос «Чем особенны микроконтроллеры EFM8 Bee?» и можно приступить к ответам на типовые вопросы разработчиков, кто решил применить кристаллы этого семейства в своих разработках.

Почему EFM8 значительно дешевле C8051Fxxx, продолжением которых кристаллы EFM8 являются?


Архитектурно EFM8 продолжают линейку C8051Fxxx, но производятся по проектным нормам — 0,18 мкм, т.е. меньшей чем C8051Fxxx, большинство которых производится по технологии 0,35 мкм. Тем не менее, по новым проектным нормам выпускаются серии C8051F7xxx, C8051F8xx, C8051F9xx, цены на которые ниже аналогичных в этом семействе.

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

С чего начать?


Начать освоение EFM8 Bee можно с этапа оценки ключевых возможностей выбранного микроконтроллера. Это можно осуществить на фирменной отладочной плате, которая выпускается для каждой серии EFM8. Стоимость этих плат колеблется в диапазоне от 45$ до 55$ c учетом НДС.

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

В качестве программного средства для большинства этапов разработки с использованием EFM8 и их фирменных отладочных плат оптимально использовать интегрированную платформу разработки Simplicity Studio. Обзор её компонентов представлен в видео материалах на YouTube.

Для оценки выбранного кристалла можно использовать любой из имеющихся ресурсов в Simplicity Studio:
  • загрузить на плату любой из готовых демонстрационных примеров, созданных для демонстрации отдельных периферийных блоков и режимов работы кристалла;
  • использовать готовый пример в исходных кодах, модифицировав требуемым образом;
  • создать собственный проект с использованием графического конфигуратора или без него.


Какую среду разработки использовать? Есть ли бесплатный компилятор языка С?


Предлагаемый производителем инструмент – упомянутая выше платформа разработки Simplicity Studio. После просмотра видео демонстраций начинать её освоение значительно проще.
На день написания статьи доступны для скачивания на сайте производителя две версии Simplicity Studio: версии 3 и новой — версии 4. Версия 3 вызывает меньше трудностей при освоении, но её компоненты более не обновляются, а в версию 4 интегрируются все новые программные компоненты и документация. С каждым новым выпуском Simplicity Studio версии 4 трудностей в работе возникает всё меньше и меньше.

После установки Simplicity Studio любой версии нужно доустановить требуемые компоненты как показано в видеороликах для версии 3 и для версии 4.

В результате будет установлена Simplicity Studio со всеми компонентами, необходимыми для работы. Для EFM8 сюда будет входить профессиональный компилятор Keil, являющийся стандартом де-факто для архитектуры 8051, система команд которой заложена в ядро CIP-51 микроконтроллеров EFM8. Неограниченная лицензия для микроконтроллеров EFM8 Bee предоставляется бесплатно после регистрации на сайте Keil.

Для получения лицензии в Simplicity Studio версии 3 необходимо выйти в форму регистрации после установки компонентов для EFM8 Bee в диалоговом окне “Setup tasks”. Этого может и не потребоваться, если до установки Simplicity Studio уже были установлены лицензии для Keil и они успешно «подтянулись» средой Simplicity Studio. В качестве проверки можно запустить компиляцию любого проекта и посмотреть выходную информацию компилятора – лицензия не требуется, если в окне Output среди последних строк будет запись: «C51 COMPILER V9.53.0.0 — SN: ххххх-хххххх».

В Simplicity Studio версии 4 диалоговое окно получения лицензии появится при первой компиляции проекта, в случае, если компилятор в составе Simplicity Studio не найдет уже имеющуюся лицензию, которой будет достаточно для работы.

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

Какие есть программные библиотеки?


Для всех линеек кристаллов EFM8 Bee предлагается набор библиотек, включающий драйверы для внутренней периферии кристаллов и BSP для поддержки компонентов, размещаемых на фирменных отладочных платах.

При создании проекта с нуля или загрузки его из примера в Simplicity Studio необходимо выбрать SDK последней версии (если их уже несколько), тогда в дальнейшем для добавления в проект нужных модулей можно будет использовать возможности графической оболочки Simplicity Studio – расставив галочки напротив требуемых компонентов в свойствах проекта в разделе [C/C++ Build] > [Project Modules] — как показано на рисунке под спойлером.

Добавление компонентов EFM8 SDK в проект.

Все имеющиеся компоненты в выбранной версии SDK выводятся списком и добавляются/убираются галочками.


Документация на EFM8 SDK представлена онлайн-версией на сайте devtools.silabs.com.

Где найти документацию на микросхемы, отладочные средства, программное обеспечение?


Самый полный и свежий список документации с фильтрацией доступен на сайте производителя. Здесь список включает в себя документацию, созданную не только для кристаллов серий EFM8, но и сходных по внутренней организации микроконтроллеров C8051Fxxx.

Для облегчения поиска документации на используемую микросхему и отладочный комплект, производитель также организовал доступ к ним непосредственно из оболочки Simplicity Studio. Но на момент написания статьи есть некоторые оговорки на этот счет:
  • в Simplicity Studio версии 3 доступ к документации и её поиск организован удобно, а сама документация размещается локально — на жестком диске компьютера. Для доступа к документации на выбранную микросхему и отладочных комплект, руководствам по применению и примерам программ предусмотрены соответствующие кнопки в главном окне Simplicity Studio. В этом способе доступа есть единственный минус – обновление документации в третьей версии с момента выхода четвертой версии Simplicity Studio более не происходит;
  • в Simplicity Studio версии 4 поиск любой документации осуществляется через поисковую строку в верхней части главного окна Simplicity Studio. Казалось бы простой путь, но он для многих не очевиден – окно поиска слабо выделяется среди остальных компонентов. Подробнее это можно увидеть в видеоролике от производителя. При первом открытии требуемого документа он скачивается из сети Интернет, а при последующем доступе – локальная версия.


Как отладить проект на своём макете?


Отладка проекта на собственном макете возможна с использованием фирменной отладочной платы для любой серии EFM8 либо c помощью внутрисхемного эмулятора/программатора USB Debug Adapter, стоимостью 55$, который уже много лет выпускается для кристаллов C8051Fxxx и у кого-то даже имеется в “закромах”.

Правильное соединение сигнальных линий нужно делать согласно руководству по применению AN124.

Здесь для отладки внешнего процессора необходимы сигналы отладочного интерфейса C2 — линии C2D, C2CK и GND. Вывод Reset в EFM8 всегда одновременно является сигнальной линией C2CK – так задуман интерфейс C2 из соображений экономии портов ввода/вывода. Для устойчивой работы интерфейса соединительные провода нужно делать как можно короче.

Чтобы не изобретать питание для собственного макета, можно задействовать линии питания отладчиков – у USB Debug Adapter’а это 5В с 10-го контакта разъема, а у отладочной платы – 3,3В и 5В с разъема EXP.

При отладке собственного макета с помощью фирменной отладочной платы необходимо сконфигурировать её для работы с внешним процессором – для этого нужно в утилите Kit Manager в Simplicity Studio версии 3 или главном окне Simplicity Studio версии 4 в разделе Debug Mode выставить режим OUT — при этом должен загореться светодиод рядом с разъемом DBG.

Есть еще один, нестандартный путь для работы с микроконтроллерами EFM8 на собственном макете – для отладки использовать фирменную отладочную плату для микроконтроллеров EFM32, подключив сигналы C2D и C2CK микроконтроллера к 7 и 9 контактам разъема Debug Out отладочной платы, а также соединив линию питания и общий провод с линией VTARGET и GND этого разъема. Далее необходимо отладочную плату сконфигурировать в режим Debug: OUT и в свойствах соединения вручную указать целевой микроконтроллер.

Фирменная отладочная плата работает некорректно. Мне не удается установить связь с процессором. Что делать?


Первоочередной причиной любых проблем в работе отладочных плат для EFM8 является устаревшая «прошивка» отладочной платы. Для её обновления необходимо:
  • в версии 3 Simplicity Studio запустить Kit Manager и после предложения обновить прошивку платы согласиться;
  • в версии 4 Simplicity Studio в главном окне сверху будет выведена текущая версия прошивки и рядом ссылка для закачки последней её версии – после её закачки, при наличии новой версии прошивки, будет предложено её обновление на плате.

Отсутствие связи с платой может говорить о нарушении её прошивки. В этом случае необходимо выполнить инициализацию плату и обновление прошивки в соответствии с инструкцией по «оживлению» фирменных плат для микроконтроллеров EFM8 и EFM32.

В случае, если связь с платой есть, а с микроконтроллером на плате связь установить не удается, то причиной может быть работа программы в микроконтроллере, которая сразу после включения питания переводит его в состояние в котором процессор не может отвечать на запросы отладчика. Для примера, перевод микроконтроллера в глубокий режим сна либо неправильная настройка тактирования приводит к отказу работы отладчика с процессором. Для оживления микроконтроллера в таком случае понадобится USB Debug Adapter. Алгоритм действий описан в базе знаний на сайте community.silabs.com.

В случае, если в Simplicity Studio с помощью USB Debug Adapter’а выполнить стирание не удается, то можно проделать это в приложении Flash Programming Utilities, где на закладке Flash Erase нужно выполнить операцию стирания всего содержимого Flash-памяти. Алгоритм работы функции стирания в этой программе работает надежнее, нежели в других приложениях для EFM8 и C8051Fxxx, и позволяет вывести микроконтроллер из глубокого «коматозного» состояния.

У меня что-то [всё, ничего, не пойму что] не работает. Где искать ответы на вопросы?


Для микроконтроллеров EFM8 наибольшее количество информации можно найти на сайте сообщества, организованного производителем по адресу community.silabs.com. Здесь есть как база знаний от производителя, так и ответы на вопросы от пользователей по микросхемам и программному обеспечению, на которые отвечают в том числе сотрудники технической поддержки производителя.

Как программировать микроконтроллеры EFM8 в серийном производстве?


При выпуске приборов в небольшой серии микросхемы можно программировать в готовом изделии с использованием внутрисхемного эмулятора/программатора DEBUGADPTR1-USB, стоимостью 55$. В качестве программной оболочки можно использовать набор утилит Flash Programming Utilities либо Production Programmer. Flash Programming Utilities может работать в графическом режиме в готовой оболочке либо в режиме командной строки, что полезно в случаях создания сценариев программирования, помещаемых в .bat-файл.

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

При объемах серийного производства, когда трудозатраты и стоимость накладных расходов на программирование превышают разумные значения, можно воспользоваться услугой программирования кристаллов на производстве Silicon Labs. Стоимость услуги в партиях от 5000 шт. составляет 0.06$/шт. — 0.1$/шт. с учетом НДС в зависимости от объема Flash-памяти.

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

И еще остается классический путь — использование параллельного программатора для программирования микросхем до установки на плату. Программаторы фирмы Фитон серии ChipProg поддерживают всю линейку микроконтроллеров EFM8.

Это, пожалуй, весь список основных вопросов, которые возникают у большинства разработчиков, кто начинает работу с микроконтроллерами EFM8 Bee. Прочие вопросы можно адресовать нам — специалистам компании ЭФО либо найти ответы самостоятельно на сайте community.silabs.com.