И снова хочу предложить Вашему вниманию проект аппаратного конвертера, но теперь уже DisplayPort-LVDS построенный на одной (!) микросхеме NXP.
Постановка задачи
Разработать простой конвертер DisplayPort-LVDS не имеющий прошивки. Аппаратная реализация на доступной элементной базе. Конвертер должен быть универсальным, поддерживать различные типы матриц (с одно- и двух-канальным LVDS) и напряжения управляющих сигналов инверторов. Работа в индустриальном температурном диапазоне. В общем как тот HDMI-LVDS, что был разработан ранее с названием «AHL-14.3». Также очень хотелось добиться полной совместимости между данными контроллерами: распиновака, прошивка EDID, габаритные размеры и размеры для встраивания и т.д. Для удешевления конструкции отказался от DIP переключателей и поддержки питания 24В.
Основные требования
- два канала LVDS (с возможностью переключения и использования одного);
- двухпиксельный режим работы конвертера;
- поддержка матриц разной битности, в идеале от 6 до 10;
- рабочее напряжение конвертера 12В;
- рабочее напряжение панели 3,3В, 5В, 12В;
- управление яркостью/включением подсветки: 3,3В с возможностью инверсии;
Требования к конструктиву
- простое (механическое) конфигурирование платы (джамперы с шагом 2мм);
- геометрические размеры платы должны соответствовать плате «AHL-14.3»;
- включение/выключение, регулировка яркости кнопками на плате;
- индикация включения/выключения/прошивки EDID.
Поиск решения
Немного погуглив, я понял, что решений не так уж и много. Сразу бросился в глаза чип PTN3460, он приглянулся своими габаритами 7х7мм (56-VFQFN) против моего старого решения (с HDMI), когда были два чипа 13х13мм в S-PQFP-G100 корпусах.
С него (PTN3460) и решил начать прототипирование платы (впрочем, на ней и остановился для релиза, так как ее работа не вызвала нареканий). Чип PTN3460 выпускается для работы в двух температурных диапазонах: от 0 и от -40 градусов.
Рис.1. 3D модель контроллера DisplayPort-LVDS top
Рис.2. 3D модель контроллера DisplayPort-LVDS bottom
Выбор элементной базы
PTN3460 имеет минимальную обвязку – это буквально 10 керамических конденсаторов и столько же конфигурационных резисторов. У меня их получилось несколько больше, так как хотелось добиться максимально универсального устройства с конфигурированием всех возможных ног.
Напряжения 3,3В и 5В формируются преобразователями ST1S10PHR компании STMicroelectronics (3А) – они уже давно себя хорошо зарекомендовали, и я их продолжаю использовать в своих проектах (кстати, также неплохие питатели, но уже на 4А – это ST1S41). Контроллер, как и в предыдущей версии, STM32F100.
Уже во время отладки и доработки софта становились на использовании встроенной EEPROM для EDID. Ранее использовалась микросхема, типа AT24C02 (или подобная), где, собственно, и хранился EDID. PTN3460 позволяет разместить EDID внутри себя, что еще немного экономит нам себестоимость.
Рис.3. Схема включения PTN3460
Управление подсветкой и настройками панели
Включение подсветки панели и регулировка яркости осуществляется напряжением 3,3В. Включение происходит посредством подачи логической единицы на определенный пин инвертора, регулировка яркости — с помощью ШИМ. Для управления выведены кнопки на плату (так же имеется разъем для подключения внешней клавиатуры). Обработчик кнопок и ШИМ реализованы на контроллере STM32F100, который так же управляет светодиодной индикацией (включение/выключение/прошивка EDID). Стоит отметить, что есть два типа управления подсветкой (ШИМ): логическая единица максимальная яркость или логический ноль максимальная яркость. В данной конструкции это реализуется переключением джамперов с соответствующим обозначением на плате. В разъем LVDS на плате был заведен пин 3,3В/5В/12В/GND (через джамперы). На матрицах часто присутствуют управляющие пины: MAP (карта данных), BIT (выбор битности), MODE (обычный и зеркальный режим) и т.д… При необходимости управления этими параметрами можно завести соответствующий пин матрицы в разъем LVDS конвертера и изменять один из них.
Рис.4. Внешний вид контроллера DisplayPort-LVDS
Настройка и первое включение
Настройка конвертера сводится к следующему:
- Прошивка контроллера осуществляется по стандартному SWD.
- Установка параметров EDID. На помощь приходит все та же программа «Deltacast E-EDID Editor», в которой мы указываем параметры матрицы из даташита (а иногда и методом подбора, так как не все производители матриц утруждают себя перечислением всех параметров).
Рис.5. Приложение Deltacast E-EDID Editor
Как я писал выше, мне хотелось добиться полной совместимости, в том числе и с программной частью. В прошивке микроконтроллера пришлось изменить адрес EEPROM (все управляющие GPIO я не менял), а вот программа «EDID LOADER» подошла без изменений. Конвертер подключается к ПК по UART с помощью переходника USB-UART. Далее выбираем COM-port, файл с EDID и жмем кнопку прошивки. На плате имеется индикация прошивки светодиодом R_EE. Когда он гаснет программа на ПК выдает сообщения об окончании прошивки. В случае неудачной прошивки вылетает сообщение ошибки.
Рис.6. Приложение EDID LOADER
На данный момент произведено несколько плат для тестирования аппаратной и программной части.
Первая итерация получилась с несколькими проводками – задействовал не те пары в разъеме DisplayPort, а так, устройство заработало сразу, никаких критичных моментов не возникло. Плату сразу делал на 4-х слоях, чтобы проложить хорошие полигоны питания и земли.
Преимущества разработки
- аппаратная реализация конвертера;
- универсальность;
- простота в настройке.
Спасибо за внимание!
PS. Кому интересно, может посмотреть новую статью HDMI-LVDS. Разработка на TSUMV59 от MStar
этот контроллер имеет на борту звук и меню OSD.
Комментарии (28)
Kirillko312
29.07.2019 22:32+1Будете делать как открытый проект, или коммерческий?
Какая ориентировочная стоимость?the_bat Автор
29.07.2019 22:50Проект будет коммерческий. Стоимость есть, но озвучу чуть позже.
Если нужна помощь с реализацией похожего решения (это к вопросу об открытости), могу бесплатно помочь советами.
MSC6502
29.07.2019 23:41И во что это или конвертер HDMI может обойтись папаше Дорсету? Матриц работающих в кладовке много, а контроллеры искать уже напряжно. Очень интересно. Если в пределах 25-30$, может взлететь. Если ближе к 50 — вряд ли.
Zuy
30.07.2019 05:02И снова хочу предложить Вашему вниманию проект аппаратного конвертера, но теперь уже DisplayPort-LVDS построенный на одной (!) микросхеме Texas Instruments.
PTN3460 же вроде бы от NXP, а не от TI.
А на чем делали HDMI->LVDS. Analog Devices, ITE или какой другой приемник использовали?
Было бы интересно увидеть реализацию MIPI_DSI->LVDS.HardWrMan
30.07.2019 06:02Было бы интересно увидеть реализацию MIPI_DSI->LVDS.
HDMI->MIPI тоже интересно, но так как MIPI это как правило портретный экран, то требуется еще и аппаратный блок поворота. Пока что такой видел у китайцев, которые используют MIPI экранчики в ландшафтном режиме. Собрано на FPGA+DRAM.
Как-то такZuy
30.07.2019 06:54Что-то я погорячился с запросом насчет MIPI_DSI -> LVDS, такой конвертор на одном чипе SN65DSI83 делается.
Мне кажется китайцы с переходником на FPGA+DRAM решали немного другую задачу. Ориентацией должен SoC заниматься. Может они там Color Space Conversion делают?HardWrMan
30.07.2019 08:02Нет, именно поворот. Иначе бы внутренних ячеек M9K бы хватило на пайплайн вывода для преобразования интерфейса. SoC же обычно настраивается на конкретную панель с конкретными параметрами. И хотя они умеют зеркалить по X или Y (или по обоим осям одновременно, это не сложно, просто менять порядок строк или пикселей в строке) это совсем не то же, что и поворот изображения на 90 градусов, когда требуется изменить конфигурацию строк: новая строка собирается из пикселей разных строк. Для этого приходится хранить весь кадр целиком (инпут лаг на 1 фрейм).
Кстати, на фото выше был TTL->MIPI. HDMI->MIPI есть на одном чипе, пример ниже. Экран 2к 1440x2560, поворот возможен только программно (на Pi или PC).
HDMI->MIPI
the_bat Автор
30.07.2019 08:20Точно, NXP, спасибо!
TFP401A, SN75LVDS83B и DS90C387A
У меня есть статья на эту тему, если интересно.
Для MIPI_DSI->LVDS у меня тоже есть решение аппаратное. Думаю можно написать тоже.Zuy
30.07.2019 09:04Очень интересно, можете ссылку на нее дать. Я вроде в профиле статьи просмотрел но похожей не нашел.
erlyvideo
30.07.2019 07:15+1Интересна другая, соседняя тема.
1) В спеках на сетевую карту intel i350 указано, что там допустим отдельный DTMF канал связи. Если я правильно понимаю, то вроде как это означает, что кроме PCIe по тем же проводам можно ещё дополнительно передать информацию. Куда, кому и кто ещё есть на моём компьютере?
2) в той же сетевухе есть GPIO выходы. Можно ли к этим выходам с другой стороны припаять UART?
Jedi_Knight
30.07.2019 15:27Вспомнился abusemark.com/store/index.php?main_page=product_info&products_id=47
Давно хочу мега-моник из 4 таких штук, чел который делал корпус 1.5 года тянет :)
Gugic
30.07.2019 20:30Вот недавно как раз задавался вопросом — и серьезные кампании и ноунейм китайцы уже давно вовсю клепают «портативные мониторы» (которые по факту как раз подобный контроллер + какая-то матрица в корпусе). И даже есть варианты с включением по единому usb-c (dp, питание и иногда еще usb-passthrough для подключения тачскрина заводится через этот порт). — например вот один из самых популярных: www.asus.com/us/Monitors/MB16AC
Но они все (которые мне удалось найти) ограничены 15", FullHD@60 Hz и довольно неяркими матрицами — вроде как просто второй монитор для вашего ноутбука для повышения продуктивности на ходу.
Варианты на 17+ дюймов и с хотя бы 120Hz встречаются у китайцев, но они в большинстве своем на страшненьких TN матрицах (хотя для ноутбуков уже довольно давно выпускаются очень приличные IPS с 120/144 и даже 240 Hz) и с дополнительным питанием (в основном с таким же как у автора со стандартным круглым разъемом).
Пытался у китайцев поискать готовые переходники с usb-c на edp но что-то как-то глухо пока, максимум те же FullHD@60Hz и обязательное внешнее питание (может плохо искал конечно).
Я могу предположить что эти вот общепринятые 15", 60Hz и не очень яркие матрицы — это ограничение порта/протокола — сколько там с чистого DP можно брать — 8 ватт? И я не лазил глубоко в спецификации, так что могу пока только задавать вопросы:
Вот есть USB-C, там теоретически есть DP (который DisplayPort) и PD (Который Power Delivery, до 100 ватт). Есть большие мониторы, которые с внешним питанием, подключаются к ноутбуку например через usb-c (DP + usb pass-through, чтобы можно было монитор как «док» использовать) и при этом передают на ноутбук до 100 ватт через PD.
Наверное, кстати, такую схему найти можно, но к ней придется еще как-то конвертер из DP в EDP приделать (что в общем не должно быть большой проблемой).
Возможен ли альтернативный вариант, когда ноутбук подключен к питанию и к нему подключен монитор и монитор полностью питается от ноутбука — не 8w которые из DP можно брать, а больше? (вероятно не делают поддержки PD на выходе С ноутбука и поэтому нет).
Ну т.е. я выбрал в «опросе» второй вариант про комментарий.
В идеале хотелось бы иметь какую-то такую схему:
«конвертер» (я так понимаю что это не совсем конвертер в данном случае, потому что принимает DP и отдает DP на матрицу, так что скорее адаптер) USB-C -> EDP + USB (ну допустим тачскрин дополнительно подключить к матрице, или просто матрица с тачскрином) + Audio с поддержкой FullHD@120Hz (вероятно это чисто технически невозможно), опционально дополнительный разъем питания, тоже USB-C с поддержкой PD, который используется если сам «конвертер» подключен не через полнофункциональный usb-c, а через обычный DP/HDMI с адаптером или к телефону например. В режиме работы с доп питанием хорошо бы уметь это питание отправлять обратно на ноутбук.
Или может какой режим «совместимости» можно придумать, когда с одним usb-c матрица работает только в 60Hz и с низкой яркостью, а с «внешним» питанием работает на полную и еще и PD отдает на порт, который в ноутбук/телефон идет.
В общем какую-то такую схему я бы наверное купил чтобы сделать себе внешний монитор, который позволяет не запутывать себя проводами.
Хотя производители потихоньку догоняют, тот же асус недавно представил 240Hz переносной монитор (https://rog.asus.com/articles/gaming-monitors/rog-strix-xg17-squeezes-240hz-into-a-portable-monitor-for-gaming-on-the-road/) с вменяемой вроде как матрицей, но он выйдет похоже только в следующем году, там все еще нет тачскрина (бывают вообще матрицы на 120+ Hz с тачскрином?), непонятно как питание организовано и цена.
bm13kk
31.07.2019 11:45Планируется ли добавить DP chaining?
А если нет, существуют ли какие-либо обходные пути? Чтобы несколько матриц запустить на одном кабеле?
the_bat Автор
31.07.2019 15:44Можно поставить мультиплексор DP, например на 4 порта и ставить 4 PTN3460, это колхоз и дорого, но относительно просто.
ipswitch
Респект за подход и реализацию!
После прочтения этого здеца только приветствую такие решения!
the_bat Автор
Спасибо!
Статья по ссылке и правда заставила задуматься )))
KreolMejnovskii
Поддерживаю.