Малое потребление L + производительность и периферия F: контроллеры STM32L4 на ядре Cortex-M4

10 марта 2016

ST MicroelectronicsстатьяCortex-M4МикроконтроллерSTM32

Новое семейство микроконтроллеров STM32L4 представляет собой комбинацию высокой производительности и малого потребления. Новые контроллеры получили сверхвысокопроизводительное ядро ARM Cortex-M4, богатую периферию, и, вместе с тем, сохранили гибкость при оптимизации потребления, которая была характерна для более ранних семейств STM32L.

Прошлый год оказался богатым на премьеры для компании STMicroelectronics. Одной из новинок стало семейство малопотребляющих контроллеров STM32L4, построенное на ядре ARM Cortex-M4.

С первого взгляда может показаться, что высокопроизводительные контроллеры STM32L4 не вполне соответствуют философии STM32L. Ранее для STM32L на первом месте всегда стояла задача минимизировать потребление, а уже потом – достичь высокой производительности. Однако при ближайшем рассмотрении оказывается, что микроконтроллеры STM32L4 умудряются сочетать минимальное потребление, высокую производительность и идеально вписываются в сегмент STM32L (рисунок 1).

Рис. 1. Малопотребляющие семейства микроконтроллеров STM32L

Рис. 1. Малопотребляющие семейства микроконтроллеров STM32L

STM32L4 сочетает в себе преимущества STM32L и STM32F4. Среди ключевых особенностей нового семейства стоит отметить:

  • сверхпроизводительное ядро ARM Cortex-M4 с рабочей частотой до 80 МГц и пиковой производительностью 100 DMIPS при работе со встроенным ускорителем памяти (ART accelerator);
  • широкий набор инструментов оптимизации потребления: гибкая система тактирования, динамическое управление питанием, множество режимов пониженного потребления, набор специализированной периферии для работы в спящих режимах;
  • расширение функционала за счет новых периферийных блоков, таких как CAN, параллельный интерфейс DFSDM, контроллер внешней памяти Quad-SPI, блок защиты памяти Firewall, аудиоинтерфейс SAI, интерфейс SWP, контроллер сенсорных приложений TSC.

Последний пункт чрезвычайно важен, так как новый функционал значительно расширяет области применения STM32L (рисунок 2). Появление CAN делает возможным использование в промышленной электронике, а аудиоинтерфейс SAI пригодится в мультимедийных системах.

Рис. 2. Области применения микроконтроллеров STM32L

Рис. 2. Области применения микроконтроллеров STM32L

Обзор семейства микроконтроллеров STM32L4

STM32L4 построены на ядре ARM Cortex-M4, способном работать на частотах до 80 МГц с производительностью 1,25 DMIPS/МГц. Процессор имеет аппаратную поддержку DSP инструкций и блок работы с переменными с плавающей запятой (FPU). С точки достижения высокой производительности важную роль играет и ускоритель ART, который согласует работу быстрого ядра и медленной Flash-памяти.

Микроконтроллеры STM32L4 отличаются значительными объемами памяти и широким выбором периферии:

  • Flash: до 1 Мбайт;
  • ОЗУ: до 128 кбайт;
  • интерфейсы подключения внешней памяти FSMC (не для всех линеек) и QuadSPI, а также – SDIO;
  • богатая системная периферия: 14 каналов прямого доступа к памяти DMA, развитая система тактирования, встроенные генераторы, ФАПЧ, часы реального времени, системный таймер, блок подсчета контрольной суммы, генератор случайных чисел, блок защиты памяти Firewall, схема автопробуждения, порты ввода-вывода и так далее;
  • широкий выбор таймеров: до одиннадцати 16-битных таймеров общего назначения, до двух 32-битных таймеров общего назначения, оконный и независимый сторожевые таймеры, до двух 16-битных таймеров, предназначенных для работы в режимах пониженного потребления;
  • стандартные коммуникационные интерфейсы: SPI, I2C, USART;
  • дополнительные коммуникационные интерфейсы: CAN, SAI, SDIO, SWP. Для большинства линеек также доступны USB и DFSDM;
  • богатая аналоговая периферия: до двух 12-битных ЦАП, до трех 12-битных АЦП (5 MSPS), аналоговые компараторы, операционные усилители, источник опорного напряжения, датчик температуры, контроллер сенсорных приложений;
  • контроллер ЖК-дисплеев (не для всех линеек);
  • блоки шифрования и криптографии.

На настоящий момент семейство STM32L4 включает пять линеек. Они имеют одинаковую производительность и отличаются объемом памяти и доступным набором периферии (таблица 1).

