Мир периферийных устройств пк. Заведи экран: свой TFT–дисплей Схема led матрицы ноутбука hannstar 30 pin


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

Где то год назад, мне на ремонт принесли монитор, в котором воспламенился провод питания подсветки. Сама матрица не пострадала, но часть органического стекла, которое служит рассеивающей линзой, прогорело. Так же, лопнули 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

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

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

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

С некоторых пор в интернет-магазине Алиэкспресс появились жидкокристаллические дисплеи с диагональю 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.

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

Разъем матрицы ноутбука определяется по количеству контактных ножек, их число может быть равно 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 и многими другими. По таблицам совместимости можно подобрать модели, идентичные по всем техническим параметрам.
Замена разъема матрицы ноутбука требует отработанных навыков пайки, поэтому самостоятельно браться за такую работу не рекомендуется. Полностью восстановить пострадавший разъем крайне сложно, обычно все равно приходится менять пострадавшую деталь на новую. Распиновка разъема матрицы ноутбука и их взаимная совместимость указывается в таблицах на сайтах производителей, а также на специализированных форумах.

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

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

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

Рассматриваемый шилд представляет собой плату с встроенными модулями индикации и управления. Индикация осуществляется с помощью LCD-дисплея TC1602, управление – через встроенные кнопки. Есть возможность регулировки яркости дисплея прямо на плате с помощью подстроечного резистора. Плата снабжена разъемами, в которые могут быть подключены другие устройства, например, датчики. Для работы с экраном используются пины 4-10, для определения нажатия кнопок – только один аналоговый пин A0. Свободными являются цифровые пины 0-3, 11-13 и аналоговые пины A1-A5.

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

Технические характеристики

  • Тип дисплея: LCD 1602, символьный, 4-х битный режим.
  • Разрешение: 16×2 (две строки по 16 символов каждая). Знакоместо 5×8 точек.
  • Цвет дисплея: синий (возможны варианты с желтым и зеленым цветом). Буквы белого цвета.
  • Технология: STN, Transflective, Positive.
  • Контроллер дисплея: HD44780U.
  • Предельная частота обновления экрана: 5Гц
  • Питание дисплея: 5 Вольт
  • Кнопки: 6 кнопок (5 кнопок управления и Reset).
  • Дополнительные элементы: регулировка яркости подсветки (потенциометр).
  • Рабочая температура экрана: от -20 °С до +70 °С;
  • Температура хранения экрана: от -30 °С до +80 °С.

Распиновка LCD shield для подключения к Arduino

Контакт дисплея LCD 1602 Описание Контакт на LCD Shield
Пины LCD экрана
GND Земля
VDD Питание 5В
Contrast Управление контрастом Потенциометр
RS Команды/Данные 8
R/W Чтение/Запись
Enable Включение (активирование) 9
DB0 Не используется
DB1 Не используется
DB2 Не используется
DB3 Не используется
DB4 Дата 1 4
DB5 Дата 2 5
DB6 Дата 3 6
DB7 Дата 4 7
Back LED + Включение подсветки 10
Back LED – Питание подсветки
Пины для кнопок
Кнопка UP Управляющая кнопка A0
Кнопка DOWN Управляющая кнопка A0
Кнопка LEFT Управляющая кнопка A0
Кнопка RIGHT Управляющая кнопка A0
Кнопка SELECT Управляющая кнопка A0
Reset Reset
ICSP ICSP для перепрошивки встроенного микроконтроллера HD44780U
UART Контакты для UART соединения 0, 1

Дополнительные элементы шилда

  • Индикаторный светодиод (включается при подключении питания к плате).
  • Контактные площадки для подключения аналоговых устройств (GND, VSS, пин данных).
  • Потенциометр для регулирования контрастностью экрана.

Подключение платы LCD Shield к Arduino

Подключение шилда очень простое – нужно попасть ножками в соответствующие разъемы платы ардуино и аккуратно совместить их. Ничего дополнительно подсоединять или припаивать не надо. Нужно помнить и учитывать тот факт, что часть пинов зарезервированы для управления дисплеем и кнопками и не может быть использована для других нужд! Для удобства подключения дополнительного оборудования на плате выведены дополнительные разъемы 5В и GND к каждой контактной площадке аналоговых пинов. Это, безусловно, упрощает работу с датчиками. Также можно подключать цифровые устройства через свободные пины 0-3 и 11-13. Подключив шилд, мы можем работать с экраном и кнопками на нем так же, как с отдельными устройствами, учитывая только номера пинов, к которым припаяны соответствующие контакты.

Скетч для экрана на Arduino LCD shield

Для работы с LCD экранами обычно используют популярную библиотеку LiquidCrystal . На этапе инициализации создается объект класса LiquidCrystal, в конструкторе которого мы указываем пины с подключенными контактами экрана. Для нашего шилда требуется использовать такой вариант: LiquidCrystal lcd(8, 9, 4, 5, 6, 7); Последовательность аргументов конструктора:

  • RS (8)
  • Enable (9)
  • data(4)
  • data(5)
  • data(6)
  • data(7)

Ничего сложного в работе с объектом нет. В setup() мы инициализируем объект, указывая ему количество символов и строк:

