№6 / 2017 Статья 3 Тестирование микроконтроллеров – разоблачение ULPBench

Франк Рименшнайдер

Какой микроконтроллер действительно обладает высокой энергоэффективностью и подходит для малопотребляющих приложений? Рейтинг ULPBench, разработанный консорциумом EEMBC, призван прояснить данную ситуацию. Однако, к сожалению, он не всегда учитывает реальные условия эксплуатации микроконтроллеров. Журнал DESIGN&ELECTRONIK провел собственное независимое тестирование. В результате история малопотребляющих контроллеров (ULP) если не полностью, то как минимум частично должна быть переписана.

Тестирование ULPBench основано на двух основных положениях. Во-первых, для сравнительной оценки эффективности используются различные тесты с одинаковой рабочей нагрузкой и возможностью запуска на 8-битных, 16-битных, 32-битных микроконтроллерах (МК). Эффективность работы МК оценивается как при активном режиме, так и при нахождении в режимах пониженного потребления, которые используются с учетом особенностей реальных приложений. Во-вторых, тестирование подразумевает использование аппаратной системы EnergyMonitor от EEMBC и набора программного обеспечения ULPBench. Функционал EnergyMonitor позволяет запускать ядро тестового ПО ULPBench на исследуемом микроконтроллере. Исходный код программного ядра ULPBench поставляется EEMBC (файлы находятся в директориях benchmark, workloads, TES, platforms).

Фиксированные условия испытаний: 3 В и 25°С

Первое ограничение при традиционной оценке рейтинга ULPBench заключается в использовании фиксированного напряжения питания 3,0 В, хотя большинство малопотребляющих микроконтроллеров способно работать с напряжениями вплоть до 1,8 В. Несложно догадаться, что при снижении напряжения питания уровень потребления также упадет, а значит – можно ожидать более высокого значения рейтинга ULPBench.

Второе ограничение при оценке рейтинга ULPBench заключается в использовании фиксированного значения температуры окружающей среды, как правило, 25°С. Для этой температуры производители микроконтроллеров приводят типовые значения характеристик, и при этой же температуре EEMBC проводит тестирование. Однако если учесть, что, например, интеллектуальный счетчик энергии обычно работает при температурах 50…60°С, а для промышленных приложений те6мпература может достигать 80…85°С, то значения рейтинга ULPBench, предоставленные на сайте EEMBC, могут использоваться только ограниченно.

Тестирование ULPBench для напряжений питания 1,8…3,0 В

На первом этапе независимого исследования DESIGN&ELECTRONIK была проведена оценка рейтинга ULPBench для различных контроллеров при пониженных напряжениях питания. “Сердцем” аппаратной части (рисунок 1) стала измерительная система USB 6353 от National Instruments со следующими характеристиками:

  • 32 аналоговых входа; 1,25 Мвыб/с с одним каналом и 1 Мвыб/с при многоканальных измерениях; 16-битное разрешение; ±10 В;
  • 4 аналоговых выхода; 2,86 Мвыб/с; 16-битное разрешение; ±10 В;
  • 48 цифровых входов-выходов;
  • 4 х 32-битных таймеров/счетчиков для ШИМ, энкодеров, генераторов частоты, счетчиков событий, и так далее.
Рис. 1. Схема измерения уровня потребления. Вместо системы EnergyMonitor, разработанной Texas Instruments для EE MBC, использовался измерительный комплекс USB 6353 от National Instruments

Рис. 1. Схема измерения уровня потребления. Вместо системы EnergyMonitor, разработанной Texas Instruments для EE MBC, использовался измерительный комплекс USB 6353 от National Instruments