Таблица 1. Микроконтроллеры семейства STM32L4

Наименование Корпус F макс, МГц Flash, кбайт ОЗУ, кбайт 16/32-битные таймеры АЦП 12 бит, каналов ЦАП
12 бит
Компара-торы I/O ЖК ОУ Стандарт-ные
интер-фейсы
CAN USB Параллель-ные интерфейсы Crypto-HASH Uпит, В Tраб, °C
STM32L432KC UFQFPN 32 80 256 64 7/1 10 2 2 26 1 I2C, SPI, SAI, USART 1 USB Device 1,71…3,6 -40…85
STM32L433CC LQFP 48 UFQFPN 48 WLCSP 49L 256 7/1 10 38 LCD 4×19 1 1 USB Device
STM32L433RC LQFP 64 UFBGA 64L WLCSP 64L 256 7/1 16 52 LCD 4×32/8×28 1 1 USB Device
STM32L433VC LQFP 100 UFBGA 100 256 7/1 16 83 LCD 4×44/8×40 1 1 USB Device
STM32L442KC UFQFPN 32 256 7/1 10 26 1 1 USB Device AES
STM32L443CC LQFP 48 UFQFPN 48 WLCSP 49L 256 7/1 10 38 LCD 4×19 1 1 USB Device AES
STM32L443RC LQFP 64 UFBGA 64L WLCSP 64L 256 7/1 16 52 LCD 4×32/8×28 1 1 USB Device AES
STM32L443VC LQFP 100 UFBGA 100 256 7/1 16 83 LCD 4×44/8×40 1 1 USB Device AES
STM32L471QE UFBGA 132L 512 128 11/2 19 109 2 1 DFSDM; FMC
STM32L471QG UFBGA 132L 1024 11/2 19 109 2 1 DFSDM; FMC
STM32L471RE LQFP 64 512 11/2 16 51 2 1 DFSDM; FMC
STM32L471RG LQFP 64 1024 11/2 16 51 2 1 DFSDM; FMC
STM32L471VE LQFP 100 512 11/2 16 82 2 1 DFSDM; FMC
STM32L471VG LQFP 100 1024 11/2 16 82 2 1 DFSDM; FMC
STM32L471ZE LQFP 144 512 11/2 24 124 2 DFSDM; FMC
STM32L471ZG LQFP 144 1024 11/2 24 114 2 1 DFSDM; FMC
STM32L475RC LQFP 64 256 11/2 16 51 2 1 USB OTG FS DFSDM; FMC
STM32L475RE LQFP 64 512 11/2 16 51 2 1 USB OTG FS DFSDM; FMC
STM32L475RG LQFP 64 1024 11/2 16 51 2 1 USB OTG FS DFSDM; FMC
STM32L475VC LQFP 100 256 11/2 16 82 2 1 USB OTG FS DFSDM; FMC
STM32L475VE LQFP 100 512 11/2 16 82 2 1 USB OTG FS DFSDM; FMC
STM32L475VG LQFP 100 1024 11/2 16 82 2 1 USB OTG FS DFSDM; FMC
STM32L476JE WLCSP 72L 512 11/2 16 57 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC
STM32L476JG WLCSP 72L 1024 11/2 16 57 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC
STM32L476ME WLCSP 81L 512 11/2 16 65 LCD 4×32/8×30 2 1 USB OTG FS DFSDM; FMC
STM32L476MG WLCSP 81L 1024 11/2 16 65 LCD 4×32/8×30 2 1 USB OTG FS DFSDM; FMC
STM32L476QE UFBGA 132L 512 11/2 19 109 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC
STM32L476QG UFBGA 132L 1024 11/2 19 109 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC
STM32L476RC LQFP 64 256 11/2 16 51 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC
STM32L476RE LQFP 64 512 11/2 16 51 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC
STM32L476RG LQFP 64 1024 11/2 16 51 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC
STM32L476VC LQFP 100 256 11/2 16 82 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC
STM32L476VE LQFP 100 512 11/2 16 82 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC
STM32L476VG LQFP 100 1024 11/2 16 82 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC -40…105
STM32L476ZE LQFP 144 512 11/2 24 114 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC -40…85
STM32L476ZG LQFP 144 1024 11/2 24 114 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC
STM32L486JG WLCSP 72L 1024 11/2 16 57 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC AES
STM32L486QG UFBGA 132L 1024 11/2 19 109 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC AES
STM32L486RG LQFP 64 1024 11/2 16 51 LCD 4×32/8×28 2 1 USB OTG FS DFSDM; FMC AES
STM32L486VG LQFP 100 1024 11/2 16 82 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC AES
STM32L486ZG LQFP 144 1024 11/2 24 114 LCD 4×44/8×40 2 1 USB OTG FS DFSDM; FMC AES

