Некоторое время назад мне удалось сделать обратную разработку нескольких экранов от смартфонов с интерфейсом MIPI DSI.

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

Обратная и прямая разработки поскакали в одной упряжке :-)

Посмотрим живой процесс разработки. Это всегда интересно!

В первой части рассмотрим несколько решений и выберем наиболее подходящее. А также начнём проектировать схему.

❯ Какое решение выберем?

У меня под рукой есть Малина 3В.

Варианты подключения экрана к Малине:

1.    Напрямую к DSI выходу (2 пары данных и одна тактовая).

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

2.    Преобразовать RGB –> MPI DSI.

В этом случаем получим 4 пары данных, что позволит подключать экраны с бОльшим разрешением. К тому же, у меня есть плата SX100, про которую писал ранее (часть 1, часть 2, часть 3), STM32 c RGB интерфейсом и т. д.

Получаем максимальную гибкость в экспериментах.

3.    Преобразовать HDMI –> MPI DSI.

Удобно подключать, меньше проводов, чем у RGB.

 Каждый вариант по-своему интересный. Мне нужно 4 пары данных, максимальная гибкость и возможность поэкспериментировать с RGB интерфейсом.

Поэтому выбираем преобразование RGB –> MPI DSI на SSD2828. Эта микросхема доступная, в приятном корпусе. Есть полный даташит, руководства (один, два), примеры проектов. Можно купить готовые платы.

Кроме SSD2828 есть и другие микросхемы RGB –> DSI. Например, LT8918 (MIPI DSI/CSI-2 Transmitter), но полезностей для них доступно меньше.

❯ Какие есть решения на SSD2828?

1. Готовые платы.

На Али попадается несколько вариантов плат. Отличаются разъёмами, наличием на плате управляющего микроконтроллера, схемой питания и другим. На момент написания статьи (март 2025) платы стоят в районе 3000 р. Попадаются разные варианты до 10 000 р.

Есть варианты для стыковки с платой FPGA (на платах установлены STM8 и ПЛИС Altera):

А вот эта плата довольно симпатичная, но некоторые решения хочется изменить:

На каких-то платах много лишних деталей. Где-то хочется изменить систему питания, разъёмы, кварц и др. Да и просто попробовать новые технологии/инструменты/компоненты и сделать всё красиво и под свои задачи/обстоятельства. Поэтому разработаем свою плату.

2. Проекты на SSD2828.

2.1 Проект на двухслойной плате.

Это проект платы для экрана Sharp LS050T1SX01. На плате установлен управляющий микроконтроллер STM32F030F4 и SSD2828.

Плата двухслойная с копланарными дифференциальными линиями передачи.

Дифференциальное сопротивление получилось 100 Ом, а несимметричное – 68 Ом из-за ограничений 2-слойной платы.

2.1 Модульный проект.

В этом проекте одна основная плата с SSD2828 и переходные платы на конкретную модель экрана (в данном случае LH154Q01 AUO и VS035ZSM BOE).

Микроконтроллера на плате нет. Для его подключения выведен SPI интерфейс.

Схема.

Выглядит симпатично, только шлейф подключен странно.

https://github.com/dartcom/ssd2828-dev/raw/master/imgs/IMG_5384.JPG

Здесь плата 4-слойная, на стеке JLC04161H-7628 JLCPCB

Есть и другие проекты на SSD2828.

❯ Модульная система – это удобно

Модульность напрашивается сама собой. Это действительно удобно. Особенно, если сразу есть цель подключить более одного экрана.

Обычно так и делают.

Сделаем основную плату с удобным разъёмом для подсоединения переходных плат. Своя на каждую модель экрана.

❯ Будем ставить на плату микроконтроллер или нет?

С одной стороны, микроконтроллер на плате – это удобно. Не нужно цеплять к плате ещё какие-то платы, провода.

А с другой – на этапе экспериментов нужна наибольшая гибкость. У меня под рукой несколько плат с STM32 и другими контроллерами. Пока не ясно, что удобнее использовать. Может, появится желание взять RGB сигнал с какого-нибудь STM32f469 или STM32H750VB. Или что-нибудь изменить в проекте.

Поэтому мк ставить на плату не будем. Просто выведем SPI и нужные сигналы на удобный разъём.

❯ Что выводить на разъём, кроме MIPI DSI интерфейса?

Переходные платы для экранов будем соединять с основной через удобный разъём.

На момент проектирования меня интересуют экраны:

1.    От китАйфона 6(S).

Разрешение экрана 540 x 960. 2 пары данных.

Диагональ измерил – 119 мм (4,68 дюйма).

LED-, LED+. Напряжение подсветки 17,09 В. Ток 20 мА?

Питание 1,8 В; 2,8 В. 3 Дифф пары: D0, D1, CLK. Сброс (Reset).

2.    От Explay A351.

LED-, LED+. Напряжение подсветки LED+ 17,1В