ПО было разработано с помощью среды SignalExpress от NI [1]. SignalExpress предоставляет доступ к более чем 850 функциям измерения сигналов, фильтрации, частотных и временных преобразований. Так как система является событийно-ориентированной, то управлять ею можно напрямую с клавиатуры и мыши. Кроме того, среда SignalExpress совместима с дополнениями LabView для специальных приложений с повышенной аппаратной интеграцией. Схема подключения отладочных плат с МК на борту достаточно проста – напряжение питания снимается с помощью резистора 30 Ом (рисунок 2). Фотография рабочего стенда представлена на рисунке 3. Платы подключаются к измерительному комплексу от NI точно так же, как и в случае с использованием системы EnergyMonitor от EEMBC.

Рис. 2. Схема измерения потребляемого тока

Рис. 2. Схема измерения потребляемого тока

Испытания, проведенные при напряжении питания 3,0 В, продемонстрировали максимальное отклонение в 5% по сравнению с результатами, полученными при использовании системы EnergyMonitor от EEMBC. Если переводить это на баллы ULPBench, то, например, для MSP432, при активном DC/DC-преобразователе, было получено значение 158,9 баллов, в то время как EnergyMonitor выдал значение 152,5. Для большинства других контроллеров отклонение лежало в диапазоне 0,1…2%. Выявленные различия никоим образом не влияют на объективную картину, которая демонстрирует снижение уровня потребления при уменьшении напряжения питания или на определение рейтинга ULPBench при пороговом значении напряжения, после которого МК перестает стабильно работать.

Рис. 3. Рабочее место для проведения тестирования ULPBench

Рис. 3. Рабочее место для проведения тестирования ULPBench

Результаты

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

Таблица 1. Полученные значения рейтинга ULPBench для тестируемых микроконтроллеров*

Наименование Версия Vdd, В
3 2,9 2,8 2,7 2,6 2,5 2,4 2,3 2,2 2,1 2 1,9 1,8
STM32L433 172,58 180,54 188,44 198,01 208,42 217,35 229,34 242,14 254,97 270,26 287,25 305,97 325,78
STM32L476 149,48 156,87 164,72 172,42 181,03 188,82 199,23 209,81 223,32 234,01 246,85 261,45 280,15
SAML21 Rev A 147,08 155,3 163 168,57 174,9 180,16 186,21 196,25 202,28 211,46 220,41 229,81 240,11
STM32L0 129,99 135,74 140,92 147,47 154,84 161,04 167,41 175,93 184,55 192,99 203,35 214,75 226,67
SAML21 Rev B LPEFF off 127 136 142,24 148,49 154,88 161,71 167,2 172,78 180,89 189,28 199,71 207,31 215,79
MSP432 LDO 117,88 124,17 128,4 134,88 140,59 147,09 154,45 161,41 169,42 178,64 188,03 197,58 208,82
Kinetis KL27 79,77 83,27 84,3 87,97 92,3 96,41 100,43 104,78 108,82 113,94 119,97 126,09 133,56
MSP430FR5969 120,5 125,17 129,96 135,25 140,73 146,5 152,89 159,41 167,06 175,17 184,07 194,32 N.A.
PIC24FJ64GA202 70,84 73,93 77,42 80,56 83,7 87,18 90,84 95,11 0,69 104,15 110,39 121,84 N.A.
SAML21 Rev B LPEFF on 137,33 142,68 151,43 154 158,41 167,06 170,95 178,39 183,21 187,16 186,01 N.A. N.A.
EFM32 ZeroGicko 98,01 103,63 108,65 113,99 118,49 124,19 129,99 136,51 142,59 149,79 157,06 N.A. N.A.
EFM32 GiantGicko 58,68 61,55 64,33 67,02 70,01 73,46 76,91 80,42 84,51 88,73 94,14 N.A. N.A.
MSP430FG4618 32 43 36 37,6 40 42 45 48 50 53 57,5 N.A. N.A.
Apollo 329,92 339,3 354,95 367,05 384,94 395,18 410,63 436,62 459,51 472,42 N.A. N.A. N.A.
EFM32 PearlGicko 106,25 110,44 112,29 113,51 114,85 115,82 115,63 119,31 122,33 127,06 N.A. N.A. N.A.
EFM32 WonderGicko 74,59 79,21 82,91 86,44 90,01 94,02 98,27 102,81 107,8 113,42 N.A. N.A. N.A.
MSP432 DC/DC 153,99 161,97 166,6 171,85 178 183 190,11 193,05 199,68 N.A. N.A. N.A. N.A.
* – Не все контроллеры способны работать с напряжением питания до 1,8 В. «N.A» означает, что код ULPBench при данном напряжении выполняется некорректно.