STM32L4x1 – начальная линейка семейства с максимальным объемом Flash до 1 Мбайт и ОЗУ до 128 кбайт. В этих контроллерах, кроме базового набора периферии, присутствуют параллельные интерфейсы FSMC и DFSDM. Однако STM32L4x1 не имеют встроенного контроллера ЖК-дисплеев и USB.

STM32L4x2 – линейка микроконтроллеров с поддержкой USB FS. Сейчас представители линейки еще не поступили в массовую продажу. По информации, опубликованной на сайте производителя, эти процессоры пока что будут иметь урезанный объем Flash до 256 кбайт и ОЗУ до 64 кбайт. Ограничение также коснулось поддержки параллельных интерфейсов. Наличие FSMC и DFSDM в существующих образцах не заявлено.

STM32L4x3 – линейка, по характеристикам аналогичная предыдущей STM32L4x2, но отличающаяся встроенным ЖК-контроллером с разрешением до 8×40.

Микроконтроллеры STM32L442 и STM32L443 имеют встроенные блоки шифрования.

STM32L4x5 – линейка контроллеров с максимальным объемом памяти и поддержкой USB OTG FS.

STM32L4x6 – флагманская линейка семейства с максимальным набором периферии и максимальным объемом памяти (рисунок 3). Микроконтроллеры STM32L4x6 отличаются от STM32L4x5 наличием ЖК-контроллера с разрешением до 8×40.

Рис. 3. Блок-схема флагманского микроконтроллера STM32L486

Рис. 3. Блок-схема флагманского микроконтроллера STM32L486

Добиться высокой производительности и сохранить малое потребление стало возможным только благодаря глубокой проработке архитектуры новых контроллеров. Рассмотрим основные особенности шинной организации, системы тактирования и питания STM32L4.

 

Архитектура микроконтроллеров STM32L4

Для тех, кто знаком с предыдущими семействами ARM Cortex-M производства компании ST Microelectronics, шинная организация STM32L4 покажется достаточно привычной. Она построена на базе 32-битной шинной матрицы AHB, которая уже доказала свою эффективность и высокую производительность (рисунок 4).

Рис. 4. Шинная архитектура STM32L4

Рис. 4. Шинная архитектура STM32L4

На шине присутствует пять ведущих: три системные шины ядра Cortex®-M4 (I-bus, D-bus, S-bus), DMA1, DMA 2. Также к матрице подключены семь ведомых: Flash к I-bus ядра, Flash к D-bus ядра и каналам DMA, банк 96 кбайт ОЗУ SRAM1, банк 32 кбайт ОЗУ SRAM2, мост подключения периферии AHB1-APB, мост подключения периферии AHB2-APB, контроллеры внешней памяти FSMC и QuadSPI.

Система тактирования STM32L4 также выглядит достаточно привычно. Доступно пять источников тактового сигнала: высокочастотный внешний генератор или резонатор HSI (4…48 МГц), низкочастотный внешний генератор или резонатор LSE (обычно 32,768 кГц), высокочастотный встроенный 16 МГц RC-генератор HIS, низкочастотный встроенный генератор 32 кГц LSI, многочастотный встроенный RC-генератор MSI (multi speed internal clock). MSI имеет возможность регулировки частоты в диапазоне 0,1…48 МГц. Потребление MSI пропорционально частоте, поэтому его выгодно применять на низких рабочих частотах как альтернативу HSI/ HSE.

В дополнение к источникам тактового сигнала STM32L4 имеют целых три ФАПЧ (PLL). Источником сигнала для ФАПЧ могут быть HSI/HSE/MSI. Каждый PLL имеет три выхода. Всего же система тактирования имеет пять независимых сегментов, это периферия (подключенная к мостам AHB-APB), АЦП, USB OTG_FS, SAI1, SAI2. Такое разбиение на сегменты, а также индивидуальные делители для большинства периферийных блоков помогает добиваться максимальной гибкости, когда требуется выбирать между производительностью и потреблением.

При анализе архитектуры STM32L4 стоит особое внимание уделить системе питания. В этих микроконтроллерах используется несколько независимых источников питания для встроенных функциональных блоков. Например, ядро и логика могут работать при пониженном напряжении VDD (вплоть до 1,71 В), в то время как АЦП (VDDA) и USB (VDDUSB) будут работать при стандартном напряжении 3,3 В. Если же такое разбиение не требуется, то возможно использование одного источника для всего микроконтроллера.

