STM32MP1 — новый многоядерный микропроцессор от STMicroelectronics, поддерживающий работу с Linux

Опубликовано в номере:
PDF версия
Компания STMicroelectronics выпустила линейку новых многоядерных микропроцессоров STM32MP1, построенных на базе процессоров ARM Cortex-A7 и ARM Cortex-M4, имеющих поддержку Linux и способных выполнять самые разные задачи в режиме реального времени.

Описание устройства

STM32MP1 базируются на одном или двух ядрах ARM Cortex-A7 (в зависимости от конфигурации), работающих с номинальной частотой 650   МГц, а также Cortex-M4, действующем на частоте 209 МГц. Cortex-A7 предоставляет доступ к открытым программным обеспечениям (Linux/Android), в то время как Cortex-M4 использует среду STM32 MCU.

Процессор Cortex-A7 обеспечивает на 20% больше производительности, чем предшественник Cortex-A5, и включает все функции высокопроизводительных процессоров Cortex-A15 и Cortex-A17, в том числе аппаратную поддержку виртуализации, LPAE, Neon и 128-битный интерфейс шины AMBA 4 AXI. Cortex-A7 имеет площадь 0,45 мм2 (с блоком для выполнения операций с плавающей точкой, Neon и кэш-памятью L1 объемом 32 кбайт) и требует менее 100 мВт общей мощности в стандартных условиях эксплуатации. Все это в совокупности делает процессор Cortex-A7, а значит, и построенные на его базе микроконтроллеры прекрасным решением для применения в целом ряде мобильных устройств.

Процессор Cortex-M4, в свою очередь, создан для работы на рынках управления цифровыми сигналами, которые требуют эффективного, простого в использовании сочетания возможностей управления и обработки сигналов. Комбинация высокоэффективных функций обработки сигналов с преимуществами семейства процессоров Cortex-M с малым энергопотреблением, низкой стоимостью и простотой использования предназначена для удовлетворения возникающей категории гибких решений. Cortex-M4 имеет встроенный блок для выполнения операций с плавающей точкой (FPU) ординарной точности, а также реализует набор инструкций для операций цифровой обработки сигналов (DSP), которые поддерживаются бесплатной библиотекой DSP-lib от ARM. Также, ядро Cortex-M4F содержит адаптивный ускоритель реального времени (ART Accelerator). Структура процессоров Cortex-A7 и Cortex-M4 показана на рис. 1.

Cortex-A7 и Cortex-M4

Рис. 1. Структура Cortex-M4 и Cortex-A7

Помимо того что линейка STM32MP1 способна работать под Linux, данные микроконтроллеры имеют ряд других особенностей. Например, у одного из представителей данного семейства (STM32MP157) есть дополнительный GPU графический процессор Vivante 3D с поддержкой OpenGL ES 2.0; до 26 MTriangles/s.

Все представители данной линейки имеют на борту контроллер MIPI-DSI, поддержку HDMI-CEC, USB 2.0 и 10/100M или Gigabit Ethernet с аппаратным IEEE 1588v2, MII/RMII/GMII/RGMII.

Внутренняя память микроконтроллеров  — это 708 кбит SRAM: 256 кбит AXI SYSRAM + 384  кбит AHB SRAM + 64 кбит AHB SRAM, а также 4 кбит SRAM в резервном домене. Предусмотрена и возможность подключения внешней памяти до 1 Гбит 16/32-бит LPDDR2/LPDDR3-1066 или 16/32-бит DDR3/DDR3L-1066. Структурная схема STM32MP1 изображена на рис. 2.

STM32MP1

Рис. 2. Блок-схема микроконтроллера STM32MP1

 STM32MP1 имеют на борту LCD-TFT-контроллер и, соответственно, поддерживают работу с дисплеем 24-бит (RGB888) и WXGA (1366×768) 60 fps.