STM32L433 с ядром ARM Cortex-M4 демонстрирует максимальный рост значения ULPBench при уменьшении напряжения: от 172,58 баллов при 3,0 В до 325,78 баллов при 1,8 В, то есть больше на 153,2 балла. Кроме того, STM32L433 является лидером рейтинга при напряжении питания более 2,1 В.

Контроллер STM32L0 с ядром ARM Cortex-M0+ отметился ростом от 129,99 баллов до 226,67 баллов, тем самым заняв четвертое место в условиях пониженного напряжения.

При исследовании характеристик SAML21 обнаружился любопытный факт. Если версия контроллера SAML21 rev A с ядром ARM Cortex-M0+ ожидаемо показала рост от 147,08 до 240,11 баллов, то для версии SAML21 rev B все было не так однозначно. Для работы с напряжениями питания до 1,8 В необходимо перевести контроллер в режим LPEFF со сбросом соответствующего бита управления в состояние «0». Однако прежний уровень рейтинга оказывается недостижимым. Как видно из таблицы 1, значение ULPBench оказалось ниже официально заявленного значения. Регулятор напряжения демонстрирует большую надежность, если указанный бит установлен («1»), но вместе с этим при напряжениях ниже 2,1 В (по документации 2,5 В) контроллер работает нестабильно.

Характеристики микроконтроллеров производства компании EnergyMicro (сейчас она поглощена компанией SliconLabs) с ядром ARM Cortex-M0+ (семейство Zero Gecko), ядром ARM Cortex-M3+ (семейство Giant Gecko) и ядром ARM Cortex-M4 (семейства WonderGecko и Pearl Gecko) оказались несколько ниже, чем у конкурентов. По сравнению с другими ARM-контроллерами они демонстрируют более скромные показатели как по уровню прироста эффективности при снижении напряжения, так и по абсолютным показателям в целом. При уменьшении напряжения питания менее 2 В, – а для WonderGecko и Giant Gecko менее 2,1 В, – наблюдается падение эффективности, что, впрочем, предсказуемо, с учетом используемого технологического процесса 180 нм от TSMC.

Скромные результаты в абсолютных величинах, по сравнению с лидерами рейтинга, показали контроллеры NXP Kinetis KL27Z с ядром ARM Cortex-M0 и PIC24 с фирменным 16-битным ядром. Однако они позволяют использовать напряжения питания вплоть до 1,8 В (NXP) и 1,9 В (Microchip) при приемлемом повышении эффективности как минимум в процентном отношении.

В тестировании приняли участие три представителя от Texas Instruments, при этом наше особое внимание привлек микроконтроллер MSP432 с ядром ARM Cortex-M4. При работе с включенным DC/DC-регулятором он демонстрирует вполне достойные значения рейтинга ULPBench, однако минимальное напряжение питания при этом ограничено 2,2 В. Дальнейшее снижение напряжения при использовании DC/DC-преобразователя невозможно. Для работы с напряжениями вплоть до 1,8 В необходимо активировать LDO-регулятор, а это приводит к тому, что значение ULPBench сразу сокращается на 25%, что автоматически отбрасывает MSP432 в конец рейтинга среди контроллеров с ядром ARM Cortex-M4.

