Доброго времени суток, Хабр!



И снова хочу предложить Вашему вниманию проект аппаратного конвертера, но теперь уже 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

Настройка и первое включение


Настройка конвертера сводится к следующему:

  1. Прошивка контроллера осуществляется по стандартному SWD.
  2. Установка параметров 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)


  1. ipswitch
    29.07.2019 21:26
    +2

    Респект за подход и реализацию!
    После прочтения этого здеца только приветствую такие решения!


    1. the_bat Автор
      29.07.2019 21:33

      Спасибо!
      Статья по ссылке и правда заставила задуматься )))


      1. KreolMejnovskii
        30.07.2019 19:14

        Поддерживаю.


  1. Kirillko312
    29.07.2019 22:32
    +1

    Будете делать как открытый проект, или коммерческий?
    Какая ориентировочная стоимость?


    1. the_bat Автор
      29.07.2019 22:50

      Проект будет коммерческий. Стоимость есть, но озвучу чуть позже.
      Если нужна помощь с реализацией похожего решения (это к вопросу об открытости), могу бесплатно помочь советами.


  1. MSC6502
    29.07.2019 23:41

    И во что это или конвертер HDMI может обойтись папаше Дорсету? Матриц работающих в кладовке много, а контроллеры искать уже напряжно. Очень интересно. Если в пределах 25-30$, может взлететь. Если ближе к 50 — вряд ли.


  1. Zuy
    30.07.2019 05:02

    И снова хочу предложить Вашему вниманию проект аппаратного конвертера, но теперь уже DisplayPort-LVDS построенный на одной (!) микросхеме Texas Instruments.
    PTN3460 же вроде бы от NXP, а не от TI.

    А на чем делали HDMI->LVDS. Analog Devices, ITE или какой другой приемник использовали?

    Было бы интересно увидеть реализацию MIPI_DSI->LVDS.


    1. HardWrMan
      30.07.2019 06:02

      Было бы интересно увидеть реализацию MIPI_DSI->LVDS.

      HDMI->MIPI тоже интересно, но так как MIPI это как правило портретный экран, то требуется еще и аппаратный блок поворота. Пока что такой видел у китайцев, которые используют MIPI экранчики в ландшафтном режиме. Собрано на FPGA+DRAM.
      Как-то так
      image


      1. Zuy
        30.07.2019 06:54

        Что-то я погорячился с запросом насчет MIPI_DSI -> LVDS, такой конвертор на одном чипе SN65DSI83 делается.

        Мне кажется китайцы с переходником на FPGA+DRAM решали немного другую задачу. Ориентацией должен SoC заниматься. Может они там Color Space Conversion делают?


        1. HardWrMan
          30.07.2019 08:02

          Нет, именно поворот. Иначе бы внутренних ячеек M9K бы хватило на пайплайн вывода для преобразования интерфейса. SoC же обычно настраивается на конкретную панель с конкретными параметрами. И хотя они умеют зеркалить по X или Y (или по обоим осям одновременно, это не сложно, просто менять порядок строк или пикселей в строке) это совсем не то же, что и поворот изображения на 90 градусов, когда требуется изменить конфигурацию строк: новая строка собирается из пикселей разных строк. Для этого приходится хранить весь кадр целиком (инпут лаг на 1 фрейм).

          Кстати, на фото выше был TTL->MIPI. HDMI->MIPI есть на одном чипе, пример ниже. Экран 2к 1440x2560, поворот возможен только программно (на Pi или PC).

          HDMI->MIPI
          image


        1. the_bat Автор
          30.07.2019 08:21

          Да, именно на этом чипе)


    1. the_bat Автор
      30.07.2019 08:20

      Точно, NXP, спасибо!
      TFP401A, SN75LVDS83B и DS90C387A
      У меня есть статья на эту тему, если интересно.
      Для MIPI_DSI->LVDS у меня тоже есть решение аппаратное. Думаю можно написать тоже.


      1. Zuy
        30.07.2019 09:04

        Очень интересно, можете ссылку на нее дать. Я вроде в профиле статьи просмотрел но похожей не нашел.


        1. the_bat Автор
          30.07.2019 10:41

          Если Вы про HDMI-LVDS, то вот она
          habr.com/ru/post/370073


  1. erlyvideo
    30.07.2019 07:15
    +1

    Интересна другая, соседняя тема.

    1) В спеках на сетевую карту intel i350 указано, что там допустим отдельный DTMF канал связи. Если я правильно понимаю, то вроде как это означает, что кроме PCIe по тем же проводам можно ещё дополнительно передать информацию. Куда, кому и кто ещё есть на моём компьютере?

    2) в той же сетевухе есть GPIO выходы. Можно ли к этим выходам с другой стороны припаять UART?


  1. tolegs
    30.07.2019 09:17
    +1

    Здорово! но хорошо бы ещё и звук из HDMI


    1. the_bat Автор
      30.07.2019 09:57
      +1

      Есть интересная статья на эту тему. Может допишу и выложу.


      1. tolegs
        30.07.2019 10:50

        обязательно. Хотя бы I2S


  1. BiosUefi
    30.07.2019 09:53

    Вроде PTN3460 поддерживает SpreadSpectrum, программированием через I2C.
    Для некоторых очень полезная мелочь.


    1. the_bat Автор
      30.07.2019 09:57

      Да, я писал, что по i2c edid прошивается.


  1. JayK
    30.07.2019 10:06

    1. Сколько это будет стоить?
    2. а разрешение 2560x1440 вытянет?


    1. the_bat Автор
      30.07.2019 10:48

      2. К сожалению «Supports 1920 х 1200 at 60 Hz resolution in dual LVDS bus mode»


      1. JayK
        30.07.2019 10:56

        Это должно быть четыре линии?

        вот такое нашел под мою панель LG


  1. Jedi_Knight
    30.07.2019 15:27

    Вспомнился abusemark.com/store/index.php?main_page=product_info&products_id=47

    Давно хочу мега-моник из 4 таких штук, чел который делал корпус 1.5 года тянет :)


  1. 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 с тачскрином?), непонятно как питание организовано и цена.


    1. JayK
      01.08.2019 06:56

      Это все от того что используются матрицы отживших свое ноутбуков


  1. bm13kk
    31.07.2019 11:45

    Планируется ли добавить DP chaining?

    А если нет, существуют ли какие-либо обходные пути? Чтобы несколько матриц запустить на одном кабеле?


  1. the_bat Автор
    31.07.2019 15:44

    Можно поставить мультиплексор DP, например на 4 порта и ставить 4 PTN3460, это колхоз и дорого, но относительно просто.