Конвертер Из Hdmi/Dp++ В Mipi Dsi

Добрый день, Хабр!

Конвертер из HDMI/DP++ в MIPI DSI

Мне здесь несколько раз задавали вопросы по поводу преобразователя HDMI в MIPI DSI. Так сказать, по просьбам трудящихся выкладываю то, что у меня получилось.

В статье я коснусь аппаратной стороны реализации устройства и обрисую основные проблемы, с которыми я столкнулся.

Приятного чтения.



Постановка задачи

Идея реализации родилась давно, но тогда возникла необходимость разработать преобразователь в конкретном форм-факторе (малых габаритах, включая высоту), со специфическим разъемом (вместо HDMI), с поддержкой одного Канал MIPI DSI (забегая вперед скажу, что схемотехника изделия позволяет использовать два канала, но один канал пришлось отключить).



Основные требования

  • вход HDMI/DP++;
  • один канал MIPI DSI;
  • подключение матрицы G080UAN02.1 (8”, 1200*1920);
  • регулировка уровня яркости подсветки;
  • Рабочее напряжение преобразователя 12В.



Структурные требования

  • геометрия доски 60*60мм с наименьшей высотой;
  • возможность изменения EDID из программы ПК;
  • микроконтроллер для управления и настройки STM32F103.


Поиск решения

На момент написания статьи (февраль 2022 г.

) на рынке электронных компонентов все еще существуют проблемы.

Из того, что было в наличии, в приемлемые сроки удалось найти пару SN75DP139RSBR (TI) + TC358870XBG (Toshiba).

Первый чип, DisplayPort to TMDS Level-Shifting Re-Driver, предназначен для согласования интерфейса DP++ с входом HDMI второго чипа.

TC358870XBG позволяет получать два канала MIPI DSI через HDMI. Ниже (рис.

1.) представлена схема подключения SN75DP139RSBR. Я уже использовал подобные микросхемы и здесь все стандартно.

Главное не забыть конфигурационные резисторы (они обозначены на схеме), в том числе I2C_EN. У TI как обычно отличные даташиты и проблем с включением нет. Микросхема питается одним напряжением 3,3В.

Дифференциальные пары на схеме определены и объединены в соответствующие классы.



Конвертер из HDMI/DP++ в MIPI DSI

Рисунок 1. Схема подключения SN75DP139RSBR С Тошибой все немного сложнее.

Во-первых, он в корпусе P-VFBGA80, во-вторых, для его питания требуется несколько напряжений, в-третьих, нужен внешний тактовый генератор на 48 МГц, и, наконец, даташит оставляет желать лучшего.



Конвертер из HDMI/DP++ в MIPI DSI

Рис.

2. Схема подключения TC358870XBG Итак, обо всем по порядку.

С делом все ясно.

Шаг между шариками 0,65 мм — это позволит выводить проводники 0,125 мм, что сейчас является стандартным по стандартам Резонита.

В даташите указано, что необходимо подать четыре напряжения - 1,2В, 1,8В, 3,3В и 5В (там указан диапазон всех параметров (указан на схеме) и есть несколько вариантов включения).

Как позже выяснилось, 5В нужно только для пересылки сигнала HDMI_HP, а 1,8В — это VDDIO, который можно использовать при 3,3В.

Генератор из имеющихся в продаже 7W-48.000MBB-T. К скудному даташиту я вернусь позже.

В схеме переключения вроде бы тоже нет ничего особенного.

Микросхема имеет два интерфейса I2C. Один подключаем к микроконтроллеру, второй через SN75DP139RSBR направляем в порт HDMI ПК.

Звук использовать не буду, поэтому на ПКМ установил только конденсаторы (на всякий случай).

Также я буду управлять сигналом сброса (шарик К8 - RESETN) от микроконтроллера.

Теперь немного об EDID и его хранилище.

У Toshiba есть EDID_SRAM, куда можно записывать параметры матрицы.

Для одного из своих прошлых проектов я реализовал небольшую схему записи EDID во внешнюю EEPROM. Схема ниже (рис.

3.).



Конвертер из HDMI/DP++ в MIPI DSI

Рис.

3. Схема подключения EEPROM для EDID Здесь нет ничего особенного.

