Интерфейс дисплея MIPI
STM32 · Raspberry Pi · ESP32 — кто и как его поддерживает
Разработано технической командой Kadi Display | Технология встроенных дисплеев
Несколько слов о том, почему MIPI вообще здесь важен.
Возьмите любой современный смартфон и разбейте его — гипотетически — и где-то между процессором и стеклом вы обнаружите ленту дифференциальных пар, передающих данные MIPI DSI со скоростью, которая два десятилетия назад казалась бы абсурдной для интерфейса дисплея. Альянс мобильных процессоров (Mobile Industry Processor Interface Alliance) стандартизировал эту шину в середине 2000-х годов, и с тех пор она незаметно доминирует в мире небольших экранов. Сегодня тот же интерфейс проник в промышленные терминалы, встроенные киоски, медицинские мониторы и любительские проекты одноплатных компьютеров.
Но вот что сбивает с толку инженеров, только начинающих работать в этой экосистеме: не каждый микроконтроллер или плата разработки на самом деле поддерживает MIPI. Спецификация выглядит прекрасно на бумаге; на практике же поддержка на кремниевых компонентах оставляет желать лучшего. В этой статье мы рассмотрим три платформы, доминирующие на рынке встраиваемых систем — STM32, Raspberry Pi и ESP32 — и дадим прямой ответ на вопрос о том, что каждая из них может и чего не может делать с интерфейсом дисплея MIPI. Никаких упрощений, только аппаратные реалии.

Контекст отрасли: В настоящее время в альянс MIPI входит более 350 организаций-членов. Спецификация DSI 1.3 поддерживает скорость передачи данных по D-PHY до 2,5 Гбит/с на линию. Типичный двухполосный канал DSI, работающий на скорости 400 Мбит/с на линию, обеспечивает около 800 Мбит/с полезной полосы пропускания дисплея — этого достаточно для 720p при 60 кадрах в секунду с комфортным запасом пропускной способности.
STM32: Настоящее оборудование DSI, но только на правильных микросхемах.
Чипы, которые действительно это имеют
Компания STMicroelectronics начала встраивать хост-контроллер MIPI DSI в некоторые линейки микроконтроллеров STM32 примерно в 2014 году. STM32F469/F479 Это было первое появление на широкой публике, за которым последовало... STM32H747/H757 двухъядерная серия и STM32H7BxВсе эти микросхемы содержат встроенный DSI-хост, соответствующий спецификации MIPI DSI версии 1.01, и все поддерживают до двух линий передачи данных D-PHY.
Что это означает на практике? На STM32H747, при работе обеих линий DSI на скорости 400 Мбит/с, вы получаете в сумме 800 Мбит/с — этого достаточно, чтобы без проблем обрабатывать панель 480×854 с частотой 60 Гц в 24-битном цвете. Оценочная плата STM32H747I-DISCO от ST поставляется именно с такой панелью, что является удобной проверкой, когда вы задаетесь вопросом, в чем проблема: в трассировке DSI вашей пользовательской платы или в прошивке.
Периферийное устройство хоста DSI поддерживает оба варианта. Режим видео (непрерывная передача пикселей, аналогичная HDMI) и Режим команды (Модель записи в буфер кадров, широко используемая в AMOLED-панелях). Режим командной записи (Command Mode) полезен, если вы разрабатываете продукты с батарейным питанием: панель хранит собственный буфер кадров и обновляется автономно, поэтому ваш микроконтроллер может переходить в спящий режим между обновлениями экрана. Уже одно это может существенно снизить энергопотребление активного дисплея.