Прочая периферия данной линейки включает до 176 портов ввода/вывода (в зависимости от конфигурации) с возможностью прерывания, в том числе до восьми безопасных вводов/выводов, до шести вводов/выводов пробуждения, три тампера, один активный тампер, три DMA-контроллера для разгрузки процессора, шесть I2C FM+ (1 Мбит/с, SMBus/PMBus), четыре UART + четыре USART (12,5 Мбит/с, интерфейс ISO7816, LIN, IrDA, SPI slave), шесть SPI (50 Мбит/с, в том числе три из них с полнодуплексными I2S аудиокласса точности через внутренний аудио PLL или внешний генератор), четыре SAI (стерео-аудио: I2S, PDM, SPDIF Tx), SPDIF Rx с четырьмя входами, интерфейс HDMI-CEC, MDIO Slave, три SDMMC до 8-бит (SD/e•MMC/SDIO), два контроллера CAN, поддерживающие протокол CAN FD, один из которых поддерживает time-triggered CAN (TTCAN), 8–14-бит интерфейс камеры до 140  Мбайт/с.

К аналоговой периферии микроконтроллеров относятся два АЦП с максимальным разрешением 16 бит (12 бит 5 Msps, 14 бит 4,4 Msps, 16 бит 250 ksps), датчик температуры, два 12-бит D/A-преобразователя (1 МГц), цифровой фильтр для сигма-дельта-модулятора (DFSDM) с восемью каналами и шестью фильтрами, внутренний или внешний АЦП/ЦАП опорного VREF+.

Безопасность STM32MP1 обеспечивается наличием безопасной загрузки, периферии TrustZone, активного тампера, изоляцией ресурсов Cortex-M4, а также аппаратным шифрованием (AES, HASH), двумя TRNG и двумя блоками расчета CRC.

Микроконтроллеры доступны в следующих корпусах: 10×10 мм TFBFA257, 12×12 мм TFPBGA361, 16×16 мм LFBGA354 и 18×18 мм LFBGA448.

В настоящее время существует три версии STM32MP1 (рис. 3):

  • STM32MP157 — два ядра Cortex-A7 650 МГц, ядро Cortex-M4 209 МГц, графический 3D-процессор, интерфейс дисплея DSI и CAN FD;
  • STM32MP153 — два ядра Cortex-A7 650 МГц, ядро Cortex-M4 209 МГц и CAN FD;
  • STM32MP151 — ядро Cortex-A7 650 МГц, ядро Cortex-M4 209 МГц.
STM32MP1

Рис. 3. Линейка микроконтроллеров STM32MP1

Гибкая архитектура и энергоэффективность

Учитывая, что линейка STM32MP1 построена сразу на двух разновидностях процессоров ARM (Cortex-A7 и Cortex-M4), производитель предусмотрел возможность распределения задач между процессорами для улучшения параметров энергопотребления. Условно потребление можно разделить на три режима:

  • Режим полной мощности, в котором работают оба ядра (рис. 4), например для коммуникации по HMI, включая графическую обработку и вывод на дисплей, управление двигателем и считыванием показаний с датчиков.
  • Режим, в котором задействован только процессор Cortex-M4 (рис. 5). Такой режим полезен в тех случаях, когда необходимо уменьшить энергопотребление и требуется работа с графикой и коммуникацией. В данном режиме энергопотребление сокращается в 4 раза относительно полной мощности.
  • Режим ожидания (рис. 6). Оба процессора отключены, энергопотребление снижено в 2500 раз по сравнению с предыдущим режимом.

Более конкретные параметры энергопотребления отображены на рис. 7.

Режим полной мощности

Рис. 4. Режим полной мощности

Режим работы Cortex-M4

Рис. 5. Режим работы Cortex-M4

Режим ожидания

Рис. 6. Режим ожидания

Параметры потребления микроконтроллеров STM32MP1

Рис. 7. Параметры потребления микроконтроллеров STM32MP1

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

Поскольку линейка STM32MP1 является частью экосистемы STM32 от STMicroelectronics, для работы с ней доступен тот же набор отладочных средств, что и для прочих продуктов компании, в частности STM32Cube, который можно использовать при работе с ядром Cortex-M4 (рис. 8).