В сегменте 8-битных систем компания TI была представлена парой микроконтроллеров MSP430: с памятью FRAM и традиционной Flash. Показатели MSP430 с FRAM оказались соизмеримы с MSP432 с ядром ARM Cortex-M4 при работе c LDO. Для МК MSP430 с Flash-памятью были получены следующие показатели: рейтинг ULPBench составил 32 бала при 3,0 В и 57,5 баллов при 2,0 В. Это в пять раз меньше, чем, например, у STM32L433. (Прим. переводчика: Стоит отметить, что семейство микроконтроллеров MSP430 является единственной представленной в ULPBench линейкой, предназначенной для применения в простых 8-битных приложениях. Совершенно ожидаемо, что уровень требуемой производительности приложений такого рода находится значительно ниже вычислительных возможностей ядра Cortex-M4.И прямое сравнение производительности двух данных архитектур является не совсем корректным.)

Кроме более или менее известных микроконтроллеров в тестировании принял участие Ambiq Micro Apollo. Архитектура этого контроллера подразумевает работу ядра с напряжениями меньшими, чем значение порогового напряжения включения. То есть переключение транзисторов происходит при напряжениях меньших, чем пороговые напряжения [2]. Возможность работы в таком режиме была открыта несколько десятилетий назад, однако производственные ограничения не позволяли перевести эту технологию из разряда лабораторных исследований в массовое производство. Пока достоверно неизвестно, каким образом данный стартап смог самостоятельно решить все технологические проблемы с точностью воспроизведения пороговых напряжений. Тем не менее, при тестировании получены следующие результаты: 329,9 баллов при 3,0 В и 472,42 балла при 2,1 В. При меньших напряжениях чип переходит в состояние сброса (reset).

На рисунке 4 в виде графиков представлены данные из таблицы 1. В диапазоне напряжений 3,0…2,2 В значение ULPBench с различной скоростью увеличивалось для всех микроконтроллеров. Чтобы подчеркнуть, какие контроллеры способны работать при малых значениях напряжений питания, основное внимание уделяется диапазону ниже 2,3 В.

Рис. 4. График отображает результаты, полученные при проведении испытаний

Рис. 4. График отображает результаты, полученные при проведении испытаний

Возникает законный вопрос, почему мы не включили в перечень исследуемых микроконтроллеров RL78 от лидера рынка компании Renesas. Ответ прост – мы не получили тестовый код ULPBench для данной платформы.

Проблемы учета температуры

Как уже говорилось выше, еще одно ограничение ULPBench заключается в использовании фиксированного значения температуры окружающей среды, как правило, 25°С. Для этой температуры производители микроконтроллеров приводят типовые значения характеристик и при этом же значении EEMBC выполняет тестирование. Однако, например, интеллектуальный счетчик энергии обычно работает при температурах 50…60°С, а для промышленных приложений температура может достигать 80…85°С. В итоге данные, предоставляемые на сайте EEMBC в рейтинге ULPBench, могут использоваться только как отправная точка.

Для преодоления данного ограничения мы воспользовались лабораторией климатических испытаний компании STMicroelectronics и провели исследование зависимостей рейтингов ULPBench при увеличении температуры. Так как время пребывания в лаборатории было ограничено, мы не смогли провести полноценное испытание всех контроллеров. Вместо этого мы сосредоточились на тестировании пары контроллеров производства ST, двух Atmel, MSP432 от Texas Instruments и Apollo от Ambiq Micro.

Даже до проведения испытаний было ясно, что энергоэффективность микроконтроллеров будет уменьшаться при увеличении температуры, оставалось лишь решить вопрос насколько сильно. Падение эффективности в основном зависит от типа используемого технологического процесса производства. На рисунке 5 представлены зависимости значений ULPBench тестируемых МК при изменении температуры от 25°С до 85°С для напряжения питания 3,0 В. Первое, что бросается в глаза – это температурная стабильность STM32L0 с ядром ARM Cortex-M0+, выполненным по патентованной технологии с топологическими нормами 110 нм. При температуре 25°С из-за высокого потребления в активном режиме STM32L0 занимает только четвертое место, уступая своим более совершенным соперникам, выполненным по топологическим нормам 90 и 65 нм. Однако конкуренты начинают сдавать позиции из-за экспоненциального увеличения токов утечки при высоких температурах. Уже при температурах выше 70°С STM32L0 становится лидером по значению рейтинга ULPBench.

