К чему можно подключить MIPI DSI экран?

в 8:05, , рубрики: DSI дисплей, DSI экран, ESP32-P4, fpga, MIPI DSI, MIPI дисплей, SSD2805, SSD2828, stm32, TC358870XBG, timeweb_статьи, дисплей от смартфона, дисплей от телефона, ПЛИС, подключение дисплеев от смартфонов, экран от смартфона, экран от телефона, экран смартфона
К чему можно подключить MIPI DSI экран? - 1

Как-то мне захотелось поэкспериментировать с MIPI DSI экранами. Встал вопрос: к чему их подключить? Позже я выбрал решение и спроектировал плату, о чём начал писать статью. Но есть и множество других вариантов. Решил вынести эти данные в отдельную часть.

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

Какие решения доступны? Как рассчитать скорость передачи данных?

Варианты:

  1. Одноплатные компьютеры (готовые или спроектировать свою плату с процессором).
  2. Микроконтроллеры с MIPI DSI интерфейсом.
  3. Микроконтроллеры кроссоверы с MIPI DSI интерфейсом.
  4. ПЛИС (некоторые поддерживают напрямую, схема на резисторах или спец. микросхемы).
  5. Микросхемы преобразования интерфейсов (RGB/HDMI/DP/LVDS… –> МIPI DSI).

1. Одноплатные компьютеры (готовые или спроектировать свою плату с процессором)

Малина.
У версий Zero Малины нет DSI, только CSI для камеры.
У версий 1А+, 1В+, 2, 3, А+, В+, 4 есть DSI выход (2 пары данных и одна тактовая).
Схема.

К чему можно подключить MIPI DSI экран? - 2

У Малины 5 и Compute Module 5 2 × 4-lane MIPI camera/display transceivers.

Есть два разъёма. Можно настроить по одному на камеру/экран, либо сделать 2 разъёма одного вида (камера или экран).

К чему можно подключить MIPI DSI экран? - 3

У Compute Module 3+, CM4 
1x 4-lane DSI Display Interface (up to 1Gbps per lane)
1x 2-lane DSI Display Interface (up to 1Gbps per lane)

Кроме Малины есть множество других одноплатников. У каждого свой набор интерфейсов.
Интересный вариант – плата на RK3566 (RK3566-2G-16G). Кроме MIPI DSI и HDMI на ней есть EDP.

К чему можно подключить MIPI DSI экран? - 4

К чему можно подключить MIPI DSI экран? - 5

К чему можно подключить MIPI DSI экран? - 6

Для варианта платы с процессором нужно разбираться с Линуксом и писать драйвер экрана.

ESP32-P4.
ESP32-P4 – это высокопроизводительный микроконтроллер (или, скорее, гибрид), который поддерживает большой объем встроенной памяти и обладает хорошими возможностями обработки изображений и голоса. Cостоит из высокопроизводительной системы (High Performance) и системы с низким энергопотреблением (Low Power). Система HP содержит двухъядерный процессор RISC-V и множество периферийных устройств, в то время как система LP содержит маломощный одноядерный процессор RISC-V и различные периферийные устройства, оптимизированные для приложений с низким энергопотреблением.

К чему можно подключить MIPI DSI экран? - 7

ESP32-P4 поддерживает MIPI-CSI и MIPI-DSI (2 пары данных, до 1,5 Гбит/с/полоса), что облегчает интеграцию экранов и камер с высоким разрешением (до 1080p). Для обеспечения широкой совместимости ESP32-P4 оснащен параллельными интерфейсами дисплея (до 24 бит/цвет) и камеры.

Кроме того, он оснащен емкостным сенсорным вводом и функциями распознавания речи, что делает его удобным для приложений с человеко-машинным интерфейсом. ESP32-P4 объединяет аппаратные ускорители для различных протоколов кодирования и сжатия мультимедиа, включая поддержку кодирования H.264 с максимальной производительностью 1080p при 30 кадрах в секунду. SoC также включает в себя встроенный аппаратный ускоритель обработки пикселей (PPA) и 2D-DMA, которые идеально подходят для разработки графического интерфейса пользователя.

Есть и плата малиновой формы:

К чему можно подключить MIPI DSI экран? - 8

2.Микроконтроллеры с MIPI DSI интерфейсом

Прежде всего вспоминаются микросхемы STM. Есть апнота про DSI host в микросхемах STM32.
DSI Host – это специализированное периферийное устройство для взаимодействия с дисплеями, MIPI DSI. Оно включает в себя специальный видеоинтерфейс, подключенный к LTDC, и универсальный интерфейс APB, который может использоваться для передачи информации на дисплей.

Контроллер LCD-TFT дисплея (LTDC) обеспечивает 24-разрядный параллельный цифровой режим RGB (24 бит/пиксель) и может управлять экранами с разрешением до XGA (1024x768). 
Но максимальное разрешение ограничено доступной пропускной способностью физического канала DSI (lane rate) – 0,5 или 1 Гбит/с:

К чему можно подключить MIPI DSI экран? - 9

DSI хост STM32 поддерживает все режимы работы, определенные в спецификации MIPI DSI: командный режим и все варианты видеорежима (пакетный, не пакетный с синхроимпульсами и не пакетный с событиями синхронизации). Поддерживает скорость соединения до 1 Гбит/с или 2 Гбит/с в зависимости от модели.

Вероятно, есть ещё какие-то микроконтроллеры с MIPI DSI других производителей.

3. Микроконтроллеры кроссоверы с MIPI DSI интерфейсом

IMXRT1170, i.MX-RT1160 и другие.
На Хабре была статья про такие мк.
Имеют 2 пары данных с частотами до 1,5 ГГц на пару (bit rate clock).
Поддерживают командный и видео режимы.

К чему можно подключить MIPI DSI экран? - 10

4. ПЛИС

Интерфейс MIPI довольно специфичен. В режиме Low Power уровень сигнала 1,2 В LVCMOS, в режиме HS уровни согласно стандарту SLVS-400.

К чему можно подключить MIPI DSI экран? - 11

Варианты подключения MIPI экрана/камеры к ПЛИС:

  1. Напрямую.
  2. Через резисторную схему (< 800 Мбит/с на полосу).
  3. Через специальную микросхему (> 800 Мбит/с на полосу).

ПЛИС, которые напрямую поддерживают MIPI DPHY, в основном включают серии Xilinx UltraScale+ (макс. 1,5 Гбит/с на полосу), Lattice Crosslink (макс. 1,5 Гбит/с/полоса) и Lattice Crosslink NX (макс. 2,5 Гбит/с/полоса). Другие типы FPGA требуют добавления дополнительных схем преобразования уровней для преобразования сигналов в LVDS.
Для скоростей < 800 Мбит/с на линию достаточно резисторной схемы. Резисторы используются для подключения, изоляции, терминации и сдвига уровня, чтобы создать D-PHY из имеющихся в ПЛИС стандартов ввода/вывода (LVCMOS или HSTL для LP режима, LVDS для HS).
Есть апноты от Xillinx (D-PHY Solutions XAPP894) и от ALTERA (AN 754: MIPI D-PHY Solution with Passive Resistor Networks in Intel® Low-Cost FPGAs), в которых описано это решение.

FPGA Compatible D-PHY Transmitter:

К чему можно подключить MIPI DSI экран? - 12

К чему можно подключить MIPI DSI экран? - 13

Для скоростей > 800 Мбит/с на линию требуется специальная микросхема преобразования уровней, такая как MC20002, MC20901, LT89101L и т. д.;
Application Example MC20001/MC20002:

К чему можно подключить MIPI DSI экран? - 14

D-PHY на резисторах используется, например, в проекте MIPI DSI Display Shield/HDMI Adapter.

5. Микросхемы преобразования интерфейсов (RGB/HDMI/DP/LVDS… <–> МIPI DSI)

Есть довольно много разных микросхем. На какие-то есть полный даташит и разные руководства, примеры проектов и другие полезности; для каких-то доступен только краткий документ на пару страниц.

SSD2828.
RGB, SPI –> МIPI DSI
Поддерживает до 4 пар данных, 1 Гбит/с/пару.
Максимум 1920 пикселей на строку экрана (60 кадров/с) или 2560 при частоте 30 кадров/с.
Есть полный даташит, руководства (один, два), примеры проектов, готовые платы и т. д.

К чему можно подключить MIPI DSI экран? - 15

SSD2805.
Если нужно запустить экран с командным режимом, то подойдёт эта микросхема.
Остальные перечисленные микросхемы обычно работают с экранами в видеорежиме.
Преобразует RGB + SPIMCU –> MIPI DSI.
Поддерживает до 700Mбит/с, 2 полосы данных (350Мбит/с/полосу).
Пример работы в связке с ESP32.

Есть и другие микросхемы этого производителя.

Toshiba TC358870XBG.
HDMI –> 2 порта MIPI DSI.
TC358870XBG может передать 7,2 Гбит/с видео с HDMI по двойному каналу DSI (1 Гбит/с на дифф. пару).
До 4K×2K (3840×2160) 30 кадров/с, 24 бит цвет.

По одному каналу DSI максимум 2558 пикселей на строку (24 бит на пиксель) или 3411 пикселей (16 бит на пиксель).

Есть примеры проектов (в том числе на Хабре), готовые платы и т. д.

К чему можно подключить MIPI DSI экран? - 16

Микросхемы Lontium.
Есть разные преобразователи интерфейсов MIPI, HDMI, Display Port, LVDS и другие в разные стороны и с разным кол-вом портов, интерфейсов и т. д. (зависит от микросхемы).

К чему можно подключить MIPI DSI экран? - 17

На них обычно находит только даташит на пару страниц (например, LT8918) или чуть больше. Порой можно найти драйвера для Линукса или какой-то код, где можно посмотреть полезную информацию.

На Али и в других местах попадаются платы на этих микросхемах и сами чипы отдельно.

К чему можно подключить MIPI DSI экран? - 18

Список вариантов не претендует на полноту.
Попадаются и другие платы преобразования интерфейсов, непонятно на основе каких микросхем.

К чему можно подключить MIPI DSI экран? - 19

К чему можно подключить MIPI DSI экран? - 20

Как рассчитать скорость передачи данных?

Например, нужно запустить экран COM48H4N22ULC. Хотим узнать, какую максимальную скорость передачи данных на пару должна обеспечить микросхема/решение в видеорежиме, чтобы выбрать подходящие.

16,777,216-color, 4.8" TFT display with 720 x RGB(H) x 1280(V) dots
16,777,216 = 2^24 => экран может 24 бита/пиксель.

К чему можно подключить MIPI DSI экран? - 21

Из этой таблички берём временнЫе параметры.
Ориентируясь на картинку,

К чему можно подключить MIPI DSI экран? - 22

Рассчитаем пиксельную частоту:

PixelClock = (Высота + VSync + VFP + VBP) * (Ширина + HSync + HFP + HBP)*FPS = (1280 + 3 + 6 + 3)*(720 + 15 + 91 + 70) = 69,46 МГц.

Если бы картинка передавалась по RGB интерфейсу, то мы тактировали бы его как раз с такой частотой.

Требуемая скорость передачи данных:

Скорость = PixelClock*24 бита/пиксель = 1,667 Гбит/с.

Такая скорость была бы нужна, если бы мы передавали данные по одной полосе (дифф. паре) данных.

В данном случае 4 пары данных:

К чему можно подключить MIPI DSI экран? - 23

Поэтому на одну дифф. пару получаем:

Скорость/4 = 416,7 Мбит/с.

В интерфейсе MIPI DSI данные считываются по фронту и по спаду тактового сигнала (Double Data Rate), поэтому частота сигнала CLKp,n будет в два раза ниже:

416,7 Мбит/с /2 = 208,4 МГц.

Коротко о главном

Существуют разные решения. У каждого свои плюсы и минусы.
У одноплатных компьютеров обычно есть DSI интерфейс 2 или 4 полосы. Нужно писать драйвер для Линукс.

У некоторых микроконтроллеров есть DSI. Обычно 2 полосы.

Можно использовать ПЛИС. Некоторые могут работать с DSI напрямую, какие-то через специальную схему на резисторах или через специальные микросхемы.

Существуют и микросхемы преобразования интерфейсов.

Чтобы верно выбрать решение, стоит оценить скорость передачи данных на полосу.

Пройдите, пожалуйста, опрос. Нам важно ваше мнение! Спасибо!


Автор: Kopcheniy

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js