Lcd.begin(16, 2);

Для вывода информации на дисплей используем метод print():

Lcd.print (“Arduino Master!”);

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

Lcd.setCursor(0, 0); // Первый символ первой строки lcd.setCursor(0, 1); // Первый символ второй строки lcd.setCursor(2, 1); // Третий символ второй строки

Кнопки LCD Keypad Shield

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

Значения уровня сигнала на пине A0 в зависимости от выбранной кнопки:

Нажатие кнопки Значение на аналоговом пине
RIGHT 0-100
UP 100-200
DOWN 200-400
LEFT 400-600
SELECT 600-800
Клавиша не нажата 800-1023

Пример скетча работы с кнопками LCD Keypad Shield:

Int keyAnalog = analogRead(A0); if (keyAnalog < 100) { // Значение меньше 100 – нажата кнопка right // Выполняем какое-то действие для кнопки вправо. } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP // Выполняем какое-то действие для кнопки вверх } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN // Выполняем действие для кнопки вниз } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT // Выполняем действие для кнопки влево } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT // Выполняем действие для кнопки выбора пункта меню } else { // Все остальные значения (до 1023) будут означать, что нажатий не было }

В выбранном методе кодирования есть два главных недостатка:

  • Нельзя отслеживать одновременное нажатие нескольких кнопок;
  • Возможные искажения сигнала могут привести к ложным срабатываниям.

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

Пример скетча для работы с экраном и кнопками меню

В данном примере мы определяем текущую нажатую кнопку и выводим ее название на экран. Обратите внимание, что для удобства мы выделили операцию определения кнопки в отдельную функцию. Также в скетче мы выделили отдельный метод для вывода текста на экран. В ней мы показываем сообщение (параметр message) и очищаем его через секунду. Нужно помнить, что в течение этой секунды нажатия кнопок не обрабатываются

#include LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define BTN_UP 1 #define BTN_DOWN 2 #define BTN_LEFT 3 #define BTN_RIGHT 4 #define BTN_SELECT 5 #define BTN_NONE 10 int detectButton() { int keyAnalog = analogRead(A0); if (keyAnalog < 100) { // Значение меньше 100 – нажата кнопка right return BTN_RIGHT; } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP return BTN_UP; } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN return BTN_DOWN; } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT return BTN_LEFT; } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT return BTN_SELECT; } else { // Все остальные значения (до 1023) будут означать, что нажатий не было return BTN_NONE; } } void clearLine(int line){ lcd.setCursor(0, 1); lcd.print(" "); } void printDisplay(String message){ Serial.println(message); lcd.setCursor(0, 1); lcd.print(message); delay(1000); clearLine(1); } void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("Arduino Master"); delay(3000); lcd.setCursor(0, 0); lcd.print("Arduino Master"); } void loop() { int button = detectButton(); switch (button) { case BTN_UP: printDisplay("UP"); break; case BTN_DOWN: printDisplay("DOWN"); break; case BTN_LEFT: printDisplay("LEFT"); break; case BTN_RIGHT: printDisplay("RIGHT"); break; case BTN_SELECT: printDisplay("SELECT"); break; default: //printDisplay("Press any key"); break; } }

Краткие выводы по плате расширения LCD keypad shield

Плата расширения LCD Keypad достаточно популярная, она проста и удобна для использования в проектах Arduino. Сегодня ее можно легко купить практически в любом интернет-магазине.

Плюсы LCD Shield:

  • Упрощает подключение жидкокристаллического экрана.
  • Уменьшает общие размеры устройства, т.к. убирает выступающие провода и монтажные платы.
  • Сокращает количество ошибок, связанных с неправильным монтажом и подключением.
  • Добавляет функциональность кнопочного управления, если на плате установлены кнопки (LCD Keypad shield).

Недостатки:

  • Стоимость шилда выше, чем стоимость отдельного экрана.
  • Не всегда нужна дополнительная функциональность в виде кнопок.
  • Шилд потребляет больше энергии, чем отдельные элементы платы.

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

И так, что мы имеем.

Я заказал себе довольно такой продвинутый скалер.

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

Разбираем планшет, чтоб получить доступ к матрице.

Отключаем все шлейфы и отбрасываем в сторону все, кроме матрицы.

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

1 – это более старый стандарт, там где матрицы еще были с ламповой подсветкой.

2 – более новый стандарт, там где LED-матрицы идут.

3 – эти разъёмы встречаются в 7 дюймовых планшетах и разных небольших.

С другой стороны разъёмы более-менее стандартизированы и подходят в практически любой универсальный скалер.

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

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

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

Дольше идет следующий набор перемычек, это выставляется разрешение экрана. Хочу заметить, что помимо разрешения экрана еще меняется битность. На обратной стороне скалера есть шпаргалка, в которой написано разрешение и битность. Битность бывает 6-bit и 8-bit, визуально разъёмы 6-ти и 8-ми битные различаются по количеству контактов. Информацию какой битности ваша матрица опять же читаем в даташите.

Прежде чем переходить к матрице необходимо изучить даташит, его очень легко найти по наклейке, которая находится сзади матрицы. В моем случае это «LP101WX1 ». В даташите на матрицу нас интересуют 3 или 4 пункта, в зависимости от того это LED-матрица или это матрица с лампой с холодным катодом. Прежде всего, определим какое разрешение матрицы, просто листаем даташит и ищем эту запись. Здесь у нас в таблице указан формат пикселей (Pixel Fotmat) то есть это 1280×800, соответственно перемычками на сайлере необходимо выбрать это разрешение. Ширина интерфейса соответствует количеству цветов, в данном случае это 6-bit или 262 144 цветов. Этих двух параметров нам достаточно чтоб выбрать правильный режим работы матрицы.

Но для того чтобы матрица выжила нам еще нужно выставить правильное напряжение , листаем дальше. И вот у нас сводная таблица электрических характеристик. Logic, то есть питание логики, напряжение питания логики (Power Supply Input Voltage) от 3,0 до 3,6 вольт, типичное 3,3 вольта, соответственно перемычку питания матрицы выставляем на 3.3 вольта.

И на всякий случай смотрим подсветку, этот пункт нужно смотреть только в том случает если матрица с LED подсветкой. Как написано на плате, плата питается от 12 вольт, а наша подсветка работает от 5 до 21 вольта, 12 как раз будет в самый раз. Я других матриц не встречал у которых напряжение питания 5 вольт, но предполагаю, что такое может быть, если будете использовать матрицу из какого ни будь маленького планшета. Поэтому вот этот параметр обязательно смотрите, иначе можете просто испортить подсветку матрицы. Если же питание будет отличное от 12 вольт, то напрямую подключать разъем питание подсветки нельзя, нужно будет обеспечить нужное напряжение питания.

И так, настраиваем скалер в соответствии с данными из даташита. Меня интересует разрешение 1280×800 и 6-bit, для этого ставлю перемычки F и G

Перемычки сконфигурировали, теперь давайте пройдемся по элементам на плате.

1 — первые два разъема это питание

2 – последовательный порт

3 – DC-DC преобразователь

4 – линейный стабилизатор

5 – разъемы (VGA, HDMI, RCA, звук и высокочастотное подключение антенны)

6 – управление подсветкой

7 – кнопки и всякое управление

8 – разъем LVDS, куда подключается матрица

9 — память

10 – процессор

11 – усилитель мощности

12 – TV-тюнер

Подробнее о разъёмах

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

Если у вас LED-матрица , то есть светодиодная, то заморачиваться не стоит, у вас прямо в матрице установлен контролер управления подсветкой и этот разъем входит прямо в шлейф. Т.е. Просто подключаете матрицу и больше не над чем заморачиваться не нужно.

Если же матрица древняя на , определить это можно по дополнительным проводам выходящим из матрицы.

В матрице могут быть установлены такие лампы и из нее выходят провода. В ноутбуках обычно выходит 1 провод, в матрице монитора 2 или 4. Для того чтобы подключить такую матрицу можно использовать универсальный инвертор для подсветки . Он бывает на 1, 2 и 4 выхода, т.е. каждый выход это подключение одной лампы. Инвертор нужно подбирать по количеству ламп в вашей матрице, то есть нельзя подключить в инвертор с 4-мя выходами только 2 лампы, так как инвертер уйдет в защиту, потому что все выходы должны быть равномерно нагружены. Поэтому если матрица на 2 лампы, покупаем инвертор на 2 выхода, если на 1 лампу, покупаем на 1 выход. Разъемы унифицированы поэтому подходят сразу 1 в 1, просто вот так втыкаются и все.

Приступим к подключению

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

На всякий случай проверяем, подходит ли подсветка. Красный – плюс, черный – минус и единственный провод это включение подсветки. Переворачиваем плату на обратную сторону и сравниваем надписи возле контактов с проводами, если все сходится подключаем.

Еще нам нужно какое ни будь управление. Кстати подробнее об управлении, колодка, куда я подключил ИК-приемник это управление. Сюда идут кнопки, они все подписаны, кнопки можно приобрести отдельно или подключить свои.

В принципе это все, все что нужно подключили.

Переворачиваем матрицу и подключаем питание. Если вы собираетесь подключаться к компьютеру, то можно взять питание с БП компьютера. Включаем…

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

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

Я сначала подумал что сгорел буфер опорных напряжений в матрице, но подключив матрицу к планшету понял, что с матрицей все в порядке, она не сгорела. Покопавшись на просторах интернета, нашел сервисное меню. Оказывается нужно в сервисном меню изменить способ работы скалера с матрицей. Для этого заходим в меню и набираем код 8896, и нам открывается сервисное меню. В меню находим системные настройки (System setting) -> Настройки панели (Panel setting) -> и просто изменяем цветовую схему (Color set). Перебирая все варианты находим самый оптимальный, для меня это был 3. В других моделях скалеров может быть другой код доступа в сервисное меню и немного другой путь к настройкам цветовой схемы.

Выходим из меню и видим, что все цвета отображаются правильно.

Таким же способом можно подключить матрицу от почти любого планшета или монитора.







2024 © uzbek-seks.ru.