Заведи экран: свой TFT–дисплей. Мир периферийных устройств пк Распиновка lcd дисплея

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

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

Спустя несколько месяцев, я решил попробовать восстановить данный монитор, использовав при этом минимальный бюджет. Так как красивой картинки ожидать не приходилось, вместо CCFL ламп я установил обычную светодиодную ленту на 12 вольт , предварительно выбрав на радио рынке самую яркую. Для реализации включения подсветки, использовал полевой транзистор, который подавал питание на светодиоды, получив сигнал включения подсветки с маин платы. Как это реализуется, опишу ниже. Монитор заработал, и при этом качество картинки меня очень порадовало. Если присмотреться, сверху были видны маленькие заветы, но они мне не мешали.

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

Что необходимо для переделки монитора на телевизор?

Для переделки нам понадобится:

Выбираем скалер

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

Подсветка монитора

Подсветка монитора может быть выполнена 2-вариантами: используя лампы или Led светодиоды. Для определения типа подсветки, необходимо разобрать монитор, и добраться до матрицы.

После разборки, обращаем внимание на то, какие провода выходят с боку матрицы. Если разъемы будут такого типа как на картинке ниже, то у вас стоит подсветка на лампах, так называемая подсветка.

CCFL подсветка

В таком случае, нужно заказать инвертор для CCFL ламп.

От количества разъемов для ламп зависит то, на сколько каналов нужен инвертор. Обычно, в мониторах используются инверторы на 4 лампы. Если Вы захотите переделать матрицу от ноутбука, то там используется только одна лампа, и инвертор нужен соответствующий.

Если таких проводов нет, а внизу монитора есть разъем на 6 пинов, то у Вас используется Led подсветка. Тогда необходим Led инвертор.

Led инвертор

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

Выбор шлейфа от скалера к монитору

К выбору шлейфа необходимо отнестись очень серьёзно, так как от этого зависит работоспособность всей системы. Я шлейф не покупал, а по даташиту переделал старый, Вы же можете купить уже готовый. Что выбирать, решайте сами, я же опишу и тот и другой способ.

Для определения типа шлейфа, заходим на сайт http://www.panelook.com , и в строку поиска вводим название нашей матрицы. Посмотреть само название, можно на наклейке, которая находится с тыльной стороны матрицы.

наклейка на матрице. Модель CLAA170EA 07Q

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

Информация о матрице.

Разберем детальней.
Diagonal Size: Размер нашей матрицы. В нашем случае 17 дюймов.
Pixel Format: Расширение экрана. Ключевая информация для выбора прошивки скалера. В моем случае 1280(RGB)×1024
Interface Type: Это и есть наш разъем под шлейф. Для моей матрицы нужен шлейф на 30 пинов, шина LVDS должна иметь 2 канала на 8-bit. Ссылки на популярные шлейфы выложу в конце статьи. Я этот шлейф буду переделывать из старого, процесс опишу позже.
Power Supply: Напряжение питания матрицы.В моем случае это 5 вольт.
Light Source: Здесь вся информация о подсветке. CCFL означает, что используется подсветка на 4 лампы, так что и инвертор нужен соответствующий. Выше, я описал как выбрать подходящий инвертор, не используя этот сайт.

Блок питания

Блок питания необходим 12 вольт. Его мощность зависит от диагонали монитора, должна составлять не менее 4 ампер. Если в корпусе монитора мало места, то лучше купить выносной блок питания, я же буду использовать блок питания планшетного типа, который установлю в корпус монитора.

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

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

Доставка составила всего 15 дней. В комплект входит сама плата, пульт и ИК приемник. Пульт правда мне достался с китайскими надписями, но в ссылках все скалеры будут с англоязычной клавиатурой.

Переделывать буду монитор LG Latron 17 дюймов

Первым делом разобрал монитор, и извлек все внутренности.

Убрал все платы, вместе с металлическим кожухом

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

Место установки скаллера

Вышло как-то так.

Чтобы не забыть, сразу установил перемычку питания матрицы в положение 5 вольт. Вы же выбирайте положение, исходя из даташита на свою матрицу, или используйте сайт panelook.com, просмотрев значение в поле Power Supply.

Перемычка, которая определяет напряжение питания матрицы

Далее, занялся подключением кнопок. Кнопки подключаются очень легко. На старой панели клавитуры, я выпаял все лишние резисторы, перемычки, а оставил лишь кнопки. Далее, один конец всех кнопок спаял проводником между собой, и подключил к вывод GND (на землю «-«), а на второй вывел провода из платы. Какая кнопка за что будет отвечать на старой плате, решайте сами. У меня на панели предусмотрено всего 5 кнопок, так что я пожертвовал кнопкой ОК.

Обозначение подключений

Расшифровка обозначений

K0 — Кнопка включения
К1 — Громкость +
К2 — Громкость —
К3 — Кнопка выбора (OK)
К4 — Кнопка меню
К5 — Канал +
К6 — Канал —

подключение кнопок на схеме

Пины GRN и RED означают состояние светодиода. Сделано это для двух цветных светодиодов на 3 ножки. Одна ножка подключается на землю «-«, вторая и третья на ножки подключаются к GRN и RED. У меня такого светодиода не оказалось, так что я подключил только красный светодиод, который горит когда телевизор находится в дежурном режиме, и тухнет когда телевизор включается.

По ик приемнику, проблем возникнуть не должно, все описано в на картинке.

Разъема не нашел, просто припаял провода к пинам.

Таким образом уложил провода

Как я говорил раньше, шлейф я использовал родной. Он вставлялся в разъем скалера нормально, но имел совсем другую распиновку. Чтобы не путаться, я вынул все провода из разъема, нажимая на соответствующий выступ на контакте.

Процесс изъятия проводов из разъема

Распиновка скаллера

Распиновку матрицы взял из даташита. Вот так она выглядит.

Распиновка матрицы CLAA170EA07Q

Подключение получается как бы инверсное, с одной стороны матрицы Vcc это контакты 28,29,30, с со стороны матрицы это 1,2,3.
Обратите внимание, что на сигналах выходящих из скалера, впереди стоит буква «T»(transfer) , а на матрице R(received) .

К примеру, сигнал от скалера TXO1- подключаем в пину матрицы RXO1-, если проще, просто не смотрим на первую букву.

Набор коннектора.

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

Подключение NPN полевика как ключа

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

Обозначение пинов на подсветку монитора

Последствия предыдущей поломки монитора, следы сгоревшего провода на подсветку

Собрав все до кучи, осталось лишь прошить скалер.

Прошивка скалера

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

Рассмотрим выбор прошивки для матрицы CLAA170EA 07Q.

Информация о матрице.

Получаем такую информацию: 2 канала, 8 бит, расширение 1280 х 1024, питание 5 вольт. После скачивания прошивок, ищем похожую среди файлов.

Выбор прошивки.

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

Подключаем флешку к скаллру и подаем питание на плату. Светодиод на панели должен начинает моргать. Ждем пока светодиод перестанет моргать, после чего телевизор можно включить с пульта или кнопки.

Прошивки находятся здесь:

  1. Для тюнера с Т2, продавец отправляет прошивки срезу после покупки. Мне высылал такую: Z. VST.3463.A

После прошивки, я сразу зашел в настройки языка, и выставил русский язык. Далее, запустил авто поиск.

Авто поиск каналов.

Каналы скалер принимает отлично. Динамики заказал позже, так что временно приклеил на термо клей те, что были под рукой.

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

Ты конечно понимаешь, мой друг, как можно использовать этот девайс в своих хакерских (и не только) целях. Если выбрать все детальки SMD-шные, то можно получить реально небольшое устройство для вывода на экран с портом RS232. Дисплей использовал: Nokia 6100/6610/7200/7250/3100 в рамке с коннектором.

Такой экран несложно найти в Интернет-магазинах, например www.siruist.ru , www.sparkfun.com или в палатках, где продают запчасти для мобильных телефонов (стоит он 150-200 руб) . Либо просто выдрать дисплей из старого телефона. Но если такой не нашёл - не беда. Изучив эту статью и исходные коды и поразмыслив головой, ты можешь завести дисплеи от Nokia N95 или Sony PSP.

Почему я выбрал такой дисплей – он удобен в пайке. Смотри на скриншоте распиновку.

Как видно, существует коннектор на дисплее к которому тяжело подпаяться (шаг 0.5мм). Поэтому лучше ищите дисплеи с такой распиновкой как здесь.

Распиновка дисплея:

    VCC-Digital (3.3V)

    VCC-Display (3.3V)

На рисунке вы можете видеть 3 дисплея:

На крайнем левом отсутствуют контакты для удобной пайки (только коннектор). На остальных контакты и коннектор присутствуют. Также важно, что встроенный контроллер у каждого экрана разный. Для этого дисплея существует 2 вида контроллеров:

У каждого контроллера своя система команд и, соответственно, софт для одного из них не будет работать для другого. Народ научился различать эти контроллеры по цвету коннектора: коричневый - Epson S1D15G10, зелёный - PCF8833.

Но это не факт. Я советую прошить микроконтроллер для 2 видов дисплеев и посмотреть результат. К примеру на скриншоте все дисплеи с контроллером PCF8833. Я писал исходный код микроконтроллера для PCF8833, но совершенно не сложно изменить его и для Epson`a!

Ну вроде с трудностями закончили, переходим к нашей схемке:

А остальное всё есть на схеме.

6.5В нам нужно на подсветку (от 6В до 7В = max). Регулируется подстроечным R8. Также ВАЖНО – разделить землю у дисплея (т.е. землю (выводы 8,9 коннектора) напрямую присоединить к входу 2 разъёма источника питания) – это нужно для защиты от помех. Желательно поставить 2 различных преобразователя из 5В в 3.3В – один для питания контроллера и периферии дисплея, второй – для непосредственно дисплея (выходы 1,6 – соответственно коннектора дисплея).

После разбора с железкой и пайкой приступаем к программированию для Atmega.

Открываем WinAVR, создаём проект, будем писать на С. Я отказался от assembler`a потому что код стал реально громоздким.

#include
#include // для задержки
#include "lcd.h" // определения для PFC8833
#include "font.h" // определение шрифта

void sendCMD(byte cmd); //послать команду на PFC8833
void sendData(byte cmd); //
послать байт данных
void InitLCD(void); // инициализация дисплея
void shiftBits(byte b); //
перестановкой выводов портов эмулируем SPI
void setPixel(byte r,byte g,byte b);
//
пишет в видеопамять дисплея 3 байта (r,g,b) с заданным цветом
…..
void PointXY(int x,int y,byte r,byte g,byte b)
//
рисует точку на экране с координатами x,y и цветом r,g,b
{
sendCMD(CASET); // column set (po x)
sendData(x);
// команда CASET – задаёт область рисования по x, от byte1 до byte2
sendData(x); // у нас byte1=byte2 , так как рисуем точку
sendCMD(PASET); // page set (po y)
sendData(y); // аналогично для y
sendData(y);
sendCMD(RAMWR);
setPixel(r,g,b); //пишем в память
}

Я привёл только часть кода. Все исходники можно найти в . У данного дисплея – 4096 цветов, следовательно 12 бит на пиксел RRRRGGGGBBBB.

Так же я написал консольную прожку для компа для рисования (исходники также есть в архиве).

В итоге наш девайс способен выводить:

  • окружность;

  • прямоугольник (закрашенный/нет);

    символ (первой половины ASCII (0x00

  • изображение (до (132 на 132)).

С символами нет проблем, ты можешь запросто добавить любой шрифт. Давайте взглянем на результаты:

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

Разъем матрицы ноутбука определяется по количеству контактных ножек, их число может быть равно 20, 30 или 40. Наиболее распространенными стали 30- и 40-контактные разъемы, они присутствуют почти на всех моделях ноутбуков. 30-контактные разъемы устанавливаются на ламповых матрицах, и они считаются устаревшими. Если ноутбук выпущен давно, найти аналогичную деталь от того же производителя бывает сложно, приходится подбирать аналоги, соответствующие не только по разъему, но и по целому ряду дополнительных технических характеристик.

Если вы выбираете светодиодную матрицу, необходимо обратить внимание на разъем подсоединения шлейфа: он может иметь правостороннее и левостороннее расположение, при правостороннем варианте шлейф будет более длинным.

Можно перечислить несколько широко распространенных и редко встречающихся разъемов для матрицы ноутбука:

  • 14 pin и 20 pin - экзотика, которая еще встречается на ноутбуках старого образца. Для устаревшего ноутбука сложно подобрать комплектующие, иногда проще и дешевле просто приобрести новое устройство, чем подбирать запчасти для замены.
  • 20 pin slim, другое название такого разъема «гребенка». Это еще один вариант экзотики, сегодня такой разъем можно встретить только на технически устаревших моделях.
  • 20 pin new standart. Разъем такого типа применяется на матрицах с диагональю меньше 14 дюймов, сегодня такой вариант встречается относительно редко.
  • 30 pin - распространенное решение, разъем используется на матрицах с диагональю 14-20 дюймов.
  • 40 pin - самый распространенный на сегодня вариант, он устанавливается преимущественно на матрицах с диагональю 15,6 дюйма. Именно такие матрицы выпускаются производителями LG-Philips, Samsung, Chi Mei и многими другими. По таблицам совместимости можно подобрать модели, идентичные по всем техническим параметрам.
Замена разъема матрицы ноутбука требует отработанных навыков пайки, поэтому самостоятельно браться за такую работу не рекомендуется. Полностью восстановить пострадавший разъем крайне сложно, обычно все равно приходится менять пострадавшую деталь на новую. Распиновка разъема матрицы ноутбука и их взаимная совместимость указывается в таблицах на сайтах производителей, а также на специализированных форумах.

Подбор подходящей для замены матрицы

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

Сотрудникам сервисных центров гарантируются дополнительные скидки, а также предоставляются профессиональные консультации по замене комплектующих. Воспользуйтесь выгодным предложением - в нашем магазине широкий ассортимент матриц для ноутбуков. Если вы не можете понять, какую матрицу выбрать, позвоните нам и мы подберем оптимальную модель для вас.

Интерфейс LVDS на текущий момент времени является самым распространенным интерфейсом из всех используемых в мониторах настольного типа и в матрицах для ноутбуков. По сравнению с TMDS, интерфейсом LVDS обеспечивается более высокая пропускная способность, что и привело к тому, что LVDS, фактически, стал стандартом внешнего интерфейса для современной LCD-панели.

LVDS (TIA/EIA-644) – Low Voltage Differential Signaling (низковольтная дифференциальная передача сигналов) – это дифференциальный интерфейс для скоростной передачи данных. Интерфейс разработан фирмой National Semiconductor в 1994 году. Технология LVDS отражена в двух стандартах:

1. TIA/EIA (Telecommunications Industry Association/Electronic Industries Association) - ANSI/TIA/EIA-644 (LVDS)

2. IEEE (Institute for Electrical and Electronics Engineering) - IEEE 1596.3

Кроме того, этот интерфейс часто используется под торговой маркой FPD-Link TM. Вторым владельцем авторских прав на эту шину является компания Texas Instruments, которая выпускает ее под фирменной торговой маркой FlatLinkTM.

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

- FPD-Link TM ;

- FlatLink TM ;

- PanelBus TM ;

- OpenLDI TM .

Интерфейс LVDS во многом схож с интерфейсом TMDS, особенно в плане архитектуры и схемотехники. Здесь мы также имеем дело с дифференциальной передачей данных в последовательном виде. А это означает, что интерфейс LVDS подразумевает наличие трансмиттеров и ресиверов, осуществляющих точно такое же преобразование данных, как и в TMDS (о чем достаточно подробно рассказывалось в первой части статьи). Поэтому остановимся лишь на особенностях, отличающих интерфейс LVDS от интерфейса TMDS.

LVDS способен передавать до 24 битов информации за один пиксельный такт, что соответствует режиму True Color (16.7 млн. цветов). При этом исходный поток параллельных данных (18 бит или 24 бита) конвертируется в 4 дифференциальные пары последовательных сигналов с умножением исходной частоты в семь раз. Тактовая частота передается по отдельной дифференциальной паре. Уровни рабочих сигналов составляют 345 мВ, выходной ток передатчика имеет величину от 2.47 до 4.54 мА, а стандартная нагрузка равна 100 Ом. Данный интерфейс позволяет обеспечить надежную передачу данных с полосой пропускания свыше 455 МГц без искажений на расстояние до нескольких метров.

Трансмиттер LVDS состоит из четырех 7-разрядных сдвиговых регистров, умножителя частоты и выходных дифференциальных усилителей (рис.18).

Рис.18

Достаточно часто в литературе, в документации и на схемах можно встретить и несколько другое обозначение сигналов интерфейса LVDS. Так, в частности, широко применяется такое обозначение, как RX0+/-, RX1+/-, RX2+/-, RX3+/- и RXC+/-.

Входной сигнал CLK представляет собой сигнал пиксельной частоты (Pixel Clock) и он определяет частоту формирования сигналов R/G/B на входе трансмиттера. Умножитель частоты умножает частоту CLK в 7 раз. Полученный тактовый сигнал (7xCLK) используется для тактирования сдвиговых регистров, а также передается по дифференциальным линиям CLKP/CLKM.

7-разрядный параллельный код загружается в сдвиговые регистры трансмиттера по стробирующему сигналу, вырабатываемому внутренней управляющей логикой трансмиттера. После загрузки начинается поочередное «выталкивание» битов на соответствующую дифференциальную линию, и этот процесс тактируется сигналом 7xCLK.

Таким образом, на каждой из четырех дифференциальных линий данных (Y0P/YOM, Y1P/Y1M, Y2P/Y2M, Y3P/Y3M) формируется 7-разрядный последовательный код, передаваемый синхронно с тактовыми сигналами на линии CLKP/CLKM.

Обратное преобразование последовательного кода в параллельный осуществляется ресивером, входящим в состав LCD-панели, а поэтому вполне естественно, что ресивер, фактически, является зеркальным отражением трансмиттера.

Интерфейс LVDS используется для передачи как 18-разрябного цветового кода (3 цвета по 6 бит на каждый), так и 24-разрядного цвета (3 базовых цвета по 8 бит). Но в отличие от интерфейса TMDS, здесь каждому цвету не выделяется отдельная дифференциальная пара, т.е. каждый дифференциальный канал LVDS предназначен для передачи отдельных битов разных цветов. Кроме сигналов цвета, на LCD-панель должны передаваться еще:

- сигнал строчной синхронизации (HSYNC);

- сигнал кадровой синхронизации (VSYNC);

- сигнал разрешения данных (DE).

Эти управляющие сигналы также передаются по дифференциальным каналам, предназначенным для передачи данных, т.е. по линиям YnP/YnM. Таким образом, существует два варианта формата данных, передаваемых на LCD-матрицу.

Первый вариант соответствует 18-разрядному цветовому коду, и при этом на вход трансмиттера подается 21 разряд данных. Второй вариант – это 24-разрядный цветовой код, при котором на входе трансмиттера должно быть 27 бит данных. Разница между двумя этими вариантами, формально, небольшая и она отражена в табл.3.

Таблица 3.

18-разрядный цвет

24-разрядный цвет

R 0- R 5

R 0- R 7

G 0- G 5

G 0- G 7

B 0- B 5

B 0- B 7

HSYNC

HSYNC

VSYNC

VSYNC

Общая схема, поясняющая архитектуру интерфейса LVDS, представлена на рис.19.

Рис.19

То, какие разряды цвета и служебные сигналы будут передаваться по дифференциальной линии, определяется сигналами, подаваемыми на вход соответствующего сдвигового регистра трансмиттера. При этом, конечно же, необходимо понимать, что ресивер, расположенный на LCD-панели, будет осуществлять преобразование в обратном порядке и на его выходе будет получен точно такой же формат данных. А это все означает, что вполне конкретная LCD-панель оказывается привязанной к конкретной управляющей плате монитора. Такая привязка LCD-панели к управляющей плате, конечно же, неудобна большинству производителей, т.к. отсутствует какая-либо унификация. Именно поэтому, де-факто, практически всеми производителями LCD-дисплеев и LCD-панелей использовался вполне определенный формат входных данных, позволявший к любой плате подключать любую панель. Этот формат данных стал основой стандарта, разработанного ассоциацией VESA, и на сегодняшний день можно говорить, что LVDS превратился в унифицированный интерфейс, в котором однозначно прописан протокол передачи, формат входных данных, соединительный разъем и цоколевка разъема. На этот стандарт мы и будем опираться, так как выпускаемые сейчас панели соответствуют именно ему, и встретить уникальные LVDS-интерфейсы практически невозможно.

Итак, стандартный вариант распределения входных сигналов трансмиттера между его сдвиговыми регистрами представлен на рис.20.

Рис.20

В результате, протокол передачи данных по дифференциальным каналам интерфейса LVDS выглядит так, как это показано на рис.21.

Рис.21

Как показывает внимательный анализ рис.20 и рис.21, интерфейс отличается высокой универсальностью, в результате чего, фактически, решен вопрос совместимости LCD-панелей и управляющих плат. Причем разработчик монитора имеет возможность практически не заботиться о согласовании разрядности цвета скалера и LCD-панели. Так, например, если разработчик решил применить более дешевую LCD-панель (с 18-битным кодированием цвета), то в интерфейсе не задействуется дифференциальный канал RX3, в результате чего старшие разряды цвета просто-напросто «обрубаются». А вот при разработке более дорогой модели монитора, в которой применяется LCD-панель с 24-битным кодированием, производитель использует ту же самую управляющую плату и даже не изменяет программный код ее микропроцессора, и просто подключает эту панель через полнофункциональный интерфейс – и все работает. Кроме того, производитель монитора в своем изделии может использовать любую матрицу любого производителя, лишь бы он была оснащена интерфейсом LVDS и имела бы соответствующий форм-фактор (который, к слову сказать, тоже стандартизируется). Конечно же, широкий модельный ряд мониторов не всегда получают таким примитивным образом, но и недооценивать этот метод тоже не стоит. Положительным моментом использования LVDS является еще и то, что все это дает широкие возможности сервисным специалистам при ремонте LCD-мониторов.

В принципе, интерфейс LVDS может использоваться для передачи любых цифровых данных, о чем говорит широкое применение LVDS в телекоммуникационной отрасли. Однако, все-таки, наибольшее распространение он получил именно как дисплейный интерфейс. Для увеличения пропускной способности этого интерфейса, компания разработчик (National Semiconductor) расширила интерфейс LVDS и удвоила количество дифференциальных пар, используемых для передачи данных, т.е. теперь их стало восемь (см. рис.22).

Рис.22

Это расширение получило название LDI – LVDS Display Interface. Кроме того, в спецификации LDI улучшен баланс линий по постоянному току за счет введения избыточного кодирования, а стробирование производится каждым фронтом такового сигнала (что позволяет вдвое повысить объем передаваемых данных без увеличения тактовой частоты). LDI поддерживает скорость передачи данных до 112 МГц. В документации данная спецификация встречается также и под наименованием OpenLDITM, а у отечественных специалистов отклик в душе нашел термин «двухканальный LVDS».

Интересно отметить, что в интерфейсе LVDS (LDI) имеется 8 дифференциальных пар, предназначенных для передачи данных, и две дифференциальные пары тактовых сигналов, т.е. в LDI имеется два, практически, независимых полнофункциональных канала, передача данных в каждом из которых тактируется собственным тактовым сигналом. Напомним, что в двухканальном TMDS оба канала передачи данных тактируются единым тактовым сигналом.

Естественно, что наличие двух каналов позволяет вдвое увеличить пропускную способность интерфейса, так как за один пиксельный такт можно предать информацию о двух пикселях. При этом один канал предназначен для передачи четных точек экрана (канал Even), а второй – для нечетных точек экрана (канал Odd).

Использование одноканального или двухканального LVDS определяется такими характеристиками LCD-панели и монитора, как:

- размер экрана;

- разрешающая способность;

- частота кадровой развертки, т.е. определяется режимом работы.

Разъем интерфейса LVDS на сегодняшний день можно считать стандартным, т.е. количество контактов разъема и порядок распределения сигналов по контактам является одинаковым для всех LCD-панелей любого производителя. Единственное отличие разъемов может заключаться в их конструктивном исполнении:

- разъем для плоского ленточного кабеля или традиционный разъем для обычных соединительных проводов;

- наличие или отсутствие экрана;

- наличие или отсутствие дополнительных заземляющих контактов на краях разъема;

- разъемы с разным шагом между контактами и т.п.

Стандартный разъем LVDS считается 30-контактным, хотя по его бокам могут присутствовать еще два или четыре контакта, выполняющих «заземляющую» функцию. Эти контакты в стандартном варианте не нумеруются, а обозначаются как «Frame» и соединены со схемной «землей». Однако иногда на схемах вы можете столкнуться с тем, что разъем LVDS обозначен, как 32-контактный. В этом случае следует помнить, что крайние контакты (1 и 32), как раз, и являются контактами «Frame», без учета которых интерфейс сразу же превращается в стандартный 30-контактный разъем. Порядок распределения сигналов интерфейса LVDS по контактам соединительного разъема и их традиционное обозначение представлены в табл.4.30-контактный разъем является полнофункциональным и предназначен для двухканального LVDS. В LCD-панелях с небольшим размером экрана (15-дюймов), чаще всего, используется одноканальный LVDS, т.к. его пропускной способности вполне достаточно. В этом случае задействуется та часть интерфейса, которая соответствует нечетному каналу LVDS, при этом линии четного канала могут вообще отсутствовать.

Таблица 4.

Обознач.

Описание

Frame

RXO 0-

«-» для дифф. пары №0 нечетного канала

RXO 0+

«+» для дифф. пары №0 нечетного канала

RXO1-

«-» для дифф. пары №1 нечетного канала

RXO1+

«+» для дифф. пары №1 нечетного канала

RXO2-

«-» для дифф. пары №2 нечетного канала

RXO2+

«+» для дифф. пары №2 нечетного канала

Земля

RXOC-

«-» для дифф. пары сигнала CLK нечетного канала

RXOC +

«+» для дифф. пары сигнала CLK нечетного канала

RXO 3-

«-» для дифф. пары №3 нечетного канала

RXO3+

«+» для дифф. пары №3 нечетного канала

RXE0-

«-» для дифф. пары №0 четного канала

RXE0+

«+» для дифф. пары №0 четного канала

Земля

RXE1-

«-» для дифф. пары №1 четного канала

RXE1+

«+» для дифф. пары №1 четного канала

Земля

RXE2-

«-» для дифф. пары №2 четного канала

RXE2+

«+» для дифф. пары №2 четного канала

RXEC-

«-» для дифф. пары сигнала CLK четного канала

RXEC+

«+» для дифф. пары сигнала CLK четного канала

RXE3-

«-» для дифф. пары №3 четного канала

RXE3+

«+» для дифф. пары №3 четного канала

Земля

Земля

NC (DE/ID)

Не используется. Некоторые производители данный контакт используют в качестве сигнала разрешения матрицы или сигнала идентификации. Допускается и другое использование этого контакта.

Земля

Напряжение питания (+12 V /+5 V /+3.3 V )

Напряжение питания (+12 V /+5 V /+3.3 V )

Напряжение питания (+12 V /+5 V /+3.3 V )

Frame

Рама, каркас разъема (соединен с землей)

Через интерфейс LVDS подается также и питающее напряжение для элементов LCD-матрицы. Это напряжение, обозначаемое в табл.4 как VCC, может представлять собой напряжение одного из трех номиналов:

- +3.3 V (обычно для 15-дюймовых матриц);

- +5V (для 15-дюймовых и 17-дюймовых матриц);

- +12V (обычно для 19-дюймовых матриц и больше).

Итак, интерфейс LVDS обеспечивает наилучшую из всех интерфейсов универсальность соединения LCD-панели с главной платой монитора. Так же как и в случае использования TMDS, на главной плате монитора должен находиться LVDS-трансмиттер, а в состав LCD-панели должен входить LVDS-ресивер. И трансмиттер и ресивер могут представлять собой как отдельные микросхемы (что на сегодняшний день является достаточно редким явлением), так и могут входить в состав скалера и TCON соответственно.

Если трансмиттер реализован в виде отдельной микросхемы, то необходимо учесть что каждая такая микросхема представляет собой функционально законченное устройство, обеспечивающее преобразование и передачу данных одного канала. Естественно, что в этом случае для организации двухканального LVDS, придется использовать две одинаковых микросхемы трансмиттера. И здесь вполне понятно, что одна микросхема трансмиттера предсталяет собой четный канал данных, а вторая – нечетный. Пример подобного интерфейса представлен на рис.23, где изображен интерфейс LVDS монитора Samsung SyncMaster 172T. В этом мониторе в качестве трансмиттеров LVDS используются микросхемы NT7181F. На схеме следует обратить внимание, что 30-контактный разъем LVDS (CN402) является зеркальным отражением той цоколевки, которая была представлена в табл.4 (т.е. в таблице 4 мы представили распределение сигналов по контактам разъема на стороне LCD-матрицы).

Рис.23

Следует упомянуть, что иногда, все-таки, можно встретить и нестандартные разъемы интерфейса LVDS. Особенно это касается мониторов уже устаревших моделей. Широкое распространение получил 20-контактный разъем, который часто встречается в мониторах LG, Philips, Samsung и других брэндов, использующих матрицы этих производителей. 20-контактный разъем использовался как для одноканального LVDS , так и для двухканального LVDS. При этом нужно отметить отсутствие каких-либо стандартов на распределение сигналов по контактам этих разъемов. Так, в частности, компанией Samsung в 15-дюймовых панелях достаточно широко использовался, так называемый, 20-контатный разъем LVDS, хотя в реальности на этом разъеме присутствует 22 контакта. Этот разъем предназначался для одноканального LVDS, и распределение сигналов на нем приводится в табл.5.

Таблица 5.

Обознач.

Описание

Напряжение питания (+3.3 V )

Напряжение питания (+3.3 V )

Земля

Земля

RX 0-

«-» для дифф. пары №0

RX 0+

«+» для дифф. пары №0

Земля

RX1-

«-» для дифф. пары №1

RX1+

«+» для дифф. пары №1

Земля

RX2-

«-» для дифф. пары №2

RX2+

«+» для дифф. пары №2

Земля

RXC-

«-» для дифф. пары сигнала CLK

RXC +

«+» для дифф. пары сигнала CLK

Земля

RX 3-

«-» для дифф. пары №3

RX3+

«+» для дифф. пары №3

Земля

Напряжение питания (+3.3 V )

Frame

Земля

Frame

Земля

Пример одноканального интерфейса LVDS с 22-контаткным разъемом и отдельной микросхемой трансмиттера представлен на рис.24.

Рис.24

Компаниями Philips и LG тоже применялся 22-контактный разъем, но в отличие от Samsung, этот разъем имел совершенно другую цоколевку (см. табл.6).

Таблица 6.

Обознач.

Описание

Frame

Земля

Frame

Земля

Не используется

FR 0 M

«-» для дифф. пары №0

Земля

FR 0 P

«+» для дифф. пары №0

Напряжение питания (+5 V )

FR1M

«-» для дифф. пары №1

Земля

FR1P

«+» для дифф. пары №1

Напряжение питания (+ 5V )

FR2M

«-» для дифф. пары №2

Земля

FR2P

«+» для дифф. пары №2

Земля

FCLKM

«-» для дифф. пары сигнала CLK

Земля

FCLKP

«+» для дифф. пары сигнала CLK

Земля

FR 3 M

«-» для дифф. пары №3

Земля

FR3P

«+» для дифф. пары №3

Кроме того, в относительно современных 15-дюймовых мониторах LG, например в LG Flatron L1510P, использовался реальный 20-контактный разъем для передачи данных одноканального LVDS. Распределение сигналов по контактам данного разъема приводится в табл.7.

Таблица 7.

Обознач.

Описание

Не используется

Земля

«+» для дифф. пары №3

Y 3 M

«-» для дифф. пары №3

Земля

CLKP

«+» для дифф. пары сигнала CLK

CLKM

«-» для дифф. пары сигнала CLK

Земля

«+» для дифф. пары №2

«-» для дифф. пары №2

Земля

«+» для дифф. пары №1

Y 1 M

«-» для дифф. пары №1

Земля

Y 0 P

«+» для дифф. пары №0

Y 0 M

«-» для дифф. пары №0

Земля

Земля

Напряжение питания (+3. 3V/ +5 V )

Напряжение питания (+3. 3V/ +5 V )

Другой вариант 20-контактного разъема интерфейса LVDS применялся фирмами Philips и LG в 15/17 и 18-дюймовых матрицах, в которых передача данных осуществлялась с использованием 2-канального LVDS. При этом, 20-контактный разъем предназначался исключительно для передачи данных и на нем отсутствуют контакты питания и земли. Питающее напряжение и сигнальная земля LCD-матрицы в данном случае выведены на другой разъем, обычно 5-контаткный. Распределение сигналов двухканального LVDS по контактам 20-пинового разъема в мониторах Philips и LG, представлено в табл.8.

Таблица 8.

Обознач.

Описание

FR3P

«+» для дифф. пары №3 (нечетный канал)

FR3M

«-» для дифф. пары №3 (нечетный канал)

FCLKP

«+» для дифф. пары сигнала CLK (нечетный канал)

FCLKM

«-» для дифф. пары сигнала CLK (нечетный канал)

FR2P

«+» для дифф. пары №2 (нечетный канал)

FR2M

«-» для дифф. пары №2 (нечетный канал)

FR1P

«+» для дифф. пары №1 (нечетный канал)

FR1M

«-» для дифф. пары №1 (нечетный канал)

FR0P

«+» для дифф. пары №0 (нечетный канал)

FR0M

«-» для дифф. пары №0 (нечетный канал)

SR3P

«+» для дифф. пары №3 (четный канал)

SR3M

«-» для дифф. пары №3 (четный канал)

SCLKP

«+» для дифф. пары сигнала CLK (четный канал)

SCLKM

«-» для дифф. пары сигнала CLK (четный канал)

SR2P

«+» для дифф. пары №2 (четный канал)

SR2M

«-» для дифф. пары №2 (четный канал)

SR1P

«+» для дифф. пары №1 (четный канал)

SR1M

«-» для дифф. пары №1 (четный канал)

SR0P

«+» для дифф. пары №0 (четный канал)

SR0M

«-» для дифф. пары №0 (четный канал)

Как видно из всего этого, при применении на LCD-матрице 20-контактного разъема говорить о совместимости панелей различных производителей говорить не приходится (именно эту проблему и пытались решить введением стандартного 30-пинового разъема).

Еще раз обращаем внимание на то, что цоколевка разъемов во всех таблицах представлена со стороны LCD-матрицы. Это означает, что на основной плате монитора она имеет обратный порядок.

С некоторых пор в интернет-магазине Алиэкспресс появились жидкокристаллические дисплеи с диагональю 2,2 дюйма и разрешением 240RGBx320 по очень соблазнительной цене. Я оказался в числе соблазнившихся и приобрел парочку таких изделий по 90 руб. за штуку. Забегая наперед, могу сказать, что авантюра оказалась удачной: несмотря на мягкую упаковку, фальшивый трек-номер и несоответствие модели дисплея, товар дошел без повреждений, экранчики удалось подключить, протестировать и никаких дефектов выявлено не было. Но, как говорится, скоро сказка сказывается...

Подключение такого рода экранчиков не является суперсложной задачей. Но, правда, при одном условии - наличии технической документации, которая в самом минимальном виде должна содержать назначение выводов LCD, список команд и алгоритм инициализации. В некоторых случаях требуются и еще некоторые "секреты". Чтобы не оказаться "счастливым" обладателем, хотя и не дорогого, но бесполезного хлама, я заранее нашел в интернете и скачал документацию. Но, получив на почте конвертик, как и многие "братья по счастью", я с удивлением обнаружил в нем... не совсем те LCD, какие были в описании у продавца. Единственное, что совпадало - это диагональ и разрешение. Впрочем, проверить разрешение удалось позднее - только после включения. Различия же начинались уже с количества выводов - их было 32 вместо обещанных 26. Пришлось искать информацию теперь уже на реальный дисплей. Не скажу, что поиск был долгим и трудным, но это лишь благодаря тому, что на одном из форумов уже была открыта подобная тема: http://forum.easyelectronics.ru/viewtopic.php?f=9&t=22577 Мужики, оказавшиеся в аналогичной ситуации, раздобыли нужную информацию.

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



Настолько простой, чтобы вероятность ошибки в ней стремилась к нулю. Она также должна быть максимально открытой, чтобы ее работу легко можно было проверить, например, в пошаговом режиме, измеряя напряжения на выводах LCD. Нужно было выбирать: собирать схему на микроконтроллере или без него. Предпочтение было отдано второму варианту. Во-первых, при этом отпадала необходимость писать программу для контроллера и возиться с ее отладкой. Во-вторых, для организации пошагового режима не нужно было ничего специально выдумывать. В-третьих, при внесении изменений в программу не требовалась перепрошивка чего-либо - достаточно было сохранить изменения в текстовом файле, и - можно снова запускать программу. Недостаток же у этого метода, пожалуй, всего один - низкая скорость записи информации в LCD. Но с этим недостатком решено было смириться, учитывая назначение данной схемы. Я не собирался постоянно использовать LCD с таким способом подключения. Мне нужно было лишь удостовериться в исправности экранчиков, разобраться с алгоритмом их инициализации, поэкспериментировать, потестировать. Описываемая ниже схема отлично справилась с этими задачами. Заполнение всего экрана графической информацией с ее помощью длится, конечно, довольно долго - нужно передавать в LCD большой объем информации при том, что интерфейс LCD реализован путем его программной эмуляции, да еще и через сдвиговые регистры, управляемые также программно. Однако длительность инициализации, как и длительность настройки режимов LCD, не столь велика и укладывается в приемлемые рамки. Это объясняется тем, что для инициализации или настройки достаточно выполнить максимум нескольких десятков операций записи.

2. Схема устройства

Рассмотрим подробнее порядок подключения LCD, несущего на себе загадочные надписи TC220-85-C-P4-J-E и TFT8K0291FPC-A1.

Рис. 2.


1 . О назначении первого вывода я могу лишь строить предположения. Возможно, он сигнализирует о физическом присутствии LCD в системе. Во всяком случае, без него можно обойтись.
2
3 . Питание +2.8V
4 . Выбор кристалла. Активный уровень - низкий. Его полноценное задействование имеет смысл в том случае, если шина данных используется более чем для одного устройства. В простейшем случае достаточно подать на него константу - логический "0".
5 . Обязательно должен быть подключен и программно доступен. Этот сигнал принимает разные уровни в зависимости от того, что записывается в LCD: команда (0) или данные (1). Здесь можно запутаться. Дело в том, что в концепции разработчиков микросхемы вместо понятия "команда" используется понятие записи в "индексный регистр". Это почти то же самое, но с указанием на архитектуру кристалла. Индексный регистр является указателем адреса того регистра, куда будут записываться данные. Иначе говоря, команда - это номер в адресном пространстве регистров, предназначенных для записи данных. В качестве данных могут быть как настройки режимов, так и графическая информация.
6 . Строб записи. Активный уровень низкий. Подключать обязательно. Когда записываемая информация на шине данных сформирована, этот сигнал должен быть переведен в активное состояние и обратно. При этом происходит запись информации в LCD.
7 . Строб чтения. Активный уровень низкий. Можно не использовать, подав на него константу - логическую единицу. Нужен только в том случае, если предполагается читать что-либо из LCD.
8
9,10,11,12 . Выводы сенсорной панели, которой нет.
13 . Общий анод светодиодов подсветки. Соответственно, подключается к плюсу источника питания подсветки.
14,15,16,17 . Катоды светодиодов подсветки. Подключаются к минусу источника питания подсветки. Причем, вместе их лучше не соединять из-за разброса параметров светодиодов.
18 . На этот вывод лучше подать константу, а вот какую - это дело личных предпочтений. Я решил подать логическую единицу. Нет, не от того, что к единицам больше тяготею, чем к нулям. Дело в том, что при этом возможности данного дисплея раскрываются по-максимуму. Надо отметить, что разработчики очень "постарались" с разрядностью шины данных и внутренних регистров. Так вот, подав логическую единицу на этот вход, мы получим аж 9-разрядную шину данных и максимальный набор цветовых и яркостных градаций. При нуле на этом входе становится ненужным вывод 19 (DB9), а шина данных превращается в 8-разрядную.
19...27 . Шина данных DB9...DB17. Без нее не обойтись.
28 . Аппаратный сброс. Активный уровень - низкий. Он нужен, но в самом простом случае к нему можно подключить даже обычную кнопку с подтягивающим резистором.
29 . Питание +2.5...3.3 V.
30 . Питание +2.8V.
31 . Подключается к общему проводу.
32 . Этот вывод сделан для красоты. Подключения не требует.

Для связи с компьютером использован простенький конвертер USB-RS232TTL на микросхеме PL-2303. Вовсе не обязательно применять именно такой конвертер, но у этого есть свои преимущества. Главное из них заключается в отсутствии необходимости подключать дополнительное питание. Все питающие напряжения можно получить прямо от этого модуля. Кроме обычного для USB напряжения +5V, данный модуль имеет выход +3.3V. Зачем создателям микросхемы PL-2303 понадобилось утруждаться формированием этого напряжения, я не очень понимаю. Казалось бы, питание подключенных к модулю устройств - не их забота, но раз такое напряжение уже сформировано, было бы грех этим не воспользоваться. С помощью диода VD1 и резистора R29 напряжение 3.3V снижается примерно до 2.8V и используется для питания LCD. В качестве VD1 подойдет любой кремниевый диод.

Микросхемы DD2 и DD3 питаются напряжением 5V, которое также снимается с модуля преобразователя интерфейса. С помощью этой же цепи питания формируется ток питания светодиодов подсветки. Величина этого тока ограничивается резисторами R30...R33. Соединять катоды светодиодов подсветки между собой не рекомендуется.

На резисторах R3...R26 собраны делители напряжения. Они нужны для понижения уровня логической "1" сигналов, поступающих с выходов микросхем DD2, DD3 на входы LCD. Если этого не сделать, на входах LCD будет появляться напряжение логической "1", значительно превышающее напряжение питания LCD, что недопустимо.

Эмуляция интерфейса LCD выполняется путем последовательного наполнения сдвиговых регистров DD2 и DD3. Благодаря наличию в этих микросхемах дополнительного регистра хранения, процесс их наполнения не меняет состояние выходов до тех пор, пока не будет подан сигнал параллельной загрузки на выводы 12. Это позволяет управлять логическим уровнем любого разряда на выходах Q0...Q7 указанных микросхем, оставляя неизменными состояния остальных выходов.

Для наполнения сдвиговых регистров (74595) на вывод 14 микросхемы DD2 последовательно подаются вводимые данные, начиная со старшего разряда. Сдвиг выполняется положительным фронтом синхроимпульса на выводах 11 обеих микросхем. По окончании наполнения регистров на выводы 12 микросхем DD2 и DD3 подается импульс логической единицы, по фронту которого происходит одновременное (параллельное) отображение накопленных последовательным способом данных на выходах регистров. Передача сдвигаемых данных от DD2 к DD3 выполняется при помощи вывода 9 микросхемы DD2, который отражает состояние старшего разряда сдвигового регистра, минуя параллельный регистр хранения. В общей сложности для управления сдвиговыми регистрами как описано выше требуется три сигнала: данные, сдвиговый синхроимпульс и синхроимпульс параллельного вывода.

Указанные сигналы формируются программно на выходах DTR, RTS и TXD конвертера USB-RS232TTL. Сигналы DTR, RTS и TXD в данном случае используются нестандартно, но никакого "криминала" в этом нет, и, как показывает опыт, такой метод достаточно надежен. Задействованный в данной схеме конвертер не имеет удобно выведенных выходов DTR и RTS, поэтому пришлось прорезать окно в термоусадочной оболочке и припаять проводники напрямую к выводам микросхемы PL-2303. У данной микросхемы на выводе 1 формируется сигнал TXD, на выводе 2 - DTR, на выводе 3 - RTS. Но такой метод получения доступа к необходимым сигналам подойдет не всем - пайка мелкая. Расстояние между первым и четырнадцатым выводами микросхемы PL-2303 составляет всего 8,8 мм. Можно пойти другим путем - применить конвертер USB-RS232TTL в виде шнура-переходника. Тогда все необходимые сигналы можно снять с обычного разъема, как у COM-порта. Питание схемы в этом случае придется организовывать другим способом. При замене конвертера USB-RS232TTL на другую модель необходимо учитывать возможность инвертирования (или его отсутствия) некоторых сигналов в зависимости от модели конвертера. Нет никаких требований по инвертированию, которые влияли бы на выбор конвертера. Нужно лишь иметь в виду, что может потребоваться внести соответствующую поправку в программу (в самом начале скрипта, где описаны настроечные константы).

В цепи питания 5 В и 2,8 В полезно добавить конденсаторы емкостью 0,1...1 мкф, чтобы снизить вероятность сбоя из-за помех по питанию.

3. Программная часть

Аппаратная часть подключения данного LCD не содержит в себе ничего особенного, если не обращать внимания на девятиразрядность шины данных, что, впрочем, не страшно. А вот с точки зрения программирования данного дисплея можно сказать, что его создатели намудрили основательно: все внутренние регистры считаются 18-разрядными (даже индексный, использующий всего 7 разрядов), запись из-за этого всегда выполняется двумя операциями (сначала - старшие 9 бит, затем - 9 младших), инструкции в то же время 16-разрядные (что вызывает особый "перекос" с 18-разрядным внутренним регистром записи), а графические данные используют все 18 бит при условии, что шина данных работает в 9-разрядном режиме. Причем три элементарных цветовых пикселя в одной триаде передаются также за две операции записи: сначала 6 бит красного и 3 старших бита зеленого, затем 3 младших бита зеленого и 6 бит синего. Ко всему в придачу алгоритм инициализации придуман как будто с расчетом "чтобы враги не догадались" - для запуска данного LCD требуется обилие замысловатых настроек и команд.

Рис. 4. Каждый из этих симпатичных квадратиков нарисован на фоне цветового шума при помощи следующего алгоритма:

Y=128;
a=1;
while a begin
Инд="20"; SetIndex(); Дан="0040"; SetData();
Инд="21"; SetIndex();
Дан=Str.SetLen.Right(Str.DecToHex(Y),4,"0"); SetData();
Инд="22"; SetIndex();
b=1;
while b begin
if (a20) then

if (b20) then
Точка="000000000000000000" else
Точка="111111000000000000"; //красный
OutToGRAM();
b=b+1;
end;
Y=Y+1;
a=a+1;
Sys.PM();
end;

С учетом вышесказанного, рассматриваемый LCD трудно назвать простым для программирования. Делаю такой вывод, имея возможность сравнивать: в прошлом довелось "поиграться" с похожим экранчиком, имеющим также разрешение 240x320 и такую же диагональ. Но тот LCD удалось запустить в буквальном смысле голыми руками - схема подключения состояла только из батареек (питание), проводов, кнопок и не содержала никаких микросхем! Шина данных там была 8-разрядная. Каждая запись в LCD состояла из одной операции записи. Элементарные цветовые пиксели кодировались каждый своим целым байтом. Команды для инициализации приходилось набирать перемычками. Всего команд для запуска дисплея нужно было штуки три и это было не трудно. И все получилось! С описываемым в данной статье LCD такой фокус бы не прошел.

Рассмотрим основные принципы программирования LCD. Сигнал аппаратного сброса (вывод 28 LCD) может быть полностью аппаратным, или же, как в нашем случае, - программно управляемым. Работа с LCD начинается с подачи активного логического уровня на вход сброса, после чего данный сигнал возвращается в неактивное состояние. Далее программное взаимодействие с LCD состоит из операций записи в него и чтения из него. В самом простом случае можно обойтись только операциями записи. Так и сделано в рассматриваемом примере.

Теперь подробнее об особенностях данного LCD, которые необходимо учитывать при его программировании. Прежде всего необходимо знать, что запись любой информации в данный LCD выполняется в два этапа. Это позволяет передать 18 бит через 9-разрядную шину данных. Никаких специальных переключателей, позволяющих отличить первую половину данных от второй, не предусмотрено. "Склеивание" 18-разрядного слова происходит внутри дисплея автоматически. Нужно лишь соблюдать последовательность - первыми идут старшие биты, затем - младшие. Далее, чтобы избежать путаницы, будем называть такую двойную запись полным циклом записи (ПЦЗ).

Различают передачу в LCD команд и данных. Аппаратно эти два вида ПЦЗ четко разделены при помощи сигнала "RS" (вывод 5 дисплея). Данные тоже различаются: в зависимости от ранее переданной команды это могут быть установки режимов и настроек, либо отображаемые на экране графические данные. Во втором случае данные можно передавать многократно, не повторяя ввод команды, - внутренний счетчик адреса LCD после каждого ПЦЗ автоматически увеличивается на единицу, что выглядит на экране, как переход к следующей RGB-триаде элементарных пикселей.

Что бы мы ни пытались сообщить дисплею, первым всегда идет ПЦЗ команды. По-другому это еще называют записью в индексный регистр. Код, который мы заносим в этот регистр по сути является номером одного из регистров, предназначенных для приема данных. Это значит, что заполняя индексный регистр (передавая команду), мы сообщаем тому или иному регистру данных, что последующая запись данных будет производиться в него. После ПЦЗ команды выполняется один или множество ПЦЗ данных. LCD различает запись данных и запись команд с помощью своего 5-го вывода (RS), устанавливаемого в состояние логического нуля при записи команд, и в состояние логической единицы - при записи данных. Вот, собственно, и все, что касается общего подхода к программированию LCD, но есть свои особенности в распределении разрядов 18-разрядного слова внутри ПЦЗ.

Возьмем, к примеру, ПЦЗ в индексный регистр. Этот регистр в действительности использует всего 7 бит. Обратите внимание на рисунок, показывающий соответствие между передаваемой информацией и записываемой в регистр.


Данные для той или иной команды являются 16-разрядными (кроме графических). На следующем рисунке показано, как передаваемые за один ПЦЗ 18 разрядов "упаковываются" в 16-разрядный регистр данных.


И, наконец, передача в LCD одного полного RGB-пикселя (триады) также не лишена особенностей. Данные одной триады передаются за один ПЦЗ. На рисунке показано кодирование триады (18 бит = 6 бит "R" + 6 бит "G" + 6 бит "B").


Желающие могут . Написана она в виде скрипта (файл "Тест LCD 240RGBx320.pms" в папке "PMS"), для исполнения которого требуется интерпретатор, входящий в состав программы "Перпетуум М". также можно по прямой ссылке. Таким образом должно получиться два архивных файла. Установка программного обеспечения сводится лишь к созданию новой папки на жестком диске и распаковке в нее содержимого обоих архивов. После этого можно запускать файл perpetuum.exe

Программа (скрипт) содержит функции эмуляции интерфейса LCD, алгоритм инициализации дисплея и тесты, два из которых заполняют экран черными и белыми полями, а третий выводит картинку. Просматривать и изменять данную программу можно с помощью обычного текстового редактора. Перед первым запуском программы уточните в диспетчере устройств Windows имя используемого порта и, при необходимости, внесите соответствующую поправку в текст скрипта (строка: "ИмяПорта="COM4";" - вместо цифры 4 может стоять другая цифра). Также при использовании другой модели конвертера USB-RS232TTL может потребоваться изменение настроек инвертирования сигналов (строки скрипта, начинающиеся со слова "Высокий"). Проверить инвертирование сигналов конвертером USB-RS232TTL можно с помощью одного из примеров, содержащегося в инструкции к программе "Перпетуум М" (раздел функций для работы с портом).

Здесь также можно найти . Эта таблица поможет разобраться в режимах и настройках дисплея.

Кроме PL-2303 существуют и другие микросхемы, на которых создаются конвертеры интерфейса, подобные использованному в данной разработке. Читайте описание ещё одного преобразователя и о его доработке до полноценного USB-RS232TTL.




Top