Доброго времени суток! Вашему вниманию хочу предложить проект аппаратного конвертера HDMI?LVDS построенный на микросхемах Texas Instruments. Статья была модифицирована и дополнена.

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

Разработать конвертер HDMI?LVDS не имеющий прошивки. Аппаратная реализация на доступной элементной базе. Конвертер должен быть универсальным, поддерживать различные типы матриц (с одно- и двух-канальным LVDS) и напряжения управляющих сигналов инверторов. Работа в индустриальном температурном диапазоне.

Сформулированные основные технические требования:

  • два канала LVDS (с возможностью переключения и использования одного);
  • схемотехника платы должна включать в себя питатель для инвертора подсветки матрицы (желательно универсальный для матриц 12/24В);
  • двухпиксельный режим работы конвертера;
  • поддержка 24-bit матриц;
  • рабочее напряжение конвертера 12/24В;
  • рабочее напряжение панели 3,3В, 5В, 12В (24В от отдельного БП);
  • управление яркостью/включением подсветки: 3,3В и 5В;
  • иметь возможность управления изображением матрицы (зеркалить, переключать битность и т.д.);

Требования к конструктиву:

  • простое (механическое) конфигурирование платы (DIP-переключатели);
  • геометрические размеры платы не критичны;
  • включение/выключение, регулировка яркости кнопками на плате;
  • индикация включения/выключения.

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

Первый вариант. Texas Instruments в линейке своей продукции предлагает конвертеры HDMI-RGB и RGB-LVDS. Микросхемы TFP401A, SN75LVDS83B и DS90C387A. Отличие SN75LVDS83B от DS90C387A в основном в том, что последний имеет два канала LVDS. Структурная схема такая (взято из документации TI):



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

Также существует и третий вариант — это использование специализированных контроллеров. Тоже тянет программную часть на базе ОС, хотя и имеет множество преимуществ, в том числе настройки цвета/яркости картинки, регулировка отступов и размеров картинки, наличие меню и т.д.

После некоторой аналитической работы перевес был на стороне первого решения, основанного на микросхемах TI. Данная сборка дает возможность реализации конвертера под необходимые требования.

Выбор элементной базы для осуществления питания

Для питания платы напряжением 24В был выбран преобразователь LM22670 компании TI (24В -> 12В).

Напряжения 3,3В и 5В были получены с помощью конвертеров NCP3170 компании ON Semiconductor, так же прорабатывался вариант использования преобразователей ST1S10PHR компании STMicroelectronics, но изучив характеристики обеих микросхем в соотношении цена-качество оказались более доступными первые.

Управление подсветкой и настройками панели

Включение подсветки панели и регулировка яркости осуществляется напряжением 3,3В и 5В (зависит от конкретной модели матрицы). Включение происходит по средствам подачи логической единицы на определенный пин инвертора, регулировка — с помощью ШИМ. Для управления выведены кнопки на плату (так же имеется разъем для подключения внешней клавиатуры).

Обработчик кнопок и ШИМ реализованы на контроллере STM32F100, который так же управляет светодиодной индикацией (включение/выключение/прошивка EDID). Стоит отметить, что есть два типа управления подсветкой (ШИМ): логическая единица максимальная яркость или логический ноль максимальная яркость. В данной конструкции это реализуется по средствам прошивки контроллера, но можно было сделать DIP-переключатель. В разъем LVDS на плате был заведен пин 3,3В/5В/GND (через DIP-переключатель). На матрицах часто присутствуют управляющие пины: MAP (карта данных), BIT (выбор битности), MODE (обычный и зеркальный режим) и т.д… При необходимости управления этими параметрами можно завести соответствующий пин матрицы в разъем LVDS конвертера и изменять один них.

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

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

1. Прошивка контроллера. Для этого был выведен разъем SWD, так как в планах не было изготовление 100к партии.
2. Установка параметров EDID. Тут пришлось долго разбираться с полями и версиями EDID.

Если кратко, то существует свободно распространяемое приложение «Deltacast E-EDID Editor». Самый простой способ — это «слить» EDID с любого монитора, а потом его редактировать под конкретный набор матриц и проверять на устройстве.


Приложение «Deltacast E-EDID Editor»

Все основные параметры находятся в даташите на матрицу. EDID на программаторе зашивается в микросхему eeprom (например M24C02). При подключении к ПК данные eeprom читаются и у пользователя появляется возможность выбирать параметры разрешения, частоты и т.д.

3. Подключение и тестирование. С некоторыми оговорками первый макет запустился и была отлажена прошивка контроллера и eeprom.

