Добрый день, Хабр!
Мне здесь несколько раз задавали вопросы по поводу преобразователя 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В.
Дифференциальные пары на схеме определены и объединены в соответствующие классы.
Рисунок 1. Схема подключения SN75DP139RSBR
С Тошибой все немного сложнее.
Во-первых, он в корпусе P-VFBGA80, во-вторых, для его питания требуется несколько напряжений, в-третьих, нужен внешний тактовый генератор на 48 МГц, и, наконец, даташит оставляет желать лучшего.
Рис.
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.).
Рис.
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.).
Рис.
4. Схема драйвера подсветки матрицы TPS61161DRV Блок питания 5В и 3,3В выполнен на двух DC/DC: ST1S10PHR (можно заменить на ST1S41PHR) и AP3418KTR соответственно.
Брал с большим запасом по току, но, повторюсь, они у нас есть в наличии и купить их сравнительно легко.
Печатная плата
Мы закончили со схемой, теперь трассировка.Плата была сделана в 4 слоя.
Второй — GND, третий — POWER. Думаю, можно было бы попробовать и разбавить на 2 слоя, но смысла в такой экономии не вижу, так как можем потерять в качестве.
Рис.
5. Трассировка MIPI DSI Пришлось немного поэкспериментировать с разводкой DSI на разъем матрицы.
Расположение сигналов на дисплее оказалось очень неудобным, но очень хотелось сделать по стандартному классу с переходными отверстиями 0,3/0,6. Длины я решил не проверять, так как расстояние минимальное и разница длин проводников не большая.
Хотя можно было бы сделать - место позволяет. Трассировка SN75DP139RSBR без переходных отверстий.
Для корректной разводки конденсаторы питания обеих микросхем были установлены снизу.
Рис.
6. Трассировка SN75DP139RSBR Хотел (для тестов) вывести оба MIPI DSI из TC358870XBG, но, к сожалению, на плате не хватило места, чтобы все сделать правильно.
Он оказался громоздким и второй разъем DSI оказался снизу.
Теперь немного о документации.
Первое, что меня насторожило, это отсутствие информации о режиме Single link DSI в Toshiba. Он заявлен, но как его использовать и какой канал для этого используется нигде явно не указано (понятно, что, скорее всего, можно выбрать либо любой, либо нулевой, но все же, а вдруг только первый.
) .
Методом проб и ошибок, а также копаясь в документации, нам удалось найти регистр, задающий данную конфигурацию, но это было совсем не очевидно.
В даташите матрицы AUO нет описания регистров для конфигурации MIPI DSI. Чтобы дисплей включился, его нужно инициализировать через MIPI, написав с десяток команд. Это необходимо делать каждый раз после подачи питания на матрицу.
Мы запросили расширенную документацию по дисплею, и дело пошло быстрее.
Изначально дисплей имеет портретную ориентацию (1200*1920), но в настройках монитора на ПК его можно переключить в альбомный режим.
Рис.
7. Изображение на матрице Г080УАН02.1 Спасибо за внимание! Теги: #Производство и разработка электроники #Электроника для начинающих #HDMI #mipi #DP++ #DSI
-
Причины Сделать Редизайн Сайта
19 Oct, 24 -
Zoom До Сих Пор Не Понимает Gdpr
19 Oct, 24 -
1992—2009 Гг.
19 Oct, 24 -
Ньюскало: История Успеха Из Хорватии
19 Oct, 24