- PVSM.RU - https://www.pvsm.ru -

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

К чему можно подключить 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 пары данных и одна тактовая).
Схема [1].

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

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

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

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

У Compute Module 3+ [4], CM4 [5] 
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 [6] – это высокопроизводительный микроконтроллер (или, скорее, гибрид), который поддерживает большой объем встроенной памяти и обладает хорошими возможностями обработки изображений и голоса. 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 [7] в микросхемах 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 [8], i.MX-RT1160 [9] и другие.
На Хабре была статья [10] про такие мк.
Имеют 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 [11] (макс. 1,5 Гбит/с/полоса) и Lattice Crosslink NX [12] (макс. 2,5 Гбит/с/полоса). Другие типы FPGA требуют добавления дополнительных схем преобразования уровней для преобразования сигналов в LVDS.
Для скоростей < 800 Мбит/с на линию достаточно резисторной схемы. Резисторы используются для подключения, изоляции, терминации и сдвига уровня, чтобы создать D-PHY из имеющихся в ПЛИС стандартов ввода/вывода (LVCMOS или HSTL для LP режима, LVDS для HS).
Есть апноты от Xillinx (D-PHY Solutions XAPP894 [13]) и от ALTERA (AN 754 [14]: 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 [15], LT89101L [16] и т. д.;
Application Example MC20001/MC20002:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник [31]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/stm32/422941

Ссылки в тексте:

[1] Схема: https://datasheets.raspberrypi.com/rpi3/raspberry-pi-3-b-plus-reduced-schematics.pdf

[2] Compute Module 5: https://datasheets.raspberrypi.com/cm5/cm5-datasheet.pdf

[3] camera/display transceivers: https://www.raspberrypi.com/products/raspberry-pi-5/

[4] Compute Module 3+: https://datasheets.raspberrypi.com/cm/cm3-plus-datasheet.pdf

[5] CM4: https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf

[6] ESP32-P4: https://www.erlendervik.no/ESP32-C5%20Beta_ESP32-P4_ESP8686_ESP32-C3FH4X/ESP32_P4_Chip_Datasheet_V0.1_PRELIMINARY_EN.pdf

[7] апнота про DSI host: https://www.st.com/resource/en/application_note/an4860-introduction-to-dsi-host-on-stm32-mcus-and-mpus-stmicroelectronics.pdf

[8] IMXRT1170: https://www.nxp.com/products/i.MX-RT1170

[9] i.MX-RT1160: https://www.nxp.com/products/i.MX-RT1160

[10] статья: https://habr.com/ru/articles/700864/

[11] Lattice Crosslink: https://www.latticesemi.com/Products/FPGAandCPLD/CrossLink

[12] Lattice Crosslink NX: https://www.latticesemi.com/Products/FPGAandCPLD/CrossLink-NX

[13] XAPP894: https://github.com/chili-chips-ba/openeye-CamSI/blob/main/0.doc/Xilinx/MIPI/xapp894-d-phy-solutions.pdf

[14] AN 754: https://cdrdv2-public.intel.com/666639/an754-683092-666639.pdf

[15] MC20002, MC20901: https://www.meticom.com/Products.html

[16] LT89101L: https://www.lontiumsemi.com/UploadFiles/2021-03/LT89101L_Brief_R1.pdf

[17] в проекте: https://hackaday.io/project/364/logs

[18] даташит: https://www.buydisplay.com/download/ic/SSD2828.pdf

[19] один: https://www.internetsomething.com/lcd/ssd2828/SSD2828%20Getting%20Start%20User%20Guide%20v02.pdf

[20] два: https://www.internetsomething.com/lcd/ssd2828/SSD2828%20Debug%20step%20Guide%20line.pdf

[21] микросхема: https://static6.arrow.com/aropdfconversion/4a928083b4ba2cc3553d5432fd493b90903b2ce2/1811211633_solomon-systech-ssd2805cg39r_c235734.pdf

[22] Пример работы: https://web.archive.org/web/20190220193428/https:/blog.littlevgl.com/2019-02-02/use-ipod-nano6-lcd-for-littlevgl

[23] TC358870XBG: https://toshiba.semicon-storage.com/info/TC358870XBG_datasheet_en_20171025.pdf?did=28743&prodName=TC358870XBG

[24] на Хабре: https://habr.com/ru/post/649605/

[25] Есть разные: https://www.lontiumsemi.com/mipi/

[26] LT8918: http://lcsc.com/datasheet/lcsc_datasheet_2211151030_LONTIUM-SEMICONDUCTOR-LT8918_C5261041.pdf

[27] чуть больше: https://img.iceasy.com/product/product/files/201610/ff80808155e70f700157dbc3dc1b017b.pdf

[28] другие: https://aliexpress.ru/item/1005004276613938.html?spm=a2g2w.detail.rcmdprod.2.7dde2073ZHGFHw&mixer_rcmd_bucket_id=aerabtestalgoRecommendAbV4_controlRu1&ru_algo_pv_id=ebf95a-40a3c7-9fc34d-1b589b&scenario=pcDetailBottomMoreThisSeller&sku_id=12000028847104228&traffic_source=recommendation&type_rcmd=core

[29] платы: https://aliexpress.ru/item/4000093442742.html?sku_id=10000000247475351&spm=a2g2w.productlist.search_results.5.47bc4aa69Hv8zq

[30] COM48H4N22ULC: https://www.panelook.com/upload/201612/COM48H4N22ULC_Ver1.0_20160719_201612147153.pdf

[31] Источник: https://habr.com/ru/companies/timeweb/articles/918874/?utm_campaign=918874&utm_source=habrahabr&utm_medium=rss