В итоге было сделано три итерации платы (включая релиз). Несколько вариантов печатных плат (1 и 2 — одно-канальный LVDS, 3 — двухканальный LVDS):


Печатные платы макетов с производства

Релиз

В релизной версии платы было решено прошивать EDID в плату с помощью контроллера. Был написан простенький софт для ПК. Конвертер подключается к ПК по UART с помощью переходника USB-UART.


Приложение «EDID LOADER»

По релизному КД было сделано порядка 100 плат. Все работают, картинка отличного качества, регулировка и управление матрицей без нареканий. Сконфигурирован универсальный EDID, подходящий для большинства матриц заказчика.


Фото работы конвертера


Фото релизной версии конвертера

Преимущества разработки
  • аппаратная реализация конвертера;
  • двухслойная печатная плата;
  • универсальность;
  • простота в настройке.

Спасибо за внимание!

UPD: По просьбам выкладываю БОМ и расположение компонентов на плате.
dl.dropboxusercontent.com/u/25037786/habr/HDMI-LVDS/HDMI-LVDS.zip
Поделиться с друзьями
-->

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


  1. melchermax
    17.01.2017 19:26
    +3

    Отличнейшая публикация, непременно пишите ещё! Хотелось бы, правда, немного больше подробностей, особенно по компоновке и разводке таких сложных плат.


    1. the_bat
      17.01.2017 19:39
      +5

      Спасибо! Разводка RGB и похожих интерфейсов на двух слоях — это да, отдельная тема. Наберу побольше материала может напишу статью.


      1. Izy125
        18.01.2017 09:58
        +2

        присоединюсь, был бы очень интересно почитать про нюансы разводки подобных плат


      1. Strannii
        18.01.2017 15:43

        Да уж, развести такое количество дифпар на двух слоях — это грандиозный челлендж. Что у вас с импедансами получилось? Какой стек платы?


        1. the_bat
          18.01.2017 15:48
          +2

          Импеданс я примерно рассчитывал (если Вы про HDMI и LVDS).
          Стек стандартный резонитовский. Двухслойка, 18 фольга.
          (если интересно: 0,3/0,7 отверстия, 0,2 линии, 0,2 зазор)
          Как-то так:


          1. Strannii
            18.01.2017 17:37
            +1

            То есть у вас дифпары HDMI идут без опорного слоя? А возвратные токи? Либо я что-то не понимаю в интерфейсе HDMI, либо это просто чудо, что у вас все заработало. Это же идет вразрез со всеми мыслимыми правилами разводки высокоскоростных интерфейсов. Даже примерная прикидка дифпары 0.2-0.2 на плате толщиной 1.5мм дает импеданс 150 Ом при необходимых 90.

            Какой размер картинки передаете? Судя по фото, это 1366х768. Вы пробовали запускать изображение крупнее?

            Может, у вас есть какой-то секрет применительно к HDMI (короткая линия, личные эксперименты)?

            image


            1. the_bat
              18.01.2017 19:37

              Да, импеданс не сходится, но тестами установил что все гуд. Пришлось делать вырез в полигонах на hdmi и lvds.


              1. lelik363
                18.01.2017 20:55

                Плата будет испытываться на соответствие промышленным(температура, вибрация, помехоэмиссия, статика и пр.) стандартам?


                1. the_bat
                  19.01.2017 13:57

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


                1. SlavikMIPT
                  21.01.2017 16:15

                  по эмс точно не пройдет)


                  1. the_bat
                    21.01.2017 16:26

                    Спорный вопрос, вот статику скорее всего не пройдет.


  1. K1801vm2
    17.01.2017 20:07
    +4

    А где можно взять герберы? Или пустую палту приобрести?


    1. the_bat
      17.01.2017 22:09
      +1

      Я подумаю что можно сделать и напишу.


    1. the_bat
      18.01.2017 16:18

      Гербера передать не могу, так как все-таки коммерческий проект, но решили подарить последний паллет (6шт) плат, который остался не запаянным. K1801vm2 получает одну плату, дальше пишите в личку, первые 5 получат по плате. Только просьба, не чтобы на стеночку повесить или на полку положить, а для дела. Ну и, естественно сразу подумайте как будете забирать из Питера, кто из других городов.


  1. Arxitektor
    17.01.2017 21:10

    Как я понимаю эта плата для преобгазования HDMI в сигнал для шлейфа матрицы монитора?
    А на сколько высока задержка?
    как я понимаю должна быть минимальна?
    И какое разрешение поддерживает конвертер?
    Просто интересует с точки зрения применения в шлеме для получения картинки с гоночного дрона.
    Задержка критична. А для этого надо минимизировать её на всех этапах.


    1. the_bat
      17.01.2017 22:11
      +1

      Да. Задержки на глаз незаметны. Если это критично, то нужно анализировать. 1920х1080 поддерживается без проблем.


  1. AllexIn
    17.01.2017 21:45
    +2

    оооо! Я как раз такое решение искал!
    Где купить???


    1. the_bat
      17.01.2017 22:18

      Мы разрабатываем под заказчика. На сайте ЭЛТЕХа плата доступна к заказу. Если Вы имеете ввиду не штучный экземпляр, а партию, то можем под Вас произвести.


      1. AllexIn
        17.01.2017 22:20

        Ох. Ценник у них не гуманный. Нужна одна штука. Но, конечно, не за 7000.


        1. the_bat
          17.01.2017 22:23
          +1

          Согласен. Я поговорю управляющим нашей компании. Мы думали произвести несколько десятков устройств для себя. Если будут запросы — это вполне реально.


          1. Spider55
            18.01.2017 09:46

            И мне и мне! Матриц много разных, «поигрался» бы.
            Если будет шанс приобрести — дайте как-нить знать.


            1. Odinokij_Kot
              18.01.2017 11:15

              Читайте ниже.


        1. Odinokij_Kot
          18.01.2017 11:14
          +1

          На али похожую тему можно за пару десятков баксов купить. Ещё там будет Вам тв тюнер и всякие кнопки.
          Ищите по модели LA.MV9.P или LA.MV29.P
          Фактически, это третий вариант решения проблемы.


          1. SchmeL
            18.01.2017 15:52

            купил парочку таких по 600р за штуку. Одна сдохла через пару минут, вторая продержалась дней 9.
            Теперь вот думаю как чинить, может у них компонент какой-нибудь слабый, который можно перепаять, но в диагностике я к сожалению не силен.


    1. kAIST
      17.01.2017 22:59
      +1

      На известном китайском сайте готовых решений за небольшие деньги полно же.


      1. AllexIn
        17.01.2017 23:01

        Уже. Не все так радужно. Пока найдешь годно работающее — в теже 7000 и влетишь. Я пока влетел на сумму в районе 4000. Последнее решение еще не имел возможности проверить… Может и до 7000 дойду.


        1. kAIST
          17.01.2017 23:06

          А с какими трудностями сталкивались? Я в одном проекте использую самую дешевую платку, проблем не было.


          1. AllexIn
            17.01.2017 23:09
            +1

            Да не работает и всё. :)
            Я сейчас третью пробовать буду.
            Первая тупо не видела HDMI сигнал. Причем от компа видела норм, а от SabreLIte — нет. Насколько я понял, что-то с форматами HDMI связано. У меня SabreLite и мониторы не все видят.
            Вторая показывала изображение смещенное, как будто разрешение выше чем на матрице. В итоге строки ступеньками выстраивались. И это было даже без подключения HDMI кабеля. Уже сервисные надписи при включении так себя вели.


            1. kAIST
              17.01.2017 23:14

              Странно. Тестировали несколько дешевых вот таких плат:

              Скрытый текст


            1. the_bat
              17.01.2017 23:23
              +1

              На сабре нужно в линуксе параметры панели указывать, пиксельклок, разрешение и другое. В этом случае можно игнорировать параметры EDID вшитые в конвертор, правда это не всегда залог успеха, но мониторы должны работать. Наш конвертор без проблем работает на imx6.


    1. ns3230
      18.01.2017 09:12

      Я весной на подобной китайской сделал из древнего ЖК-монитора («квадратного») телевизор. Плату брал в Украине, что-то около 20 долларов. Там готовые прошивки есть, под разные матрицы, максимум кажись поддержка 1920х1200@60Hz. Что имеем: плату, которая подходит для большинства мониторных и ноутбучных матриц (шлейф продаван правильный положил), разъемы ВГА, ХДМИ, тюльпаны, звук, ЮСБ, управление пультом, телек. Также есть выводы для кнопок управления: можно готовую панельку подлючить (+ пара баксов), можно каждую кнопку на свой пин подпаять, можно все кнопки через один пин, с разделением кнопок резистивным методом (каждая кнопка коротит со своим сопротивлением). Чего не имеем: управления подсветкой (хотя выходы для ее драйвера есть, но уровень не регулируется. может, можно допилить, но мне это не надо было, вот и не вникал), цифрового ТВ (аналогичные решения с ним — в 2-3 раза дороже). Если такой вариант интересен — я поищу, вспомню, что за модель.


      1. GennPen
        18.01.2017 10:05

        По поводу подсветки. Есть два типа управлением яркостью подсветки: PWM и уровнем напряжения. Если типы выхода контроллера и вход драйвера подсветки не совпадают — регулироваться не будет, будет только 0% и 100%. Из PWM можно сделать в уровень напряжения путем добавления нескольких резисторов и конденсатора.


      1. AllexIn
        18.01.2017 12:02

        А я как раз сейчас такой вариант и прикупил. :) Скоро тестить буду.
        Единственное — не знаю где брать прошивки и как прошивать. Не разбирался пока. Подскажите, пожалуйста, куда смотреть, если у вас сохранилась эта инфа.


        1. ns3230
          18.01.2017 12:25

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


  1. Stross
    17.01.2017 22:02

    А для чего два пустующих места под конденсаторы в правом нижнем углу платы?.. Так понимаю, развязывающие, но почему в итоге решили не ставить?


    1. the_bat
      17.01.2017 22:14
      +1

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


  1. x893
    18.01.2017 00:17

    Достойный труд

    Но можно купить и подешевле
    https://www.chalk-elec.com/?page_id=1280#!/HDMI-to-LVDS-converter/p/14647633/category=3094861
    http://www.ebay.com/itm/HDMI-DVI-VGA-Driver-LVDS-Inverter-Kit-Convert-a-Bare-Laptop-LCD-into-Monitor-/111115624120
    и т.д.

    Вопрос может не в тему:
    Нет у Вас платы, что бы один HDMI (например 1600х600) разделить на две матрицы (например по 800х600)?
    LVDS не обязателен, можно RGB.


    1. the_bat
      18.01.2017 00:35

      Спасибо. Дешевле чем в России можно купить почти любую технику в Китае.
      Смотря что Вы имеете ввиду под «разделить на две матрицы»? Если Вам нужно дублировать изображение, то можно просто распараллелить сигнал соблюдая волновое сопротивление и делая короткие линии. Я делал плату раздвоения на спец микросхемах (названия не помню) но решение было отвратным, микросхемы грелись и работали нестабильно. Распараллеливание решило проблему. В серии на FullHD матрицах никаких проблем. Кстати, разобрав пару Китайских разветвителей HDMI увидел самое обычное параллельное соединение (естественно i2c берется только от одного HDMI)


      1. x893
        18.01.2017 01:33
        +1

        Нет, надо разделить на две части.
        1600х600 -> левая 800х600 и правая 800х600
        Хотел попробовать сделать по простому
        TFP401 выделяет HSYNC, VSYNC, DE и остальное и на небольшой FPGA сделать по полкадра на каждую панель, только на каждую изменить HSYNC и DE — что бы сохранить интервал от HSYNC до DE.
        То есть поменять соотношение на HSYNC/DE.
        Думал может специалисты сталкивались с таким вариантом использования матриц.


        1. the_bat
          19.01.2017 14:24

          Мы делали макет, но так и не запускали. Проект для 3д шлема. Там из hdmi получается два то ли lvds то ли mipi, не помню. Есть чипы заточенные.


          1. x893
            19.01.2017 16:14

            Я нашел Toshiba но очень неудобные в пайке (BGA) — может знаете в QFP? Видимо придется самому на FHGA городить.


        1. Andruwkoo
          20.01.2017 12:12
          +1

          Я сейчас как раз чем-то подобны занимаюсь, только все полностью происходит внутри FPGA. Из внешних микросхем только буферы


          1. the_bat
            20.01.2017 12:13
            +1

            На FPGA думаю можно сделать хорошую реализацию.


  1. daggert
    18.01.2017 01:15
    +1

    Задумывая видеостену столкнулся с адовой стоимостью мониторов с мелкими краями. По итогу смотрел на голые матрицы + такие вот переходники + матроксовская карта на 6 моников.


    Правда изначальный "дешевый колхоз" привел к финансовым потерям, по большей части со стороны "кетайских" конверторов и премудростям работы с продавцами, пишущими в 99% случаев "да да, все работать будет с вашей моделью".


    После вашей статьи буду смотреть в сторону самого дичайшего колхоза — самопай (:


  1. Zuy
    18.01.2017 06:09
    +1

    Чип от TI позиционируется для использования в ТВ, всегда было интересно, как звук в таком случае вытягивается из потока, если чип этого не умеет.
    Мне в свое время пришлось использовать решения от AD, что было дорого. Хорошо, что Китай выручает более дешевыми вариантами со звуком.
    CSC и масштабирование чип тоже не умеет? У вас матрица масштабирует неродные разрешения и входной поток только RGB?


  1. voidptr0
    18.01.2017 09:36
    +2

    А это тоже ваша статья HDMI-LVDS — это просто? Просто смотрю — год 2014.


    1. the_bat
      18.01.2017 12:31

      Да, статья была написана ранее, в начале статьи написано что она дополнена. Я ее убирал, дописал когда сделали и протестировали релиз. Появилось время — выложил.


  1. BOPOHA
    18.01.2017 12:28

    ссылка на оригинал статьи http://habrahabr.ru/post/211753/
    Вы пытаетесь открыть публикацию, написанную пользователем the_bat,
    однако, публикация скрыта в черновики (самим автором или НЛО)

    Судя по всему, да, его.


  1. BurlakovSG
    18.01.2017 13:40

    Подскажите, пожалуйста, как можно скоммутировать два сигнала (AV и HDMI) на LVDS?


    1. the_bat
      18.01.2017 13:58
      +1

      Я делал только hdmi -cvbs, rgb — cvbs, других решений сходу не подскажу. Вам нужно cvbs, звук и hdmi? Нужно мониторить чипы.


      1. BurlakovSG
        18.01.2017 14:16

        Есть HDMI с RPi, есть аналоговый (тюльпан = CVBS?) — хочу выводить на экран (с LVDS входом). Получается мне нужен конвертер HDMI-LVDS как у Вас в статье, нужен конвертер СVBS-LVDS и нужен коммутатор, чтобы переключать между входами.


  1. lelik363
    18.01.2017 15:41

    два канала LVDS (с возможностью переключения и использования одного);

    Подскажите пожалуйста как производится переключение каналов LVDS?


    1. the_bat
      18.01.2017 15:43
      +1

      С двухканального на одноканальный переключается DIP-переключателем — эта функция заложена в TI-микросхеме.


  1. focs113
    18.01.2017 15:41
    +1

    А просто использовать платы с убитых мониторов. Внутри уже все есть.минус заточено обычно под одно разрешение. В современные мониторах плата скаллера имеет габариты 5 на 5 см. Запчастей на 10-15 баксов. Разрешение матрицы меняется правкой прошивки. Использовал такую плату +доп питальник для подсветки для. Запуска матрицы планшета.


    1. the_bat
      18.01.2017 15:42
      +1

      На партию даже 100шт мониторов не наломаете)
      Убитые мониторы я обычно ремонтирую.


  1. TheCoreFactory
    18.01.2017 16:27

    Пару месяцев назад разрабатывал такую же штуку на -40, вариантов как оказалось не так много.
    Хорошая статья, но критически не хватает информации о том, что по факту вся статья базируется на данном документе и более подробно стоит смотреть в нем:
    http://www.ti.com/lit/an/slla325a/slla325a.pdf


    1. the_bat
      18.01.2017 16:27

      Да, по сути нужен только этот документ и шиты на микросхемы и все станет понятно.


  1. Zuy
    18.01.2017 18:05

    Чип от TI позиционируется для использования в ТВ, всегда было интересно, как звук в таком случае вытягивается из потока, если чип этого не умеет.
    Мне в свое время пришлось использовать решения от AD, что было дорого. Хорошо, что Китай выручает более дешевыми вариантами со звуком.
    CSC и масштабирование чип тоже не умеет? У вас матрица масштабирует неродные разрешения и входной поток только RGB?


    1. Zuy
      18.01.2017 18:10

      случайно, комментарий продублировался.


    1. the_bat
      19.01.2017 14:26

      Конкретно этот чип звук не вытаскивает — только видео


  1. MonkeyD
    18.01.2017 18:11

    Яб заказал вместе с инструкцией. Причем купил бы штук 6. Ибо стекол полно, а мамки на них подохшие. С китайской платой устал копаться. А еще я бы к ним БПшки заказал какие требуется. Чтоб не искать по ебею.

    Автор, продолжай. Хорошие идеи, способы реализации и главное результаты)))


    1. the_bat
      18.01.2017 18:11

      Я боюсь что штучно встанет дорого по компонентам плата. Нужна партия для того, чтобы получить нормальные цены.


      1. SOvA13
        19.01.2017 13:14

        Так Planeta.ru или им подобные или кикстартер запустить.