Независимое питание имеют следующие периферийные блоки: USB, аналоговая периферия, порт ввода вывода G [15:2], ЖК-контроллер. Кроме того, возможно подключение внешнего ИОН и батарейного питания.

Стоит отметить, что для питания ядра, цифровой периферии и ОЗУ используется внутреннее напряжение VCORE. Оно формируется с помощью двух встроенных регуляторов: основного (MR) и малопотребляющего (LPR).

Главной особенностью основного регулятора MR является возможность работы в двух режимах RANGE1 (тактовые частоты до 80 МГц) и RANGE 2 (тактовые частоты до 26 МГц). На более низких частотах (до 2 МГц) используется малопотребляющий маломощный регулятор LPR.

В итоге, STM32L4, с одной стороны, способны обеспечивать высочайшую производительность, а с другой – могут быть сконфигурированы с прицелом на минимальное потребление.

 

Производительность микроконтроллеров STM32L4

Высокая производительность STM32L4 обеспечивается, в первую очередь, за счет ядра ARM Cortex-M4 и составляет 1,25 DMIPS/МГЦ, что на максимальной частоте дает 100 DMIPS. Еще одним фактором высокой эффективности стало наличие встроенного ускорителя ART accelerator, который согласует быстродействующий процессор и медленную Flash. Согласно тестам, использование ускорителя эквивалентно применению Flash с нулевым числом циклов ожидания на частотах до 80 МГц включительно.

Напомню, что предыдущие топовые модели STM32L152 использовали ARM Cortex-M3 с рабочей частотой 32 МГц и пиковой производительностью 33 DMIPS. Таким образом, STM32L4 оказываются в три раза быстрее.

Интересным является и тот факт, что компания STMicroelectronics для оценки производительности использовала не только традиционный тест Dhrystone 2.1, но и Coremark от EEMBC. Как известно, Dhrystone 2.1 критикуют за то, что это синтетический тест, успешность прохождения которого зависит от эффективности компилятора. Корпорация ARM уже давно рекомендует использовать более объективный Coremark от EEMBC.

Однако в данном случае Coremark подтвердил выводы, полученные из Dhrystone 2.1 (таблица 2). STM32L4 значительно обошли своих предшественников STM32L1 и STM32L0. Флагманский контроллер STM32L476 набрал более 273 очков при выполнении кода из ОЗУ. Также вполне ожидаемой стала высокая эффективность вычислений 3,42 CoreMark/МГц, что оказалось соответствующим уровню STM32F4. Это не удивительно, так как, по сути, в них используются одно и то же ядро и схожая архитектура.

Таблица 2. Производительность микроконтроллеров STMicroelectronics

Наименование Компилятор Рабочая частота, МГц CoreMark/МГц CoreMark Примечание
STM32L476 IAR ANSI C/C++ Compiler V6.60.1.5097 for ARM 80 3,42 273,55 Выполнение кода из ОЗУ
IAR ANSI C/C++ Compiler V6.60.1.5097 for ARM 80 3,35 267,80 Выполнение кода из Flash
STM32L152 IAR ANSI C/C++ Compiler V6.60.1.5097 for ARM 32 2,89 92,36 Выполнение кода из Flash
IAR ANSI C/C++ Compiler V6.60.1.5097 for ARM 16 3,34 53,36 Выполнение кода из Flash
STM32L053 IAR ANSI C/C++ Compiler V7.30.0.7673 for ARM 32 2,35 75,18 Выполнение кода из Flash
IAR ANSI C/C++ Compiler V7.30.0.7673 for ARM 16 2,49 39,91 Выполнение кода из Flash
STM32F756NGH6 IAR ANSI C/C++ Compiler V7.30.0.7673/W32 for ARM 200 5,01 1001,79 Выполнение кода из Flash
STM32F051C8 IAR 6.60 48 2,20 105,61 Выполнение кода из Flash
IAR 6.60 24 2,33 56,05 Выполнение кода из Flash
STM32F427IGT6 IAR 6.60 180 3,38 608,19 Выполнение кода из Flash
STM32F417IGT6 IAR-EWARM-6.50 168 3,37 565,73 Выполнение кода из Flash
STM32L152ZDT6 IAR-EWARM-6.40.3 32 2,61 83,64 Выполнение кода из Flash
IAR-EWARM-6.40.3 16 2,93 46,84 Выполнение кода из Flash
STM32F417IGT6 GreenHills 6.0.0 168 2,87 481,61 Выполнение кода из Flash
GreenHills Multi 6.1 Compiler 2012 168 2,81 472,96 Выполнение кода из Flash
GreenHills Multi 6.1 Compiler 2012 168 2,91 488,59 Выполнение кода из ОЗУ
MDK-ARM 4.20.03.0 168 2,16 363,72 Выполнение кода из Flash

Как видно из таблицы 2, для каждого контроллера указано несколько значений производительности. Это связано с тем, что существует несколько возможных конфигураций при прохождении теста. В случае STM32L476 имеется в виду возможность выполнения кода из ОЗУ, из Flash, использование или неиспользование ускорителя памяти, который, как сказано выше, чрезвычайно эффективен и полезен. Это наглядно демонстрирует таблица 3. Из нее видно, что применение ART позволяет увеличивать производительность в два раза и достигать значений, характерных для выполнения кода из ОЗУ.

Таблица 3. Производительность STM32L476 в различных конфигурациях

Режим работы мА/МГц CoreMark/МГц CoreMark/мА Примечание
Flash без ускорителя ART 0,117 1,55 13,2
Flash c ускорителем ART 0,136 3,32 24,4 Кэш включен, буфер выборки выключен
SRAM1 0,13 2,37 18,2 Код и переменные в SRAM1
SRAM1 и SRAM2 0,137 3,42 25 Код в SRAM1, переменные в SRAM2

Одно из достоинств STM32L4 заключается в возможности чрезвычайно гибкой настройки соотношения «производительность/потребление». Это достигается несколькими инструментами. Рассмотрим основные способы снижения потребления при работе с STM32L4.

 

Способы оптимизации потребления STM32L4

К услугам разработчиков предлагается сразу несколько эффективных инструментов оптимизации потребления STM32L4:

  • использование преимуществ гибкой системы тактирования;
  • динамическое управление работой внутренних преобразователей в соответствии с требуемой рабочей частотой;
  • наличие режимов пониженного потребления, в том числе Low-power run, Low-power sleep, batch acquisition sub-mode (BAM);
  • использование особой периферии, способной работать в режимах пониженного потребления.

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

 

Использование системы питания для оптимизации потребления

Контроллеры STM32L4 снабжены парой встроенных регуляторов: основным MR и маломощным LPR.

Основной регулятор MR используется только для работы в активном режиме RUN:

  • в диапазоне RANGE1 с рабочими частотами до 80 МГц. При этом выходное напряжение регулятора VCORE максимально и составляет 1,2 В;
  • в диапазоне RANGE 2 с рабочими частотами до 26 МГц и выходным напряжением VCORE 1,0 В.

Маломощный регулятор LPR работает в большинстве режимов пониженного потребления, в том числе и в режимах Low-power run на частотах до 2 МГц.

Чтобы продемонстрировать эффективность динамического изменения параметров питания, следует обратиться к практическим результатам (рисунок 5). Переход с высокопроизводительного режима RANGE1 на RANGE2 в области граничной частоты 26 МГц позволяет сэкономить до 10% по потреблению. Переход с RANGE2 на Low-power run в районе рабочей частоты 2 МГц приведет к сокращению потребления на 20% без потери производительности!

Рис. 5. Сравнение суммарного и удельного потребления при различных конфигурациях STM32L4

Рис. 5. Сравнение суммарного и удельного потребления при различных конфигурациях STM32L4

Режимы пониженного потребления STM32L4

Микроконтроллеры STM32L4 способны работать в восьми режимах: активном режиме RUN и семи режимах пониженного потребления.

Low-power run – режим с активным состоянием ядра и минимальным потреблением. Рабочая частота ограничена значением 2 МГц. Питание периферии, ядра и памяти осуществляется от маломощного регулятора LPR. При этом если код выполняется из ОЗУ, то возможно отключение Flash. Минимальное потребление в данном режиме достигается при выключении Flash, неиспользуемой периферии и тактировании от MSI с частотой 100 кГц.

Low-power sleep – режим, аналогичный предыдущему, но при отключенном ядре.

Batch acquisition sub-mode (BAM) – частный случай Low-power sleep, при котором работают только DMA, ОЗУ, коммуникационные интерфейсы I2C и USART/LPUART. При этом тактирование интерфейсов происходит с помощью HSI на частоте до 16 МГц. Flash, ядро и остальная периферия отключены. В этом режиме можно осуществлять обмен данными по I2C/USART/LPUART на скоростях до 1 Мбит/с и минимальным общим потреблением.

Stop1 и Stop2 – режимы, при которых высокоскоростные генераторы не активны, а тактирование производится от LSE, LSI. В активном состоянии находится только часть периферии. Stop1 и Stop2 отличаются набором активной периферии, скоростью пробуждения и потреблением.

Standby – режим сна, при котором могут быть активны только SRAM2, BOR, RTC, IWDG, а тактирование производится от LSE и LSI. Память SRAM2 так же может быть отключена.

Shutdown – режим глубокого сна. Работает только RTC с тактированием от LSE. Пробуждение из этого режима возможно только от RTC и при появлении сигналов на одном из пяти специальных выводов.

Очевидно, что каждый из режимов характеризуется перечнем доступной периферии, уровнем потребления и временем пробуждения (рисунок 6). Особенностью является тот факт, что STM32L4 умудряется достигать уровня потребления в наноамперном диапазоне и сохранять минимальное время пробуждения. Так, например, в режиме Standby с отключенным ОЗУ ток потребления составит всего 130 нА, а время пробуждения оказывается равным 14 мкс.

Рис. 6. Особенности режимов пониженного потребления STM32L4

Рис. 6. Особенности режимов пониженного потребления STM32L4

Потенциал STM32L4 хорошо демонстрирует тест EEMBC ULPBench™. Он помогает оценить эффективность работы процессора при чередовании активного режима RUN и режимов пониженного потребления. Чем больше полученное значение EEMBC ULPBench™, тем эффективнее работает процессор (таблица 4). Для режима Standby при неактивном ОЗУ микроконтроллер STM32L4 показал результат 153, что является достаточно высоким показателем.

Таблица 4. Результаты теста EEMBC ULPBench™

Наименование Compiler Конфигурация системы тактирования в активном режиме Конфигурация системы тактирования в спящем режиме Таймер, Гц ULPMark™
STM32L011K4 IAR C/C++ ARM v6,60,1,5097 CPU: 4 МГЦ (MSI), RTC: 32,768кГЦ (LSE) Stop с RTC 32768 135
STM32L433 rev 1 IAR C/C++ ARM v6,60,1,5097 CPU: 24 МГЦ (MSI), RTC: 32,768кГЦ (LSE) Standby с RTC и SRAM2 32768 176,7
STM32L476RG IAR C/C++ ARM v6,60,1,5097 CPU: 24 МГЦ (MSI), RTC: 32,768кГЦ (LSE) Standby SRAM2 32768 153
STM32L476 Rev 3 ARMCC v5,04,0,49 CPU: 24 МГЦ (MSI), RTC: 32,768кГЦ (LSE) Standby с RTC и SRAM2 32768 130,8

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

• Большая часть периферии (кроме генератора случайных чисел и USB) может работать в режимах Low-power run, Low-power sleep, Sleep. Особенно это важно для АЦП. АЦП в STM32L4 отличаются пиковой производительностью 5 млн. выб/с и высоким потреблением, которое, вдобавок, прямо зависит от частоты преобразований (200 мкА/MSPS). По этой причине важно, чтобы АЦП мог работать в режимах Low-power run и Low-power sleep, накапливать данные, пока остальные блоки и ядро отключены.

  • Операционные усилители, ЦАП, USART способны работать вплоть до режима Stop1.
  • Пара аналоговых компараторов, ЖК-контроллер, LPTIM, LPUART, I2C, PVD, PVM могут использоваться как источники пробуждения из режимов пониженного потребления вплоть до Stop2.
  • IWDG, BOR могут работать даже в режиме Standby.
  • Часы реального времени RTC – единственный блок, работающий во всех режимах, включая Shutdown.

Говоря о периферии, стоит отметить, что STM32L4 имеет множество новых блоков, которые отсутствовали в семействе STM32L.

 

Обзор новых периферийных блоков STM32L4

По сравнению с предыдущими семействами STM32L, новые микроконтроллеры STM32L4 имеют расширенный набор периферии.

Аналоговые компараторы. Каждый STM32L4 имеет в своем составе пару аналоговых компараторов, которые могут работать независимо друг от друга или совместно, образуя оконный компаратор. Их выходной сигнал используется как один из источников пробуждения из режимов пониженного потребления вплоть до STOP-2. Компараторы отличаются программируемым значением гистерезиса, а также возможностью задания напряжения уставки с помощью встроенных ЦАП или напряжения интегрированного ИОН (коэффициенты деления: 1, 1/2, 1/4, 3/4).

Источник опорного напряжения (ИОН). Для работы со встроенными ЦАП, АЦП и компараторами может быть использован интегрированный ИОН. Он имеет два уровня напряжения: 2,048 В и 2,5 В.

Операционные усилители (ОУ). ОУ могут использоваться для буферизации выходного сигнала ЦАП или же для нормирования входного аналогового сигнала перед подачей его на АЦП. ОУ имеют программируемый коэффициент усиления 2…16. Электрические характеристики ОУ достаточно привлекательны: полноценная работа с напряжениями, равными напряжению питания, низкий ток смещения (1 нА), минимальное смещение (3 мВ), низкое потребление (30…100 мкА в различных режимах), полоса пропускания 1,6 МГц, время пробуждения из спящего режима всего 30 мкс.

Цифровой фильтр для внешнего сигма-дельта модулятора DFSDM. DFSDM (Digital filter for sigma delta modulators) – абсолютно новый блок, не встречавшийся ранее в семействах STM32L. DFSDM имеет 8 последовательных каналов (пара сигналов DATA и CLK) с четырьмя фильтрами. Они используются для преобразования последовательного кода сигма-дельта модуляторов в аналоговые отсчеты с разрешением вплоть до 24-бит!

DFSDM имеет возможность работы в качестве аналогового компаратора. Кроме того, он может использоваться как параллельный 16-битный интерфейс с памятью контроллера.

Контроллер внешней памяти FSMC. Еще большие возможности для работы с памятью дает контроллер FSMC (Flexible static memory controller). Он позволяет подключать различные типы памяти: SRAM/NOR FLASH/PSRAM/NAND Flash. FSMC – чрезвычайно гибкий инструмент, способный работать как в синхронном, так и в асинхронном режиме, с 8-/16-битной разрядностью, с четырьмя независимыми банками памяти и поддержкой DMA. FSMC может использоваться и для подключения внешних дисплеев со стандартными параллельными интерфейсами (Motorola 6800, Intel 8080).

Контроллер внешней памяти Quad-SPI. Этот контроллер уже знаком разработчикам по новым микроконтроллерам семейства STM32F4. У представителей STM32L он встречается впервые. Quad-SPI используется для работы с быстродействующей Flash-памятью с последовательно-параллельным SPI-интерфейсом, имеющим до четырех каналов.

Блок защиты памяти Firewall. Это еще один новый блок, который ранее не встречался в STM32L. Он необходим для защиты содержимого внутренней памяти контроллера. Для того чтобы изменить содержимое защищаемых участков памяти, придется провести специальную операцию разблокировки. Защитить можно участки памяти как во Flash, так и в ОЗУ.

Интерфейс USB. Конечно, интерфейс USB встречался и ранее в семействах STM32L, но в данном случае речь идет о поддержке не только USB FS, но и USB OTG FS. USB FS используется в линейках STM32L4x2/STM32L4x3. USB OTG FS поддерживается в линейках STM32L4x5/STM32L4x6.

Интерфейс CAN. Впервые в семействах STM32L появляется интерфейс CAN. По определению он используется преимущественно в автомобильных и промышленных приложениях, что как бы намекает на расширение областей применения STM32L. Версия CAN в STM32L4 поддерживает спецификацию CAN 2.0A и B и способна обеспечивать скорость передачи вплоть до 1 Мбит/с.

Аудиоинтерфейс SAI – это еще один новый периферийный блок для семейств STM32L. Ранее он встречался только у микроконтроллеров STM32F4. SAI (Serial Audio Interface) используется для формирования цифрового аудиопотока для звуковых приложений. Пара интерфейсов SAI способна создавать стереоприложения с использованием таких протоколов как I2S, PCM/DSP, TDM, и AC’97.

ЖК-контроллер. Этот элемент стал уже классическим для STM32L и до сих пор остается чрезвычайно важным, так как большинство потенциальных приложений – от счетчиков энергии до стиральных машин, – редко обходятся без ЖК. В случае с STM32L4 используется контроллер с поддержкой разрешений вплоть до 176 (44×4) или 320 (40×8) точек.

Как и в более ранних семействах, ЖК-контроллер требует минимума внешних компонентов за счет встроенных: повышающего преобразователя и резистивного делителя. LCD-контроллер способен работать в режимах пониженного потребления вплоть до STOP-2.

Интерфейс SWP (Single Wire Protocol Master Interface) в контроллерах STM32L4 соответствует требованиям европейской комиссии по телекоммуникациям ETSI TS 102 613. Он используется для создания канала связи между, например, сим-картой и беспроводным приемопередатчиком (Contactless front-end, CLF).

