Добрый день Хабр!
Появилась новая задача, нужно срочно ее решить. Представляю конвертер HDMI-LVDS почти на коленке.
Хочу сразу оговориться, что не имею опыта разработки данных устройств, но задача уже поставлена, так что прошу под кат…
Перелопатив огромное количество
Обо всем по порядку.
Конвертер решил ваять
Как я уже говорил, документация по схемотехнике довольно обширная и не составило труда перенести схемы из шитов в Altium. Рекомендации по разводке платы пришлось искать несколько дольше, так как сигналы TMDS (HDMI) и LVDS (панель) идут дифпарами, а на двух слоях (
Второй этап — это включение/выключение/регулировка уровня яркости подсветки панели. Если не учитывать тот факт, что девайс должен работать от 12 или от 24 вольт, то тут все просто, компания «ON Semiconductor» делает DC/DC преобразователи отличного качества и стоимости. Два DC/DC NCP3170, один для питания панели, второй, как раз для подсветки (все панели идут в комплекте с инвертором, поэтому тут городить огород не нужно). Регулировка осуществляется 3,3В и 5В (зависит от конкретной панели) ШИМом. Тут как нельзя кстати приелся STM32F100, который так же зажигает, гасит светодиоды и управляет EEPROM для EDID данных.
Код программы для контроллера не привожу, так как программа состоит буквально из нескольких строк.
Основная проблема оказалась скрывается в слове EDID. До этого времени я такого буквенного сочетания вообще не встречал. «Extended Display Identification Data (EDID) — стандарт формата данных VESA, который содержит базовую информацию о мониторе» и так далее — это выдержка из википедии, кому интересно, тот углубится сам в изучение материала по данной теме. Оказалось что в каждом мониторе есть микросхема EEPROM, которая прямо висит на контактах I2C HDMI и как только монитор подключается к ПК (или другому девайсу), микросхема начинает слать данные об устройстве. Структура полей данных в EDID регламентирована, и было решено эмулировать их самим контроллером STM32. После недолгих размышлений от этого отказался и добавил в проект EEPROM AT24C02, в которую с помощью простенького программного обеспечения можно заливать данные EDID (все это, естесственно через UART STM32). Сказано — сделано. Сгенерил бинарник в программе «Deltacast E-EDID Editor»
Для облегчения себе задачи, готовый бинарник предварительно был
Этап настройки прост, зашиваем STM, заливаем через нее EDID в EEPROM, подтыкаем панель и HDMI.
Три варианта плат в итоге. Как и планировалось, будет еще третья итерация, конечная.
Во второй части (если кого-то заинтересует статья), планирую подробнее остановиться на схемотехнике, разводке и подводных камнях, которые встретились за время разработки.
PS Основное отличие данной разработки от уже имеющихся — это отсутствие ресайзера изображения, а следовательно и, почти полное отсутствие кода (обычно есть какая-либо ось, с графическим меню и настройками изображения).
Творите! Все в ваших руках!
ссылка на оригинал статьи http://habrahabr.ru/post/211753/
Добавить комментарий