Стек драйверов простыми словами
Библиотека HAL от ST включает в себя специальный модуль stm32h7xx_hal_dsi.c, охватывающий инициализацию хоста, настройку режима видео/команд и базовую сигнализацию ошибок. В большинстве реальных проектов вам также потребуется написать последовательность инициализации панели — список пакетов DCS (Display Command Set), отправляемых по каналу DSI в режиме низкого энергопотребления перед переключением на высокоскоростную потоковую передачу видео. Для распространенных микросхем панелей, таких как OTM8009A и NT35510, существуют эталонные последовательности инициализации в примерах прошивки CubeH7 от ST.
Самая сложная часть — это компоновка печатной платы. Обязательно к прочтению примечание по применению AN4860 от ST: пары D-PHY должны иметь контролируемое дифференциальное сопротивление 100 Ом, короткие ответвления и разумную развязку вблизи выводов DSI. Инженеры, которые пропустили этот документ и удивлялись, почему их дисплей мерцает или выходит из строя при более высоких скоростях передачи данных, почти всегда впоследствии об этом жалеют.
Матрица поддержки MIPI DSI для STM32
Примечание: В подавляющем большинстве микроконтроллеров STM32 отсутствует интерфейс DSI. STM32G0, L4, F0, F1, F3 и большинство вариантов F4 его не имеют. Для этих устройств доступны следующие варианты интерфейса дисплея: SPI (подходит для небольших панелей, но ограничен примерно 10–20 кадрами в секунду при разрешении выше 320×240) или параллельный RGB LTDC на микроконтроллерах F4xx/H7xx, которые его включают.
Raspberry Pi: Самый простой способ начать разработку под MIPI DSI.
Обзор оборудования
Все полноразмерные Raspberry Pi, начиная с оригинальной модели B+, поставлялись с... 15-контактный разъем DSI FPC На плате он обозначен как «DISPLAY» и является неизменной особенностью Raspberry Pi 2, 3, 4 и теперь Pi 5. В Pi Zero и Zero 2 W используется более узкий 22-контактный разъем FPC, который электрически похож, но физически отличается, что сбивает с толку покупателей при приобретении кабелей для дисплея.
Микросхема Broadcom BCM2711 внутри Raspberry Pi 4 управляет этим разъемом с помощью двухполосного передатчика MIPI DSI. Эталонная конструкция — официальный 7-дюймовый сенсорный экран Raspberry Pi — работает со скоростью примерно 200–285 Мбит/с на полосу в зависимости от режима панели, что находится в пределах комфортного рабочего диапазона D-PHY. Raspberry Pi 5 Более интересной особенностью является то, что его специализированный южный мостовой чип RP1 обеспечивает доступ к двум независимым портам DSI, каждый из которых способен работать по 2 линиям на скорости, достаточной для вывода изображения в разрешении 1080p60. Это действительно значительное улучшение для тех, кто занимается созданием киосков с двумя дисплеями или промышленных панелей высокого разрешения.