Рис. 5. Результаты ULPBench при изменении температуры для напряжения питания 3,0 В

Рис. 5. Результаты ULPBench при изменении температуры для напряжения питания 3,0 В

Величина рейтинга ULPBench контроллеров Atmel значительно снижается при нагреве, это особенно заметно в сравнении с представителями ST и TI. Некоторая стабилизация наблюдается только при высоких температурах. Контроллеры MSP432 и STM32L4 демонстрируют относительную стабильность вплоть до 50°С, однако далее наблюдается значительный провал при более высоких температурах.

На рисунке 6 масштаб графика был изменен по сравнению с рисунком 5, чтобы уместить показатели микроконтроллера Apollo производства Ambiq Micro. Для Apollo снижение рейтинга ULPBench оказалось весьма значительным: более 200 баллов при повышении температуры до 85°С. Для сравнения: рейтинг ULPBench у STM32L0 упал менее чем на 30 баллов при аналогичном увеличении температуры от 25°С до 85°С. Однако хуже всего оказывается то, что Ambiq Micro гарантирует работоспособность микроконтроллеров версии rev 3 только для диапазона -10…60°С (рисунок 7).

Рис. 6. Результаты ULPBench при изменении температуры для напряжения питания 3,0 В с отображением показателей Apollo от Ambiq Micro

Рис. 6. Результаты ULPBench при изменении температуры для напряжения питания 3,0 В с отображением показателей Apollo от Ambiq Micro

Мы предполагаем, что технология, работающая с напряжениями ниже пороговых значений переключений, не позволяет воспроизводить достаточно точные значения этих напряжений. То есть, не получается обеспечить стабильность переключений транзисторов при увеличении температуры. Такое положение сохранялось до появления версии rev 4, для которой заявлен рабочий диапазон -40…85°С. Однако расплатой за это стало ухудшение некоторых характеристик, в том числе – снижение рейтинга ULPBench по сравнению с результатом, полученным с микроконтроллерами версии rev 3.

Рис. 7. Фрагмент документа Errata Sheet, сообщающий об ограничении температурного диапазона для Apollo

Рис. 7. Фрагмент документа Errata Sheet, сообщающий об ограничении температурного диапазона для Apollo

На следующем этапе напряжение питания было последовательно снижено до минимально возможного значения. Для всех микроконтроллеров оно составило 1,8 В, за исключением Apollo, для которого требуется как минимум 2,1 В. На рисунке 8 представлены результаты тестирования: чем выше температура – тем меньше преимущество Apollo перед конкурентами. Нам улыбнулась удача и в руках у нас оказался чип с версией rev 3, который стабильно работал вплоть до температуры 85°С, однако не стоит забывать, что Ambiq Micro официально ограничило рабочий диапазон значением 60°С.

Рис. 8. Результаты ULPBench при изменении температуры для напряжений питания 1,8/ 2,1 В

Рис. 8. Результаты ULPBench при изменении температуры для напряжений питания 1,8/2,1 В

Характеристики Ambiq Micro Apollo rev4

Согласно документации на Apollo rev 4, компания Ambiq Micro расширила температурный диапазон до -40…85°С. Однако появились и другие поправки, которые оказались явно не в пользу потребителей. Видимо, технологический процесс производства был изменен для расширения температурного диапазона, что привело к увеличению потребления особенно в спящем режиме. В активном режиме потребление также возросло до 35 мкА/МГц вместо 34 мкА/МГц (rev 3). Для режима глубокого сна без использования часов реального времени (RTC) и 8 кбайт ОЗУ ток остался без изменений для обеих версий и составляет 193 нА. Однако для rev 4 при использовании часов реального времени ток вырос с 198 нА до 419 нА. То есть, потребление RTC у версии rev 3 равно 55 нА, а для rev 4 составляет 276 нА. Если прибавить к этому ток, необходимый для глубокого сна при активном ОЗУ (193 нА), то для версии rev 3 общий ток составит 248 нА, а для rev 4 увеличится до 469 нА.