Питание 1,8 В; 2,8 В. 2 Дифф пары: D0, CLK. Сброс (Reset).

3.    От Prestigio PSP3502 DUO.

854х480. Диагональ измерил – 129 мм (5,07 дюйма)

LED-, LED+. Напряжение подсветки 14,8 В

Питание 1,8 В; 2,8 В. 3 Дифф пары: D0, D1, CLK. Сброс (Reset).

На шлейфе 3 пары, в сервис мануале 5. Видимо, разные модели экранов. Выведем все 5 пар для универсальности.

4.    От китАйфона 8+.

1280х720. Диагональ измерил – 139 мм (5,47 дюйма)

LED-, LED+. Напряжение подсветки LED+ 22,0 В

22/7= 3,14 В. Т е 7 светодиодов (прямое падение в районе 3 В)

Скорее всего, 5 дифф. пар: D0…D3, CLK. Сброс (Reset)

Питание предположительно тоже +1,8 В и +2,8 В.

5.    И другие.

Видно, что нужно на дочернюю платы передать 5 дифф пар: D0…D3, CLK (разделённые землёй); питание подсветки (LED-, LED+); питание экрана +1,8 В и +2,8 В и сброс (Reset).

Вывести ещё +3,3 или +5 В (входное питание), если нужно будет получить какое-то специфичное питание для конкретного экрана.

❯ Драйвер подсветки

Драйвер подсветки возьмём с запасом по напряжению и току ключа, чтобы подходил ко всем экранам. Например, до 30…38 В.

Как вариант, STLD40D. Есть много предложений на Али.

Остановимся на MAX8595XETA. Расчёт по даташиту. Можно посмотреть демо плату MAX8596XEVKIT.

Позже захотелось заказать компоненты с LCSC. MAX8595XETA там не оказалось.

Хочется 8-9 светодиодов. Поэтому на LCSC ищем с вых. напряжением примерно 30 В.

Переделаем на TPS61161.

В данном случае подойдёт типовая схема из даташита.

MBR0540 на 40 В – маловато, я бы взял запас. Падение у него 510 мВ при 500 мА.

SSL16PL нет на LCSC. Есть в Чип Дипе. Нашёл похожий 60 В диод на LCSC – SK16WA.

❯ Нужны ли резисторы согласования уровня?

У платы с Али есть решение с резисторами 22 Ом на линиях RGB интерфейса.

Предварительно планируется брать RGB видео сигнал с платы SX100, STM32 c модулем LTDC, с GPIO Малины. Все эти источники имеют логический уровень 3,3 В. Поэтому добавлять резисторы не будем. При необходимости сделаем отдельный внешний преобразователь уровня.

❯ Чем тактировать SSD2828?

В SSD2828 Getting Start User Guide предлагается 2 варианта тактирования: активный генератор

и пассивный кристалл.

Пусть будет пассивный. Мне нравится такой SMD резонатор:

Подбираем на LCSC.

Как рассчитать нагрузочные конденсаторы (С11, С12)?

В данном случае нагрузочная ёмкость Cload = 12 пФ.

Берём load capacitance, вычитаем паразитную ёмкость 2…5 пФ, и умножаем на 2. (12-5)*2 = 14 пФ. Это и будет номинал конденсаторов (берём ближайший).

Последовательно с выходом генератора резистор 0 Ом. На случай, если нужно будет снизить уровень возбуждения. Следуем лучшим практикам.

Несколько источников по расчёту нагрузочных конденсаторов и др.

1.    Есть документ от ST как выбирать элементы схемы и т д (с примерами разводки). AN2867 Application note Oscillator design guide for STM8S, STM8A and STM32 microcontrollers

2.    Короткая заметка по расчёту ёмкостей Calculating crystal load capacitor

3.    App note: Pierce oscillator fundamentals   

http://dangerousprototypes.com/blog/wp-content/media/2023/10/an_abracon_pierce_fundamentals.png

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

Есть множество вариантов, к чему можно подключить MIPI DSI экран.

Если под рукой оказался одноплатник с DSI видеовыходом, можно подключить к нему экран напрямую. Нужно необходимое количество полос данных и драйвер для Линукса.

Иногда удобнее преобразовать другие видеоинтерфейсы одноплатного компьютера в MIPI DSI. Например, с помощью доступной микросхемы SSD2828.

Существуют готовые платы и проекты на этой микросхеме. Часто из имеющихся решений берут какие-то идеи и рождается новый проект, более подходящий к текущим условиям.

Так получилось и у нас.


Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале 

Опробовать ↩

Комментарии (2)


  1. the_bat
    25.06.2025 11:13

    Отличная статья! Тоже, кстати, активно использую TPS61161


    1. Kopcheniy Автор
      25.06.2025 11:13

      Спасибо!

      Читал про эту микросхемку в ваших статьях.) Когда искал замену MAX8595XETA, как-то сразу вспомнилось это решение.