English 0 позиций в запросе!   Отправить?
Подписка на новости
Задать вопрос

    Имя *

    E-Mail *

    Компания *

    Телефон *

    Вопрос *

    Нажимая на кнопку, вы даете согласие на обработку своих персональных данных

    Заказать образцы

      Имя *

      E-Mail *

      Телефон *

      Сайт

      Компания *

      Описание проекта *

      Образцы предоставляются под проект

      Нажимая на кнопку, вы даете согласие на
      обработку своих персональных данных и
      обратную связь со специалистами PT Electronics

      Подписка на новости

      Назад

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

      16 Май 2019

      Автор статьи

      Святослав Зубарев (г. Смоленск), Павел Башмаков active@ptelectronics.ru

      Компания STMicroelectronics выпустила линейку новых многоядерных микропроцессоров STM32MP1,

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


      Опубликовано в журнале «Вестник Электроники» №1 (65) 2019

       

      Скачать статью в PDF


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

      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-M4 и Cortex-A7

      Рис. 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).


      Запрос отладочной платы STM32MP157C-DK2
      Запрос отладочной платы STM32MP157C-DK2

        Имя *

        E-Mail *

        Телефон *

        Сайт

        Компания *

        Описание проекта *

        Образцы предоставляются под проект

        Нажимая на кнопку, вы даете согласие на
        обработку своих персональных данных и
        обратную связь со специалистами PT Electronics



        Для оптимизации процесса разработки 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