Программная составляющая: Linux упрощает задачу.
Именно здесь Raspberry Pi по-настоящему оправдывает свою репутацию самой удобной для разработчиков платформы MIPI DSI. Поскольку она работает под управлением полноценного стека Linux, поддержка панелей дисплея реализована в подсистеме ядра drivers/gpu/drm/panel/. Добавление новой панели сводится к написанию оверлея Device Tree, который объявляет канал DSI, тайминги панели и последовательность инициализации, а также — если микросхема панели еще не поддерживается в основной ветке — к небольшому модулю ядра.
Для большинства продаваемых в продаже модулей дисплея MIPI DSI с диагональю от 3,5 до 10 дюймов уже существует работающая накладка или драйвер, не входящий в основную ветку разработки. Сравните это с работой STM32 без операционной системы, где вы сами пишете каждый байт последовательности инициализации, и разница в производительности станет очевидной. Стек Linux для Pi также открывает двери для любой графической среды, которая вам нравится — Qt, GTK, Electron, LVGL через DRM, даже веб-браузер, отображаемый в полноэкранном режиме.
Сопутствующий товар: Дисплеи для Raspberry Pi — Kadi Display — Подборка модулей дисплея MIPI DSI и SPI, протестированных для Raspberry Pi, с диагональю от 3,5 до 10,1 дюймов и опциональным емкостным сенсорным экраном.
Особенности разъемов и ограничения кабелей
Две вещи ставят в тупик начинающих сборщиков дисплеев на базе Raspberry Pi. Во-первых, распиновка разъема: Pi 4 использует 15-контактный гибкий печатный разъем (FPC), где контакт 1 находится ближе к краю платы, в то время как Pi 5 использует тот же физический разъем, но с немного другим назначением сигналов на более новых портах DSI — всегда проверяйте характеристики кабеля при переходе между поколениями Pi. Во-вторых, длина кабеля. MIPI DSI D-PHY был разработан для межсоединений на уровне платы, а не для внешней кабельной разводки. Подавляющее большинство проверенных модулей дисплея поставляются с кабелями длиной 100–200 мм. При длине кабеля более 300 мм целостность сигнала начинает ухудшаться на высоких скоростях передачи данных, и вы можете увидеть визуальные артефакты или сбои связи. Если в вашем приложении панель дисплея расположена дальше от Pi, конфигурация с одной полосой и более низкой скоростью передачи данных с более коротким кабелем часто является лучшим практическим выбором, чем передача данных по двум полосам со скоростью 500 Мбит/с через кабель длиной 400 мм.
ESP32-P4 — единственный ESP32 с нативным интерфейсом MIPI DSI; все остальные используют интерфейсы SPI/QPI, параллельный интерфейс 8080 или RGB.
Ограничения (и поворотный момент)
Давайте будем откровенны: до появления ESP32-P4 ни один чип из семейства ESP32 — включая оригинальный ESP32, S2, S3, C3, C6 и H2 — не имел встроенного передатчика MIPI DSI. Компания Espressif разрабатывала эти компоненты с учетом беспроводной связи и задач, выполняемых микроконтроллерами общего назначения, а не высокоскоростных конвейеров обработки изображений. В результате доступные интерфейсы отображения для всей линейки всегда ограничивались несколькими устаревшими, низкоскоростными вариантами.
Вот что вы получаете, используя детали, не относящиеся к серии P4:
- Интерфейсы SPI и QPI: присутствуют почти во всех вариантах ESP32. Они хорошо работают на небольших панелях с низким разрешением, но пропускная способность пикселей быстро достигает своего предела.
- Параллельный интерфейс 8080: это лучшее, что вы найдете на ESP32-S3. Он имеет 16-битный параллельный контроллер ЖК-дисплея (протокол Intel 8080 или Motorola 6800), который на практике может работать на частоте около 20 МГц. Пропускная способность составляет примерно 320 Мбит/с — цифра, которая звучит неплохо, пока вы не сравните ее с MIPI DSI. Одна линия передачи данных DSI, работающая на консервативной скорости 250 Мбит/с, уже обеспечивает большую полезную пропускную способность пикселей, а DSI масштабируется до четырех линий, в то время как параллельная шина — нет.
- Интерфейс RGB: также присутствует на таких чипах, как S3, но он по-прежнему занимает много контактов и не обладает той же эффективностью последовательной связи, что и DSI.
Ограничение пропускной способности отчетливо проявляется в частоте кадров. Возьмем, к примеру, ESP32-S3, управляющий RGB-панелью с разрешением 800×480 пикселей и 16-битным цветом через параллельный интерфейс. При использовании DMA для обработки потока пикселей и отсутствии участия ЦП можно ожидать около 30-40 кадров в секунду. Этого вполне достаточно для статических пользовательских интерфейсов, навигации по меню или медленно обновляющейся панели датчиков. Но если добавить полноэкранную анимацию или видеоконтент, изображение быстро начнет тормозить.
Затем появился ESP32-P4.
ESP32-P4 полностью меняет правила игры. Это первый — и пока единственный — ESP32 с встроенным интерфейсом MIPI DSI. Это единственное дополнение выводит экосистему ESP32 в современную эру дисплеев, позволяя напрямую управлять панелями уровня смартфонов и планшетов с такой пропускной способностью пикселей и плавной частотой кадров, которые параллельные и SPI-интерфейсы просто не могут обеспечить. Если вашему проекту требуется встроенная поддержка MIPI DSI, ESP32-P4 в настоящее время является единственным вариантом в семействе ESP32.