Контроллер сенсорных приложений TSC. Ранее все контроллеры STMicroelectronics (STM32 и даже STM8) имели программную поддержку сенсорных приложений. В STM32L4 добавлен аппаратный контроллер TSC (Touch sensing controller).

TSC поддерживает до 24 сенсорных каналов с возможностью подстройки частоты опроса, автоматическим формированием флагов различных событий и ошибок. Каналы могут работать независимо как сенсорные клавиши, либо совместно для создания сенсорных движков и полос прокрутки.

 

Обзор средств разработки и отладки STM32L4

Для ознакомления с функционалом STM32L4 компания STMicroelectronics предлагает три отладочных набора: STM32L476G-DISCO, STM32L476G-EVAL, NUCLEO-L476RG (рисунок 7). Все они построены на базе контроллера STM32L476 в разных корпусных исполнениях.

Рис. 7. Отладочные наборы для STM32L4

Рис. 7. Отладочные наборы для STM32L4

STM32L476G-DISCO – отладочный набор начального уровня на базе STM32L476VG. Кроме контроллера, на плате присутствуют ЖК-дисплей (24 сегмента), магнитометр, гироскоп, аудио-ЦАП для SAI с аудиовыходом, 128 Мбит Quad-SPI Flash-память, датчик тока, разъем для батарейки CR2032, джойстик, семь светодиодов (из них два пользовательских). Традиционно плата включает встроенный отладчик ST-LINK/V2-1.

STM32L476G-EVAL – мощный отладочный набор, с помощью которого можно изучить практически все тонкости работы с STM32L476ZG. Перечень встроенных элементов и интерфейсов платы чрезвычайно богат: два МЭМС-микрофона, два аудиовыхода, разъем для карт памяти microSD, 16 Мбит ОЗУ, 128 Мбит Flash, 256 Мбит Quad-SPI Flash, беспроводная I2C EEPROM, цветной 2,8-дюймовый TFT-дисплей с разрешением 320×240, разнообразные приемопередатчики (RS-232, IrDA, CAN), разъемы USB, джойстик, сенсорная клавиша, светочувствительный резистор, датчик температуры PT100 и многое другое.

NUCLEO-L476RG – набор со стандартным расположением выводов и поддержкой внешних плат расширения: Arduino Uno Revision 3.

Традиционно компания STMicroelectronics предоставляет бесплатное ПО для работы с отладочными наборами: программные примеры и драйвера собраны в библиотеку STM32CubeL4. Специализированные приложения (стек USB, реализация FAT FS и так далее) поддерживаются отдельными пакетами ПО. Помимо уже привычного подхода с библиотеками высокого уровня на базе STM32CubeMX для STM32L4 предлагаются и библиотеки низкого уровня для максимальной оптимизации кода и потребления.

Для разработки программного обеспечения пользователю доступно множество сред, как платных (KEIL ARM, IAR и прочие), так и бесплатных, построенных на платформе Eclipse с использованием GCC-компилятора.

 

Заключение

Семейство микроконтроллеров STM32L4 сочетает в себе производительность на уровне STM32F4 (более 3,35 Coremark/МГц) и низкий уровень потребления (рейтинг превышает 150 в тесте ULPMark™).

По сравнению со своими предшественниками микроконтроллеры STM32L4 получили значительное расширение периферии: CAN, SAI, параллельный интерфейс DFSDM, контроллер внешней памяти Quad-SPI, блок защиты памяти Firewall, аудиоинтерфейс SAI, интерфейс SWP, контроллер сенсорных приложений TSC.

Благодаря высокой производительности и богатому функционалу семейство STM32L4 имеет потенциал для применения в широком спектре приложений. Теперь это не только бытовые и мобильные приложения, но также промышленная электроника и мультимедийные устройства.

 

Литература

  1. AN4621. Application note. STM32L4 ultra-low-power features overview. Rev.1. – ST Microelectronics, 2015.
  2. AN4746. Application note. Optimizing power and performances with STM32L4 series microcontrollers. Rev.1. – ST Microelectronics, 2015.
  3. RM0351. Reference manual. STM32L4x6 advanced ARM®-based 32-bit MCUs. Rev.1. – ST Microelectronics, 2015.
  4. Данные тестирования: http://www.eembc.org/coremark/index.php?mode=VND&member_seq=103
  5. Данные тестирования: http://www.eembc.org/ulpbench/index.php?mode=VND&member_seq=103
  6. Документация на микроконтроллеры взята с официального сайта ST Microelectronics: www.st.com.

Получение технической информации, заказ образцов, заказ и доставка.

•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее