Жк-дисплеи от мобильных телефонов в схемах на микроконтроллере

Чтобы использовать в своей конструкции миниатюрное цветной дисплей, совсем не нужны особо мощные процессоры или дорогостоящие дисплеи. Если нужен размер экрана порядка 2.5”, то можно применить дисплеи от телефона. Например, LS022-LS024 от телефонов NOKIA N76, N82, N73, 6303, 6500. Подойдет и самый большой дисплей от N95 (2.6”).

Все эти дисплеи оснащены котроллером, имеющим небольшой, но достаточно полный, набор команд. Даташит на контроллер дисплея MC2PA8201, который является аналогом LS022-LS024 прилагается. Правда, не все функции 100% работают, как описано.

Дисплей имеет разрешение 240х320 пикселей и цветовую гамму 24 бит. Стоимость от 200 рублей. Разъём со шлейфом стоит столько же. Оборванный шлейф в ремонте могут отдать бесплатно. Известную трудность представляет только его пайка и изготовление под него платы.

Дисплей имеет три напряжения питания: 1,8 В, 2,5 В и 12 В. Последнее подается на подсветку через ограничивающий резистор. Ток подсветки примерно равен 20 мА. Распиновка разъёма N76 показана рис.1 .

Сам этот разъем выглядит так:



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

Основой модуля является распространенный микроконтроллер PIC18F452. Программа для него написана на Си.

Для питания дисплея я применил два стабилизатора LM1117 на соответствующее напряжение. Номинальное напряжение на сигнальных линиях1,8 В.

При упрощённом подключении (через делитель на резисторах), которое я использовал для согласования уровней выходных сигналов МК и входных дисплея, невозможно чтение из памяти дисплея, но это и не понадобилось. Однако, при желании, можно применить более правильное согласование этих уровней.

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

Достоинство рассматриваемого дисплея, как и его проблема, заключается в 24-битном цвете. То есть для вывода 1 пикселя надо передать 5 байт, что снижает скорость вывода и требует приличных объёмов для хранения изображений. Поэтому тактовую частоту процессора надо стараться выбирать как можно выше. Я использовал 40 МГц. При этом скорость рисования вполне устраивает, а скорость вывода картинки маловата. Как вариант, можно на время прорисовки больших заставок гасить экран.

Изображения, заставки, значки решил хранить на microSD-карточке. Небольшие сейчас мало где продаются, но стоят совсем копейки, объёма хватит с запасом, а удобство заключается в лёгкости редактирования отображаемых элементов прямо на компьютере в виде.bmp файлов. В последующем, карточку можно использовать также для записи, например, лога каких-нибудь событий.

В прилагаемой программе имеется библиотека необходимых графических функций (описанная в файле LS_driver.h):

1. вывод точки;

2. вывод символа;

3. вывод текста;

4. вывод байта значения;

5. рисование линии;

6. рисование прямоугольника (с заливкой или без нее);

7. рисование круга;

8. рисование окошка типа WINDOWS;

9. чтение из карточки и вывод рисунка.BMP 24bit/pix

Детальные инструкции по функциям расписаны в файле LS_driver.h, и особо не требуют пояснений, за исключением 2-х моментов.

1. При выводе картинки следует придерживаться вертикальной ориентации экрана (сам файл картинки предварительно развернуть в редакторе)

2. При выводе файлов и рисовании картинок следует учитывать размеры экрана. Значения Х и Y меняются местами при изменении текущей ориентировки вывода с горизонтальной на вертикальную и наоборот, поэтому проверка на превышение размеров не производится (не известен текущий максимум Х или Y)

Всё это, конечно, давно известно, но я попробовал собрать в кучу.

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

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

В качестве примера приведено рисование вертикальной шкалы в зависимости от значения АЦП (см. заглавное фото ). В верхней части экрана выведена картинка – заставка.

Проект в MPLAB и PROTEUS можно скачать

Как правильно сказать, «сотовый телефон» или «мобильный телефон»? Раньше мобильными считали сотовые, спутниковые и радиотелефоны, а также аппараты транкинговой связи. Тем не менее, жизнь вносит свои коррективы в правила лингвистов. Название «мобильный телефон» (на сленге «мобилка», «мобильник») сейчас прочно ассоциируется именно с носимым сотовым телефонным аппаратом индивидуального пользования. А вот домашний переносной телефон стабильно называют «радиотелефоном», никогда не путая его с «мобильным».

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

Различают монохромные и цветные «мобильные» дисплеи. У последних существуют две технологии изготовления экранов:

С пассивными матрицами на «сильно закрученных кристаллах» (STN, Super Twisted Nematic), достоинство - низкая цена;

С активными матрицами на тонкоплёночных транзисторах (TFT, Thin Film Transistor), достоинство - высокая яркость и насыщенность цвета.

Физику работы цветного ЖК-дисплея лучше пояснить «на пальцах». Условно можно представить себе «конденсатор» обычного ЖКИ, параллельно которому включён полевой транзистор, работающий в активном режиме. Подавая извне сигнал на его затвор, можно плавно изменять сопротивление между стоком и истоком транзистора, а значит и напряжение на обкладках «конденсатора». В результате прозрачность жикокристаллического вещества в этом месте будет постепенно переходить от минимума к максимуму. Если покрасить подложку «конденсатора» не в чёрный, а в красный (зелёный, синий) цвет и создать яркую подсветку снизу, то будет видно плавное появление цветного пиксела. Если разместить близко друг от друга три разноцветные подложки RGB с тремя транзисторами и отдельно управлять каждым из них, то в сумме получится вся радуга оттенков.

Сами цветные субпикселы могут располагаться по аналогии с кинескопом телевизора - вертикальной полосой, «мозаикой» или дельта-структурой. На близком расстоянии точки явственно различимы, но это не беда: поскольку используется свойство человеческого глаза смешивать цвета под углом зрения меньше 0.03°. На расстоянии 20…40 см от ЖК-экрана цвет отдельного субпиксела различит разве что человек с орлиным зрением.

Физическое подключение «мобильных» дисплеев к MK особых хлопот не доставляет, т.к. для передачи данных используются последовательные интерфейсы, очень похожие на SPI. Сложности возникают на программном уровне, ведь информацию о командах и протоколах фирмы-разработчики держат в секрете. Косвенные данные можно «выудить» из даташитов на контроллеры дисплеев, остальное исследуется на практике через интернет-форумы методом интернационального «мозгового штурма». В результате наиболее изученными оказались некоторые типы чёрно-белых (Рис. 2.45, а, б) и цветных (Рис. 2.46, а…д) ЖК-дисплеев, применяемых в мобильных телефонах фирм Nokia и Siemens.

Рис. 2.45. Схемы подключения чёрно-белых дисплеев от мобильных телефонов к MK:

а) напряжение питания «мобильных» ЖК-дисплеев составляет 2.8…3.3 В, поэтому проще всего использовать один общий с MK источник питания. Чёрно-белые ЖК-дисплеи, которые не имеют подсветки, потребляют мало энергии, следовательно, питание для них можно взять от одного-двух выходов MK (на схеме показано пунктиром). Главная проблема заключается в конструкции, поскольку контактные площадки выводов HG1 не предназначены для пайки. Необходимо ставить гребёнку прокладок из металлизированной резины и ответную печатную плату. Как вариант, можно использовать имеющийся конструктив мобильного телефона;

б) при наличии в системе двух разных источников питания необходимо согласовывать логические уровни между ЖК-дисплеем HG1 и MK, в частности, через микросхему DD1. Все её буферные элементы передают данные только в одном направлении - от MK к индикатору HG1.

Рис. 2.46. Схемы подключения цветных дисплеев от мобильных телефонов к MK (начало):

а)параметры дисплея HG1 (фирма Nokia): 98×67 пикселов, 4096 цветов. Недостаток дисплея - отсутствие встроенной подсветки изображения, т.е. необходимо самостоятельно устанавливать дополнительные светодиоды в удобном по конструкции месте - обычно снизу или с торцов по бокам. Резисторы R1…R4 ставят при большой длине соединительного кабеля для уменьшения искажений на фронтах сигналов; О

О Рис. 2.46. Схемы подключения цветных дисплеев от мобильных телефонов к MK (окончание):

б) параметры дисплея HG1 (фирма Siemens): 132×176 пикселов, 65536 цветов. Низкоомные делители на резисторах Л7…7Шсогласуют уровни сигналов между HG1 и MK. Питание дисплея стабилизируется микросхемой DA1. Индикатор HG1 имеет удобные площадки для пайки проводов. При нестабильном запуске надо соединить вывод «RES» индикатора с питанием +2.9 В;

в) делители на резисторах R1…R4, 7?5…7?£согласуют уровни сигналов между MK и дисплеем HG1 фирмы Nokia(132xl32 пиксела, 4096 цветов). Сопротивления резисторов должны быть низкими, чтобы не ухудшить скорость передачи данных. Питание на процессорную часть индикатора HG1 подаётся через делитель R10, R1L Яркость изображения регулируется методом ШИМ через транзистор VT1 Резистором Д72задаётся ток подсветки 30…50 мА при напряжении 6…7 В;

г) аналогично Рис. 2.46, б, но с одинаковым напряжением питания MK и индикатора HG1\

д) аналогично Рис. 2.46, в, но с одинаковым напряжением питания MK и индикатора HG1.

Приветствую вас, уважаемые товарищи радиолюбители. Хочу представить вашему вниманию вариант на цветном дисплее от мобильного телефона Siemens AX75 . Хватит заморачиваться с монохромными дисплеями. Добавим мало красок в нашу не легкую жизнь!

Схема подключения цветного экрана от телефона

Распределение дисплея 128 на 128 пикселей. В принципе не важно с какого телефона дисплей, а какой контроллер в нем стоит. Мной был использован экземпляр с контроллером LPH9135 . Шина у него последовательная, а значит он довольно медленный. Но для нашего проекта в самый раз. Внешний вид и цоколевку дисплея смотрите на фото.


Так же была разработана и испытана плата для устройства. Точнее это немного подправленная печатка из предыдущего варианта. Теперь переменные резисторы находятся сверху. На мой взгляд это намного упростит регулировку показаний прямо в корпусе используемого прибора. С органов управления осталось все по прежнему. Правда теперь нет переключения между «меню». Переменным резистором устанавливаем нужный ток прямо на «ходу». После срабатывания защиты, реле отключится. Включить его можно только нажатием на кнопку. Так же кнопкой можно просто включать и отключать реле.


На счет датчика температуры. Если датчик будет отключен, то ШИМ будет включен на 100%. При подключенном - обороты кулера будут меняться в зависимости от температуры. При температуре ниже 40 градусов цифры на дисплее будут синие, если больше 40 градусов - надпись будет красной.


Полевые транзисторы для коммутации реле и кулера нужно применять с буквой «L». Им не нужно большого напряжения для открытия. Хочу сказать пару слов по поводу ОУ. Применял LM358 , но желательно ставить «rail-to-rail». Испробованные экземпляры MCP6002 работали неадекватно, хотя именно они там должны чувствовать себя наилучше. Наверно купил какие-то перемаркированные. Смотрите не ошибитесь, как я.


Подсветка питается напряжением от 9 до 12 вольт. Резистор подбираем в зависимости от требуемой яркости. У себя поставил 680 ом. Смотрите не переусердствуйте, а то сгорит.



Обсудить статью ПОДКЛЮЧЕНИЕ ЦВЕТНОГО ДИСПЛЕЯ ОТ ТЕЛЕФОНА

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

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