EEPROM подключен по I2C параллельно к Toshiba (у последнего есть регистр для отключения использования EDID_SRAM).

На основании события, например, нажатия кнопки (S1), микроконтроллер меняет адрес EEPROM (чтобы не было коллизий при подключении устройства к ПК), записывает EDID в чип, восстанавливает адрес в тот, который ждет ПК по HDMI, и, собственно, все.

Как только устанавливается сигнал HPD_SOURCE и на шине I2C появляется EEPROM, видеокарта вычитает параметры и в системе появляется индикация.

Сделано это было, как говорится, на случай пожара.

Проблем с пересылкой параметров EDID не возникло и было решено оставить это Toshiba. С помощью специального ПО для ПК заливаем UART EDID во флеш контроллера и отправляем в TC358870XBG (или сохраняем во внешнем EEPROM и при необходимости прошиваем с помощью кнопки, например (все зависит от необходимости и реализация в программном обеспечении)).

Для управления подсветкой дисплея я использую драйвер TPS61161DRV от TI. Я уже несколько раз использовал его в разных проектах, очень хорошее решение.

Среди особенностей небольшой корпус (2*2мм), высокий КПД (до 90%), хороший диапазон напряжения (2,7-18В) и возможность подключения от 6 до 10 светодиодов (номера партнеров различаются, но корпус и цепи переключения нет).

Водитель имеет два режима управления.

РЕЖИМ УПРАВЛЕНИЯ – режим, позволяющий устанавливать значения яркости по One-Wire, идеально подходит для моментов, когда нет возможности постоянно выводить ШИМ на драйвер.

PWM MODE — обычный режим ШИМ (на той же ножке, что и One-Wire), который я и использую.

ШИМ 5-100 кГц, регулировка яркости по скважности.

Ниже представлена схема (рис.

4.).



Конвертер из HDMI/DP++ в MIPI DSI

Рис.

4. Схема драйвера подсветки матрицы TPS61161DRV Блок питания 5В и 3,3В выполнен на двух DC/DC: ST1S10PHR (можно заменить на ST1S41PHR) и AP3418KTR соответственно.

Брал с большим запасом по току, но, повторюсь, они у нас есть в наличии и купить их сравнительно легко.



Печатная плата

Мы закончили со схемой, теперь трассировка.

Плата была сделана в 4 слоя.

Второй — GND, третий — POWER. Думаю, можно было бы попробовать и разбавить на 2 слоя, но смысла в такой экономии не вижу, так как можем потерять в качестве.



Конвертер из HDMI/DP++ в MIPI DSI

Рис.

5. Трассировка MIPI DSI Пришлось немного поэкспериментировать с разводкой DSI на разъем матрицы.

Расположение сигналов на дисплее оказалось очень неудобным, но очень хотелось сделать по стандартному классу с переходными отверстиями 0,3/0,6. Длины я решил не проверять, так как расстояние минимальное и разница длин проводников не большая.

Хотя можно было бы сделать - место позволяет. Трассировка SN75DP139RSBR без переходных отверстий.

Для корректной разводки конденсаторы питания обеих микросхем были установлены снизу.



Конвертер из HDMI/DP++ в MIPI DSI

Рис.

6. Трассировка SN75DP139RSBR Хотел (для тестов) вывести оба MIPI DSI из TC358870XBG, но, к сожалению, на плате не хватило места, чтобы все сделать правильно.

Он оказался громоздким и второй разъем DSI оказался снизу.

Теперь немного о документации.

Первое, что меня насторожило, это отсутствие информации о режиме Single link DSI в Toshiba. Он заявлен, но как его использовать и какой канал для этого используется нигде явно не указано (понятно, что, скорее всего, можно выбрать либо любой, либо нулевой, но все же, а вдруг только первый.

) .

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

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

Мы запросили расширенную документацию по дисплею, и дело пошло быстрее.

Изначально дисплей имеет портретную ориентацию (1200*1920), но в настройках монитора на ПК его можно переключить в альбомный режим.



Конвертер из HDMI/DP++ в MIPI DSI

Рис.

7. Изображение на матрице Г080УАН02.1 Спасибо за внимание! Теги: #Производство и разработка электроники #Электроника для начинающих #HDMI #mipi #DP++ #DSI

Вместе с данным постом часто просматривают: