Назначение контактов шлейфа дисплея планшета 30 pin. Заведи экран: свой TFT–дисплей

Авто 19.06.2020
Авто

Начался новый семестр. В качестве курсовой работы в институте решил замутить такой вот девайс для вывода графики на дисплей от 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 он же гребёнка

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

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

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

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

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

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

- FPD-Link TM ;

- FlatLink TM ;

- PanelBus TM ;

- OpenLDI TM .

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

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

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

Рис.18

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

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

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

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

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

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

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

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

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

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

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

Таблица 3.

ПИН 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 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).

Недостатки:

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


Рекомендуем почитать

Наверх