Однако, кроме STM32Cube, компания STMicroelectronics предлагает дистрибутив OpenSTLinux с открытым исходным кодом и представляет собой ключевой элемент решения встраиваемого программного обеспечения STM32 для многоядерных микропроцессоров STM32, в которых используется одно или два ядра Arm Cortex-A7, в частности STM32MP1.

Средства разработки для микроконтроллеров STM32MP1

Рис. 8. Средства разработки для микроконтроллеров STM32MP1

OpenSTLinux создан на основе спецификаций Trusted Firmware-A, U-Boot-загрузчика и Linux Kernel 4.19 LTS. Проект Yocto поддерживается для создания собственной системы Linux, в скором времени также ожидается поддержка Android.

OpenSTLinux содержит:

  • Пакет поддержки плат Linux (BSP).
  • Ядро Linux.
  • Необходимые драйверы.
  • Безопасную загрузочную цепочку на основе Arm Trusted (TF-A) и универсального загрузчика (U-Boot).
  • Безопасную ОС: открытая переносимая доверенная среда выполнения (OP-TEE).
  • Фреймворки приложений, включая следующие фреймворки приложений Linux (неполный список):

–  протокол сервера отображения Wayland (эталонная реализация Weston);

–  Gstreamer мультимедийный фреймворк;

–  расширенные библиотеки Linux Sound Architecture (ALSA).

Для оптимизации процесса разработки STMicroelectronics предлагает пользователям три версии пакета OpenSTLinux:

  • Стартовый пакет (STM32MP1Starter) для быстрого и простого запуска с любого микропроцессорного устройства STM32MP1.
  • Пакет разработчика (STM32MP1Dev) для добавления собственного кода поверх дистрибутива.
  • Дистрибутивный пакет (STM32MP1Distrib) для создания собственного дистрибутива Linux,а также собственных пакетов.

Для оценки характеристик и разработки прототипных решений STMicroelectronics предоставляет пользователям два комплекта на основе микроконтроллера STM32MP157C (рис. 9):

  • Комплект Discovery STM32MP157C-DK1/DK2 с оперативной памятью 512 Мбит, гигабитным Ethernet, разъемом USB Type-C OTG, четырьмя разъемами USB host, HDMI-передатчиком, разъемом для стереогарнитуры с аналоговым микрофоном, разъемом для микро-SD-карты и разъемом расширения для Shield-платы Arduino и Raspberry Pi. В версию DK2 добавлен 4-дюймовый сенсорный ЖК-дисплей и возможности подключения Wi-Fi + Bluetooth LE.
  • Оценочная платформа Evaluation boards STM32MP157A-EV1/STM32MP157C-EV1 с оперативной памятью 1 Гбит, хранилищем 4  Гбит, 5,7-дюймовым дисплеем 720p, большинство функций, как у комплекта Discovery (без HDMI), добавлены CAN FD, четыре цифровых микрофона, четыре SPDIF Rx/Tx, смарт-карта и флэш-память MMC, NOR и NAND.

Помимо решений от STMicroelectronics, также доступны решения от сторонних производителей.

Отладочные платы для микроконтроллеров STM32MP1

Рис. 9. Отладочные платы для микроконтроллеров STM32MP1

 

Заключение

Компания STMicroelectronics в очередной раз выпустила передовое решение, позволяющее ей охватить новые рынки, в данном случае рынки Linux-устройств. Линейка STM32MP1 работает на двух процессорах ARM (Cortex-A7 и ARM Cortex-M4), имеет встроенный GPU графический процессор Vivante 3D, может работать с LCD и имеет большой набор интерфейсов для подключения внешней периферии. Кроме того, STMicroelectronics предоставляет разработчикам новую среду для создания программного кода OpenSTLinux для процессоров Cortex-A7. Все это в совокупности делает линейку STM32MP1 прекрасным выбором для создания устройств на базе Linux.

 

Литература
  1. STM32MP1 Series Microprocessors
  2. STM32MP1 microprocessor series with dual Arm® Cortex®-A7 and Cortex®-M4 Cores
  3. UM2535. User manual. Evaluation boards with STM32MP157 MPUs
  4. UM2534. User manual. Discovery kits with STM32MP157 MPUs

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *