Сегодня мы рассмотрим: Настоящие ценители музыки знают, что для качественного...
Начался новый семестр. В качестве курсовой работы в институте решил замутить такой вот девайс для вывода графики на дисплей от 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)).
С символами нет проблем, ты можешь запросто добавить любой шрифт. Давайте взглянем на результаты:
Разберём всё подробно и по пунктам.
Всё это косается современных матриц с LVDS управлением. Начиная с 1999 года производитель наконец то начал стандартизировать свои матрицы и на сегодня мы имеем следущее документы по матрицам.
Последнего стандарта 4.0 от 2007 года я не имею, но всё ясно по последнему доступному документу
1. ЕЕПРОМ НА МАТРИЦЕ
На матрице как правило устанавливают микросхму памяти (еепром) в
которой прописаны характеристики матрицы, т.е. указание ноутбуку, какая
стоит матрица и как с ней работать. Еепром на матрице может стоять, а
может и не стоять (все современные матрицы имеют установленный еепром
согласно стандартизации, а старые матрицы могут еепром не иметь).
Большенство ноутбуков использует еепром матрицы, а в части
ноутбуков матрица выставляется джамперами или перемычками на шлейфах.
Прошу обратить внимание, на то, что на некоторых матрицах, гдее еепром
отсутствует все контакты выводов еепром могут быть подключены на массу
и при подключении такой матрицы в ноутбук, где еепром опрашивается,
возможно повреждение материнской платы, а именно выгорание видеочипа
или канала питания еепром. Если у вас есть матрица без еепрома, то
можно установить в неё еепром с разбитой или неисправной матрицы.
2. КРЕПЛЕНИЕ МАТРИЦ
Даже похожие матрицы могут иметь разницу в креплениях.
17" матирицы
, боковые крепления идентичные, но может возникнуть проблемы с плоскостными креплениями (наличие и отсутствие "ушей" рис. ниже) ,
также как исключение ACER 17xx series, где стоит матрица от настольного
лсд монитора. (Есть несколько вариантов и китайских буков, а так же
какой то ровер, но это мы не рассматриваем)
В случае, если они лишние, как правило, решается их демонтажём.
16" матрицы
, бывают двух типов, HITACHI и SHARP,
15.4" матрицы
боковые крепления идентичные, но может возникнуть проблемы с плоскостными креплениями (наличие и отсутствие "ушей") Исключение составляют 2х ламповые матрицы
15.2" матрицы
выпускались только одной фирмой и уникальны
15" матрицы
standart 1 это A=12,5 B=169,5
standart 2 это A=21,5 B=196,5
(см. рисунок)
Исключения состовляют несколько моделей старых матриц HITACHI, где хоть
и отверстия расположенны согласно стандарту но рамка матрицы заметно
смещена в сторону правого края и в вверх, и несколько моделей старых
китайских производителей того же типа, что и hitachi
14" обычные (НЕ широкоформатные матрицы)
Существует 2 основных типа с креплениями находящимися в разных
местах, тоесть расстояние от края до первого отверстия это обозначим А
, а от первого отверстия до второго В
14 standart 1 это A=15 B=69
standart 2 это A и B имеют другие значения, нет под рукой.
(см. рисунок)
Исключения состовляют несколько моделей старых матриц HITACHI, где хоть
и отверстия расположенны согласно стандарту но рамка матрицы заметно
смещена в сторону правого края и в вверх
Так же исключения составляют матрицы предназначеные под тачскрин, крепления совершенно другие даже по форме.
14" WIDE (широкоформатные матрицы)
Существует 2 основных типа с одинаковыми креплениями, но отличающиеся размерами самого экрана. Вот тут внимание, они не взаимозаменяемы
, более того имеют различные размеры, т.е. первый тип шире и ниже, а второй уже и выше. Сам попадал на это не раз.
Как пример:
13.3" обычные (НЕ широкоформатные матрицы)
которые попали под стандартизацию идентичны по креплениям, более старые
имеют столько вариантов, что учитывая древность, даже и не буду тут
упоминать.
13.3" WIDE (широкоформатные матрицы)
имеют идентичные крепления, но иногда различную (хоть и небольшую)
толшину рамки, к примеру в sony ставят гораздо тоньше чем в прочие
аппараты (как пример тонких матриц sharp lq133k1la4a
и ltd133ex2x
)
12.1" обычные (НЕ широкоформатные матрицы)
идентичны по креплениям, исключения составляют матрицы имеющие фронтальные отверстия в виде ушей сбоку.
12.1" WIDE (широкоформатные матрицы)
имеют идентичные крепления
3. РАЗЬЁМ ЛАМПЫ
Разьёмы на лампах могут быть 4 типов (см. рисунок)
разьём A используется практически на всех матрицах
разьём С используется гораздо реже и в основном на ноутбуках toshiba
разьём В используется на очень старых матрицах или матрицах от настольного монитора
разьём D используется очень редко на экзотических матрицах
4. РАЗЬЁМ ПОДКЛЮЧЕНИЯ МАТРИЦЫ
Наиболее часто используемые в матрицах разьёмы для подключения на рисунках ниже.
Обычный 20и пиновый разьём ставится на матрицах старого образца, так же как и 14 пиновый, который используется очень редко.
20и пиновый разьём slim, он же гребёнка, уже экзотика и встречается, как правило на старых аппаратах.
Повсеместно сейчас используют 30и пиновые разьёмы на матрицах от 14" до
20" дюймов и 20и пиновые new standart на матрицах меньше 14 и дюймов,
которые заявленны в современной стандартизации.
Стандартный разьём 20pin
Стандартный разьём 30pin
Стандартный разьём 14pin
Разьём pin slim он же гребёнка
ПИН | 30 PIN 1LVDS | 30 PIN 2LVDS | 20PIN STANDART | 20PIN STANDART + EEPROM | 14PIN STANDART | 20PIN NEW STANDART вар. А | 20PIN NEW STANDART вар. В
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | Ground | Ground | Pover suppli , 3,3V | Pover suppli , 3,3V | Pover suppli , 3,3V | Ground | Pover suppli , 3,3V
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | Pover suppli , 3,3V | Pover suppli , 3,3V | Pover suppli , 3,3V | Pover suppli , 3,3V | Pover suppli , 3,3V | Pover suppli , 3,3V | Pover suppli , 3,3V
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | Pover suppli , 3,3V | Pover suppli , 3,3V | Ground | Ground | Ground | Pover suppli , 3,3V | Ground
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | DDS 3V POVER | DDS 3V POVER | Ground | Ground | Ground | DDS 3V POVER | Ground
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | Reserved for LCD supplier test point | - LVDS differential data input, R0 - R5, G0 | - LVDS differential data input, R0 - R5, G0 | Reserved for LCD supplier test point | - LVDS differential data input, R0 - R5, G0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | DDC Clock | DDC Clock | + LVDS differential data input, R0 - R5, G0 | + LVDS differential data input, R0 - R5, G0 | DDC Clock | + LVDS differential data input, R0 - R5, G0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | DDC Data | DDC Data | Ground | Ground | DDC Data | Ground | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | - LVDS differential data input, R0 - R5, G0 | - LVDS differential data input, R0 - R5, G0 | - LVDS differential data input, G1 - G5, B0 - B1 | - LVDS differential data input, G1 - G5, B0 - B1 | - LVDS differential data input, R0 - R5, G0 | - LVDS differential data input, G1 - G5, B0 - B1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | + LVDS differential data input, R0 - R5, G0 | + LVDS differential data input, R0 - R5, G0 | + LVDS differential data input, G1 - G5, B0 - B1 | + LVDS differential data input, G1 - G5, B0 - B1 | + LVDS differential data input, R0 - R5, G0 | + LVDS differential data input, G1 - G5, B0 - B1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | Ground | Ground | Ground | Ground | Ground | Ground
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | - LVDS differential data input, G1 - G5, B0 - B1 | - LVDS differential data input, G1 - G5, B0 - B1 | - LVDS differential data input, B2 - B5, HS/VS/DE | - LVDS differential data input, B2 - B5, HS/VS/DE | - LVDS differential data input, G1 - G5, B0 - B1 | - LVDS differential data input, B2 - B5, HS/VS/DE
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | + LVDS differential data input, G1 - G5, B0 - B1 | + LVDS differential data input, G1 - G5, B0 - B1 | + LVDS differential data input, B2 - B5, HS/VS/DE | + LVDS differential data input, B2 - B5, HS/VS/DE | + LVDS differential data input, G1 - G5, B0 - B1 | + LVDS differential data input, B2 - B5, HS/VS/DE
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | Ground | Ground | Ground | Ground | Ground | Ground | Ground
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | - LVDS differential data input, B2 - B5, HS/VS/DE | - LVDS differential data input, B2 - B5, HS/VS/DE | - LVDS differential clock input | - LVDS differential clock input | Ground | - LVDS differential data input, B2 - B5, HS/VS/DE | - LVDS differential clock input
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | + LVDS differential data input, B2 - B5, HS/VS/DE | + LVDS differential data input, B2 - B5, HS/VS/DE | +LVDS differential clock input | +LVDS differential clock input | _ | + LVDS differential data input, B2 - B5, HS/VS/DE | +LVDS differential clock input
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | Ground | Ground | Ground | Ground | _ | Ground | Ground
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | - LVDS differential clock input | - LVDS differential clock input | _ | DDS 3V POVER | _ | - LVDS differential clock input | DDS 3V POVER
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | +LVDS differential clock input | +LVDS differential clock input | _ | Reserved for LCD supplier test point | _ | +LVDS differential clock input | Reserved for LCD supplier test point
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | Ground | Ground | Ground | DDC Clock | _ | Ground | DDC Clock | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | _ | - LVDS differential data input, even pixels, R0 - R5, G0 | Ground | DDC Data | _ | Ground | DDC Data
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21 | _ | + LVDS differential data input, even pixels, R0 - R5, G0 | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
22 | Ground | Ground | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23 | _ | - LVDS differential data input, even pixels, G1 - G5, B0 - B1 | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
24 | _ | + LVDS differential data input, even pixels, G1 - G5, B0 - B1 | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
25 | Ground | Ground | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
26 | _ | - LVDS differential data input, even pixels, B2 - B5, HS/VS/DE | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
27 | _ | + LVDS differential data input, even pixels, B2 - B5, HS/VS/DE | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
28 | Ground | Ground | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
29 | _ | - LVDS differential clock input, even pixels | _ | _ | _ | _ | _
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30 | _ | + LVDS differential clock input, even pixels | _ | _ | _ | _ |
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-матрицы. Это означает, что на основной плате монитора она имеет обратный порядок.
Рассматриваемый шилд представляет собой плату с встроенными модулями индикации и управления. Индикация осуществляется с помощью 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
Краткие выводы по плате расширения LCD keypad shield
Плата расширения LCD Keypad достаточно популярная, она проста и удобна для использования в проектах Arduino. Сегодня ее можно легко купить практически в любом интернет-магазине.
Плюсы LCD Shield:
- Упрощает подключение жидкокристаллического экрана.
- Уменьшает общие размеры устройства, т.к. убирает выступающие провода и монтажные платы.
- Сокращает количество ошибок, связанных с неправильным монтажом и подключением.
- Добавляет функциональность кнопочного управления, если на плате установлены кнопки (LCD Keypad shield).
Недостатки:
- Стоимость шилда выше, чем стоимость отдельного экрана.
- Не всегда нужна дополнительная функциональность в виде кнопок.
- Шилд потребляет больше энергии, чем отдельные элементы платы.