Также следует отметить, что схема включения микроконтроллеров Apollo rev 4 также изменилась. В частности, на рисунке 9 показано подключение понижающего преобразователя, для которого емкость выходного конденсатора С3 была увеличена с 1 до 2 мкФ, что, по заявлениям Ambiq Micro, сделано для уменьшения уровня шумов. Этот преобразователь используется для питания ядра, Flash, ОЗУ, цифровой и аналоговой периферии. Очевидно, что увеличение номинала конденсатора приведет к росту пиковых токов, по сравнению с rev 3. Также важное отметить, что время пробуждения из глубокого сна возросло с 20 до 43 мкс, то есть возросло более чем в два раза.

Рис. 9. Понижающий преобразователь Apollo версии rev 4 требует конденсатора емкостью 2 мкФ

Рис. 9. Понижающий преобразователь Apollo версии rev 4 требует конденсатора емкостью  2 мкФ

Все перечисленные изменения, бесспорно, ведут к снижению энергоэффективности микроконтроллера, что, впрочем, не было подтверждено из-за отсутствия тестового образца Apollo rev 4. Тем не менее, стоит признать, что для определенных условий, таких как относительно невысокие температуры и напряжение питания более 2,1 В, показатели ULPBench для Apollo являются рекордными.

Silicon Labs – заявленные значения и реальность

Из-за удивительно плохих результатов, полученных при тестировании микроконтроллеров Gecko производства компании Silicon Labs, мы решили уделить им более пристальное внимание. Первая подсказка была получена в официальной документации. Для Giant Gecko при переходе между версиями чипа rev 1.10 и rev 1.30 наблюдается рост потребления в режиме пониженного потребления EM1. В частности, при 3,0 В и частоте тактирования 14 МГц ток увеличился на 48% с 56 мкА/МГц до 83 мкА/МГц. В режиме EM2 потребление при 85°С возросло на 50% с 4 до 6 мкА, так же, как и остальные параметры потребления для всех температур по сравнению с версией rev 1.10, в том числе – при включенном ОЗУ и ядре. При этом, в версии чипа rev 1.3 активным остается только один блок ОЗУ. В итоге даже с учетом предельных значений в rev 1.10 (когда все блоки ОЗУ активны) значение потребления у rev 1.30 оказывается выше.

Особенно неприятное удивление вызывают расхождения между значениями, заявленными в документации, и реальными показателями, полученными в процессе испытаний (таблица 2). Отклонение в 935% является огромным и не может быть ничем оправдано, так как выбор подходящего контроллера пользователь делает на основании данных, предоставленных производителем.

Таблица 2. Разница между значениями, указанными в документации, и реальными показателями, полученными в процессе испытаний для EFM32 Giant Gecko производства Silicon Labs

Режим EFM32GG995.
Заявленное значение, Datasheet
Значение, измеренное
со StarterKit
Отклонение относительно заявленного значения, %
EM0 (48 МГц, активный режим) 219 мкА/МГц 290 мкА/МГц +34,4%
EM1 (48 МГц, активный режим) 80 мкА/МГц 100,2 мкА/МГц +25,3%
EM2 (32 кбайт ОЗУ, с/без RTC), время пробуждения 2 мкс 1,1/0,8 мкА 1,67/1,46 мкА +51,8/+82,5%
EM3 (32 кбайт ОЗУ, без RTC),
время пробуждения 2 мкс
0,8 мкА 1,12 мкА +40%
EM4 c/без RTC,
время пробуждения 163 мкс
400/20 нА 587/207 нА +46,8/+935%