Обходной путь для микросхемы моста
Если вам абсолютно необходима панель MIPI DSI на ESP32 — например, потому что выбранная вами панель имеет только интерфейс DSI — стандартным инженерным решением является мостовая микросхемаНаиболее часто упоминаемая деталь — это SSD2828, однокристальный преобразователь RGB в DSI. ESP32 (или любой другой микроконтроллер) управляет SSD2828 по SPI для его настройки, а затем подает на него параллельный видеопоток RGB. SSD2828 преобразует его в выходной сигнал MIPI DSI, который может обрабатывать панель. Это работает. Однако это также увеличивает стоимость компонентов, площадь печатной платы и добавляет еще один уровень сложности в прошивке — поэтому это компромисс, который стоит тщательно оценить, по сравнению с выбором другого дисплея с совместимым собственным интерфейсом.
Более простой и распространенный подход для продуктов на базе ESP32 — это с самого начала выбрать модуль TFT LCD с интерфейсом SPI. Контроллеры панелей, такие как ILI9341, ST7789, ILI9488, и GC9A01 Доступны модули размером от 1,3 до 4 дюймов и хорошо поддерживаются как компонентом esp_lcd от ESP-IDF, так и библиотеками Arduino от сообщества. При разрешении 320×240 и 60 кадрах в секунду SPI на частоте 40 МГц вполне достаточен. При разрешении 480×320 начинает наблюдаться падение частоты кадров; при разрешении 800×480 и выше действительно необходим параллельный интерфейс или другой SoC.
Сопутствующий товар: Встраиваемые дисплейные решения — Kadi Display — Модули дисплея промышленного класса с интерфейсами SPI, параллельным и DSI, подходящие для встраиваемых систем на базе ESP32 и STM32.
Параллельное сравнение: Краткий обзор поддержки MIPI на платформах
Выбор подходящего модуля дисплея для вашей сборки
Если вы используете STM32 H7 или F469
Используйте MIPI DSI. Аппаратная часть уже есть, драйверы HAL хорошо разработаны, а экономия на количестве выводов по сравнению с 24-битной параллельной RGB-панелью существенна — меньше дорожек, меньшие разъемы, более простое управление электромагнитными помехами. Используйте панельные микросхемы со стандартными наборами команд DCS (OTM8009A, NT35510, RM67162 описаны в примерах CubeH7 от ST), чтобы не начинать с нуля в последовательности инициализации.
Если вы используете Raspberry Pi 4 или 5
MIPI DSI — это естественный первый выбор. Подключите совместимый кабель FPC, прошейте соответствующее наложение, и панель отобразится как стандартный кадровый буфер Linux. Для проектов, требующих второго дисплея, Pi 5 может одновременно управлять двумя панелями DSI через два независимых порта — возможность, которая раньше требовала дорогостоящей платы-носителя или внешнего драйвера.
Рекомендуется: Kadi Display — Полный каталог продукции — Панели MIPI DSI для Raspberry Pi, промышленные TFT LCD модули для STM32, AMOLED и линейные дисплеи, а также OEM-заказы. Производитель с более чем 20-летним опытом работы в Шэньчжэне.
Если вы используете ESP32
Прежде чем окончательно определиться с панелью, реалистично оцените целевое разрешение и частоту кадров. Если ваш пользовательский интерфейс помещается в разрешении 320×240 или 480×320, то правильно выбранная SPI-панель — это простое и недорогое решение. Если вам нужно разрешение 800×480 с приемлемой частотой кадров, то параллельный ЖК-интерфейс ESP32-S3 — подходящий инструмент. Кроме того, подумайте, подходит ли ESP32 в качестве SoC — Raspberry Pi CM4 или STM32H7 могут лучше подойти для проекта, чем проектирование с учетом ограничения пропускной способности дисплея.

