Главная » Хабрахабр » Разработка скалера LVDS с двумя интерфейсами DisplayPort

Разработка скалера LVDS с двумя интерфейсами DisplayPort

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

Кому тема интересна, добро пожаловать под кат.
Меня всегда привлекала тематика вывода изображения на матрицы. Описание проекта платы скалера, разработанного на чипе компании Realtek – RTD2662, для двухканальной матрицы. Думаю, что я напишу отдельную статью на эту тему. Ранее мной была разработана плата скалера на чипе TSUMV59 (совместима с TSUMV29), очень интересный экземпляр от компании MStar. Все прошивки распространяются в бинарном виде и прошиваются через USB, а исходников найти не удалось (если кто-то что-то знает/слышал, прошу написать, так как тема очень интересна). Казалось бы, все хорошо в этом чипе, но чего-то не хватало, а именно возможности писать свой софт для вывода экранного меню и обработки GPIO. Были моменты, когда было не подобрать прошивку для какой-то конкретной матрицы, например с нестандартным соотношением сторон, но это все мелочи, пока не появился заказ на разработку устройства, в котором должно было быть строго определенное меню, логотип, и логика работы устройства в целом. До определенного времени для каких-то своих нужд этого вполне хватало. Основной проблемой было отсутствие времени, нужно было в кротчайшие сроки получить первую партию устройств – 100шт. Тогда мы начали думать как быть и в какую сторону идти. Третье – малое количество устройств, что не позволяет работать/получать документацию и семплы от производителей/дистрибьютеров чипов. Второе – это наличие двух интерфейсов DisplayPort на борту.

Перечислю основные программные/аппаратные моменты, которые требовалось поддержать:

— DisplayPort – 2 шт;
— Ethernet 10/100 – 1 шт;
— Двухканальный LVDS для 32” матрицы – 1 шт;
— Поддержка емкостной клавиатуры из 4-х кнопок – 1 шт;
— Датчик температуры на плате – 1 шт;
— WEB-интрефейс;
— OS Linux;
— Внешнее питание 24В.

Теперь немного обо всем и по порядку.

DisplayPort

Тут казалось все относительно просто, нужно выбрать чип с входным HDMI, ставить переключатель и преобразователи из DisplayPort в HDMI. Этот же чип должен иметь выход двухканального LVDS на матрицу и поддерживать FullHD. Также, желательно, чтобы он имел на борту RMII (Ethernet) и возможность отрисовки меню поверх изображения. И тут начались проблемы. Ничего похожего, чтобы можно было быстро купить, отмакетировать и запустить партию, найти не удалось.

Кто разбирал оригинальную технику Sony и Panasonic, тот поймет. В качестве хобби, я занимаюсь ремонтом техники и дело тут не в доходе, а в приобретаемых навыках, очень полезных при разработке своих проектов и черпании идей и технологий. Качество прокладки полигонов (даже на верхних слоях), аналоговые земли и питания, взаимное расположение питателей на плате, трассировка оперативки, ВЧ … голова кругом от того, как красиво и продуманно все сделано (конечно, так бывает не всегда). Особенном меня привлекают аудио/видео/автомобильные устройства.

Так вот, если вспомнить что обычно ставят в бюджетные телевизоры, первое что пришло на ум – это TSUMV29/TSUMV59, но как помним они нам не подходят. Ладно, о чем это я? Коллега предложил Realtek, что вроде даже к нему есть исходники, что очень упростит задачу. На чем еще делают телевизоры и мониторы, но что можно штучно купить? Чип не самый новый, но имеет два HDMI входа и поддержку FullHD. Оказалось, что исходники действительно есть для Keil, для чипа RTD2662.

1.
Рис. RTD2662

Чип питается двумя напряжениями – 3,3В и 1,8В. Схема включения как во всех шасси для ТВ. Добавить нужно было только конвертеры из DisplayPort. Полноценного даташита найти так и не удалось, да и не нужно было. Рекомендую в разработках, хороший чип. После непродолжительных поисков был выбран преобразователь от Texas Instruments – SN75DP139. Микросхемы расположены на bottom платы (сделать так пришлось, чтобы избежать перекрестия линий данных, возможно буду пробовать переразводить на одной стороне).

2.
Рис. Схема включения SN75DP139

С интерфейсом DisplayPort связался впервые и для меня стало неким откровением что вход и выход данного интерфейса имеют разную распиновку, то есть на разъеме ПК она одна, на мониторе – другая. Схема включения получилась такая. Хотя какая-то логика в этом и есть.
Прошивка Realtek хранится в отдельной SPIFlash.

Ethernet 10/100

Ethernet нужен для нескольких вещей: мониторинг устройства, конфигурирование и обновление; поэтому физики 10/100 вполне достаточно. Ставил LAN8742AI от Microchip, использовал ее впервые, а выбрал именно ее, так как заказчику нужна была некая функция “Wake on LAN”, до этого такой надобности не было. Если в двух словах, то поддержка WoL позволяет пробуждать устройство по сети Ethernet.

3.
Рис. Ethernet 10/100

Работает стабильно, ни одного отваливания сети не было. Физика почти не требует обвязки и проста в трассировке.

LVDS

Два канала необходимы для подключения матрицы AUO 32”. Разъем и распиновку использовал стандартные. Напряжение питания 12В, делал на DC/DC TPS54560DDAR – это отличный питатель на 5А от TI. Подсветка матрицы 24В, брал от входного напряжения. Матрица имеет встроенный драйвер подсветки с возможностью регулировки и выключения. Плата сделана на 4-х слоях, так что проблем с трассировкой LVSD, HDMI и DisplayPort не было.

4.
Рис. Трассировка LVDS

Как видно тут все напрямую, небольшое расхождение длин совершенно не влияет на качество изображения.

KEY

Кнопки реализованы на микросхеме SX8634 от Semtech Corporation – это несколько неоднозначный по своей работе чип. Программистам пришлось перепиливать весь драйвер чтобы получить ожидаемый результат. Получилось как-то так: есть 4 кнопки для перехода по меню, они сенсорные (емкостные через стекло) с подсветкой RGB светодиодами изнутри через отверстия в плате. Постоянно светится только нижняя кнопка, она же переход в спящий режим и обратно (со сменой свечения). При поднесении руки на 5см подсвечиваются остальные кнопки и выскакивает меню напротив них. Убираем руку, через 3с меню пропадает, кнопки гаснут. Выглядит интересно.

5.
Рис. Плата сенсорных кнопок

Сложность в настройке и калибровке была обусловлена шириной платы, она всего 12мм. Верхняя часть платы (top) прилегает к стеклу, поэтому на ней нет компонентов, все они располагаются на bottom. Если кому-то скучно жить, могут использовать данную микросхему в своих проектах.

TEMP

Температура внутри корпуса измеряется с помощью термодатчика LM75AD от NXP по шине I2C. Поставлен был так как легко доставаемый и лежит на складах в больших объемах.

WEB

Web-интерфейс и сам проект реализованы на основе молодого движка рожденного независимой командой 11-parts для проектов на базе ОС Linux, включающий в себя множество готовых программных блоков, которые востребованы почти во всех проектах.

Из основных блоков можно отметить сетевой менеджер, динамический WEB интерфейс, обновление и сборщик проектов. Если еще проще – это рамочный проект, с продвинутым функционалом, который постоянно улучшается и наращивает функционал. а это как раз то, что нам было необходимо в данном проекте. На базе движка, можно реализовать различные устройства начиная от mp3 плеера, заканчивая многопортовым 10Gbit SIP сервером.

Из web-интерфейса можно не только контролировать параметры панели, но и изменять настройки, например, яркость, контрастность, четкость изображения, отслеживать к какому из портов подключен ПК и какой в данный момент из них активен, переключаться между ними.

Т.е. Также в данном проекте реализована поддержка SNMP 1,2 и 3 версии с поддержкой SET, GET команд и отправкой трапов по интервалу или по событию. Выключить дисплей или поменять параметр можно удаленно с помощью SNMP SET команды. информацию о любом параметре, например яркость/контрастность можно передавать на сервер по протоколу SNMP, при нажатии на кнопку изменения параметра или, например, раз в 10 сек. SNMP так же входит в состав движка.

iMX6ULL

Так как чип Realtek не имеет на борту Ethernet, в данном проекте установлен процессор iMX6ULL от NXP, на котором крутится OS Linux и выполняется основная логика работы. iMX и Realtek связаны между собой по UART и обмениваются между собой командами. Для быстрых событий есть несколько GPIO.

6.
Рис. iMX7ULL

Одна микросхема оперативной памяти и ничего лишнего. Вся информация хранится в NAND, u-boot загружается из SPIFlash. SD карта выведена для обновления ПО (это помимо возможности это делать из web).

POWER

Вторичное питание 5В реализовано на таком же DC/DC как и для питания матрицы – TPS54560DDAR. Питания 1,8В и 1,35В на AP3418 от Diodes, а 3,3В на ST1S10PHR от ST.

7.
Рис. DC/DC

Скрины трассировки приводить бесполезно, разве что кому-то будет интересен какой-либо интерфейс. Микросхемы DC/DC были выбраны с большим запасом, так как у матрицы большие пиковые токи по питанию и по подсветке, а так как была только одна итерация, рисковать очень не хотелось.
Все питания разведены полигонами в отдельном слое, за исключением питания матрицы, так как очень не хотелось резать основные питания этим проводником. По полигонам питания и земель хочу также уделить отдельную статью, например, в этом проекте суммарно 27 полигонов, в моем новом проекте на iMX7 из будет порядка 100, и в рамках этой статьи это просто не поместится.

iMX работает с Ethernet и кнопками передней панели. Если еще немного углубиться в логику работы платы. Команды от кнопок, SNMP и web летят в Realtek, которые в свою очередь реагирует на них и меняет параметры дисплея, выводит меню и т.д. Он связан с Realtek, которые забирает изображение с активного DisplayPorta и выдает на матрицу LVDS.

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

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


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 18: «Частный просмотр интернета», часть 1

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы ...

[Из песочницы] Как я понял, что ем много сладкого, или классификация товаров по чекам в приложении

Задача В этой статье мы хотим рассказать, как мы создали решение для классификации названий продуктов из чеков в приложении для учёта расходов по чекам и помощника по покупкам. Мы хотели дать пользователям возможность просматривать статистику по покупкам, собранную автоматически на ...