Конкуренты показывают совсем другой уровень ответственности, например, можно похвалить TI за данные, приведенные для MSP432. Для рабочей частоты 24 МГц и питания 3,0 В при активном DC/DC-регуляторе заявлено значение потребления 2200 мкА, а при измерениях получено 2210 мкА, то есть расхождение составило менее 0,5%.

Возвращаясь к Silicon Labs, стоит отметить отклонения от заявленных значений для Pearl Gecko версии rev B. Однако об этих ошибках хотя бы было сказано в перечне исправлений (Errata sheet): в режиме EM2 для микроконтроллеров с 32 кбайт ОЗУ при активном DC/DC и питании от 3,3 В потребление составляет 2,48 мкА вместо 1,4 мкА; в режиме EM3, также при 3,3 В, ток потребления оказался не менее чем 2,1 мкА вместо 1,1 мкА.

Стоит отметить, что компания Silicon Labs не одинока в такого рода погрешностях. Например, микроконтроллер SAM21 версии rev B производства Atmel также не выдает значений ULPBench, заявленных для чипов версии rev A. В документации дается разъяснение, что в режиме Standby mode потребление при 25…85°С без часов реального времени возросло c 0,9/10,5 до 1,2/20,7 мкА, а при активации часов реального времени – с 0,94/11 до 1,4/20,8 мкА.

О том, что еще не было сказано

Кеш-память является очень частой причиной различных споров и обсуждений. Atmel, например, проводит измерения, когда регистр READMODE контроллера памяти NVM установлен в «1», то есть кеш работает в режиме пониженного потребления. В таком случае каждый раз при перезагрузке кеша необходимо вставлять циклы ожидания, что приводит к снижению очков ULPBench при частотах выше 12 МГц. В микроконтроллерах MSP432 кеш-память отсутствует, из-за чего значение ULPBench начинает снижаться при частотах выше 24 МГц. Представители STM32L4 теоретически способны работать без падения производительности до 80 МГц из-за ускорителя ART.

ART (adaptive realtime) – ускоритель, появившийся еще в микроконтроллерах семейства STM32F2. Он теоретически позволяет работать с частотами до 168 МГц без необходимости использования циклов ожидания при выполнении программы из Flash. На практике ART сохраняет эффективность, если кеш не приходится постоянно перезагружать из Flash из-за большого числа условных переходов в коде. В противном случае теоретические величины остаются недостижимыми. Однако в маленьких синтетических тестах, как, например, CoreMark или ULPBench, с преимущественно последовательным кодом, ART без сомнения, демонстрирует все свои преимущества.

Еще один вопрос состоит в том, почему MSP432 производства Texas Instruments, который имеет все необходимые предпосылки для победы в рейтинге (уникальные архитектура ядра и периферия, особый техпроцесс ULP), так и не оказался на верхней ступени рейтинга ULPBench. Одной из причин можно назвать относительно высокие токи при включении: 6,8 мА при работе с DC/DC и 6,56 мА при работе с LDO. У конкурентов они ниже: Atmel SAM21 < 2 мА, STM32L47 x 3,2 мА, Apollo производства Ambiq Micro – 4,7 мА. Вдобавок к этому переключение с DC/DC на LDO происходит за 10 мкс, что относительно долго.

Есть сомнения – тестируй сам

Для разработчиков, выбирающих подходящий малопотребляющий контроллер, документация является всего лишь отправной точкой, так как приведенные в ней данные указываются для конкретных условий, которые каждый производитель выбирает по своему усмотрению и которые могут оказаться достаточно далекими от реальных условий эксплуатации. Если, например, необходимо разработать счетчик с малым напряжением питания для работы при температуры 50…60°С, то вам не удастся избежать самостоятельного измерения реальных значений токов.

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

Литература

  1. Signal Express from National Instruments (www.ni.com)
  2. Ambiq Micros Apollo-MCUs (www.elektroniknet.de)

ST_STM32L452_NE_06_17