Аппаратный конвертер HDMI-RGB (18/24-bit)
Доброго времени суток, Хабр!
И снова моя статья будет посвящена видео конвертеру. На этот раз это будет HDMI-RGB. Статью хочу посвятить не конкретно разработке, а одной проблеме с цветами, которая у меня возникла при подключении 18-bit матрицы к 24-bit драйверу.
В одной из своих прошлых статей я писал о конвертере HDMI‑LVDS, с промежуточной конвертацией в RGB (HDMI-LVDS. От макета к релизу). За основу новой разработки решил взять ту же микросхему TFP401 (HDMI-RGB) от Texas Instruments.
Плату разработал в тех же габаритах, оставил микроконтроллер с тем же функционалом (управление спящим режимом, обработка кнопок, управление подсветкой матрицы). Так как контроллер разрабатывался под конкретную матрицу (и, соответственно, готовый шлейф), то и разъем для подключения RGB пришлось установить специфичный, с шагом 1.25 мм. Таких разъемов на плате два, как и для подключения драйверов подсветки, так как необходимо дублирование изображения на две матрицы одновременно.
Немного отвлекусь. Ранее я уже делал дублирование LVDS и HDMI интерфейсов в своих проектах. Сначала пробовал использовать специализированные микросхемы, но потом отказался от них, и стал подключать параллельно два разъема (у HDMI необходимо отрывать один I2C, чтобы не было конфликтов на шине). Этот вариант работает отлично на всех панелях, в том числе и более 42 дюймов. Нареканий по изображению нет никаких.
На этой плате тоже просто задублировал разъемы RGB и сделал контроль длин проводников. Все тесты проводил на одной матрице.
Рис. 1. Картинка с матрицы
Первое включение меня немного озадачило. Искажения особенно заметны на нижнем фото рис. 1. Сразу стало понятно, что дело именно в «битности» — отсутствуют значащие биты во всех цветах. Но как найти проблему, ведь по схеме все биты приходят на матрицу «один к одному»? Ранее уже видел подобную проблему при подключении к своему конвертеру матриц 6-bit на цвет, но изучать не стал, так как мы поставляем изделия только для 8-bit матриц. Начал копать интернет в поисках решения проблемы.
Рис. 2. Схема выхода RGB с TFP401
Долго не мог найти никакой информации по использованию TFP401 в режиме 18-bit. В даташите черным по белому указано 24-bit. Если подумать, то это никак не должно влиять на саму картинку — только потеря качества и все. Помогла фраза на форуме TI (служба поддержки отвечала на вопросы пользователей) о том, что TFP401 не умеет автоматически переключаться в 18-bit режим работы (что и так понятно из документации), и что необходимо «переподключить» панель. Это навело на мысли что все-таки способ есть.
Рис. 3. Подключение матрицы NL6448BC33–70F из даташита
Снова начал изучать даташит на панель — ничего не поменялось, 6-bit на канал. В 2014 году, при разработке конвертера HDMI-LVDS, натыкался на какие-то документы о том, что нужно сдвигать биты для использования 18-bit режима, но не смог вспомнить на сколько бит. Начал снова искать информацию, но уже целенаправленно по сдвигу, и, чисто случайно, наткнулся на документ, в котором фигурировала таблица ниже!
Рис. 4. 24-bit и 18-bit
Таким образом, для подключения 18-bit матрицы и 24-bit микросхеме, мне необходимо выполнить подключение согласно таблице Рис. 4. То есть, R0 дисплея я должен подключить к R2 TFP401 и так далее. Так как у меня разъем на шлейфе, я просто «перепиновал» кабель.
Рис. 5. Изображение с правильной распиновкой
Вот те же картинки, но уже после перепиновки. Все встало на свои места. Качество нормализовалось, резкие градиенты пропали.
Рис. 6. Внешний вид конвертера с подключенным драйвером (LD1263) и матрицей
Рис. 7. 640×480…….
В Альтиуме, конечно, работать не очень удобно, но картинка отличная. Подойдет для недорогих приборных панелей, визуализации каких-либо интерфейсов и т. д., если добавить тач, то можно использовать, например, для ПЛК.
Пока не удалось подключить одновременно две матрицы (второй нет в наличии), но думаю, что проблем не возникнет. Позже отпишусь и добавлю фото.
Спасибо за внимание!