Куда движется отрасль: DSI-2, AMOLED и автомобильная промышленность.
Альянс MIPI не стоит на месте. MIPI DSI-2 Добавляет поддержку физических уровней C-PHY и A-PHY наряду с уже существующим D-PHY, при этом C-PHY, в частности, обеспечивает более высокую плотность данных на пару контактов — это актуально, когда количество контактов разъема ограничено в компактных конструкциях. Пропускная способность однополосного C-PHY может превышать пропускную способность двухполосного канала D-PHY, что важно для сверхтонких носимых устройств и автомобильных приборных панелей, где каждый миллиметр сечения кабеля имеет значение.
На самом рынке панелей, AMOLED дисплеи Технология AMOLED постепенно переходит из флагманских смартфонов в потребительскую электронику среднего ценового сегмента и, все чаще, в промышленные и медицинские приложения. Режим командной работы AMOLED — при котором панель хранит собственный буфер кадров и обновляется автономно — хорошо сочетается с встраиваемыми системами с питанием от батарей, поскольку позволяет SoC переходить в спящий режим между обновлениями пользовательского интерфейса без отключения дисплея. Производители дисплеев, такие как... Кади Дисплей Теперь AMOLED-модули выпускаются в форм-факторах, удобных для встраивания, что позволяет использовать AMOLED-технологии в промышленных HMI-системах без необходимости разработки собственной программы создания панелей.
В автомобильной сфере набирает популярность спецификация MIPI A-PHY (Automotive PHY): она расширяет экосистему MIPI для передачи данных на автомобильные дисплеи на расстояние до 15 метров со скоростью 16 Гбит/с, с встроенными функциями функциональной безопасности. Это выходит далеко за рамки любительских проектов на базе STM32 или Raspberry Pi, но указывает направление развития мира встроенных дисплеев в целом.

Заключительные мысли
Три платформы, три совершенно разные истории о дисплеях MIPI. Серия STM32 H7 предоставляет вам настоящий встроенный DSI в контексте "голого железа" — мощный, компактный, но вы контролируете каждую строку драйвера. Raspberry Pi предоставляет вам нативный DSI с экосистемой Linux, выполняющей большую часть работы — самый быстрый путь от оборудования к работающему дисплею с большим отрывом. ESP32 не предоставляет ни того, ни другого, но это не обязательно проблема, если вы реалистично оцениваете размер панели и частоту кадров с самого начала.
Самая дорогостоящая ошибка в проектировании встраиваемых дисплеев — это не выбор оборудования, а несоответствие ожиданий. Выбрать панель 1080p MIPI DSI, а затем обнаружить, что выбранный вами микроконтроллер не поддерживает MIPI, — это неприятная и предотвратимая ситуация. Потратьте десять минут на изучение спецификации интерфейса перед заказом образцов, и остальная часть проекта значительно упростится.
Для получения рекомендаций по выбору модулей отображения для конкретных проектов — будь то MIPI DSI для Raspberry Pi, промышленный TFT LCD для STM32 или SPI-панели для ESP32 — ознакомьтесь с полным ассортиментом на сайте kadidisplay.com. Команда также занимается OEM- и ODM-проектами по изготовлению дисплеев на заказ с короткими сроками выполнения из своего предприятия в Шэньчжэне.
Отказ от ответственности: Все торговые марки и названия продуктов являются товарными знаками соответствующих владельцев. Технические данные взяты из общедоступных технических паспортов, справочных руководств и документации производителя. Данная статья не является официальным заявлением компаний STMicroelectronics и Raspberry Pi Ltd. Эспрессиф Системы или альянс MIPI. Внутренние ссылки на продукты ведут непосредственно на сайт kadidisplay.com.
Последние блоги и новости
- LVDS против MIPI для промышленных TFT LCD-дисплеев: какой интерфейс выбрать?
- Как выбрать промышленный TFT LCD-дисплей: размер, яркость, интерфейс, сенсорное управление и руководство по настройке.
- Промышленные дисплеи, изготовленные на заказ, или готовые дисплеи: что лучше для проектов B2B?
- Как выбрать производителя дисплеев для проектов, связанных с промышленным и медицинским оборудованием
- Экраны Raspberry Pi, читаемые при солнечном свете
Блог и новости
-
TN против IPS2024-7-9
-
TN против IPS2024-7-9
