Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter
Журналы Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
$1000 на Android: зарабатываем на приложениях для мобильной платформы от Google $1000 НА ANDROID: ЗАРАБАТЫВАЕМ НА ПРИЛОЖЕНИЯХ ДЛЯ МОБИЛЬНОЙ ПЛАТФОРМЫ ОТ GOOGLE
27.07.2010

Пара вечеров экспериментов и неожиданно удачная идея позволили за 2 месяца заработать более $1000. Это гораздо больше, чем я мог ожидать...
Фабрика сплоитов ФАБРИКА СПЛОИТОВ
26.07.2010

Откуда берутся сплоиты? Задумывался ли ты, каким образом тусклая новость из багтрака превращается в реально работающую отмычку...

Заведи экран: свой TFT–дисплей

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

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

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

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

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

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

  1. VCC-Digital (3.3V)

  2. RESET

  3. SDATA

  4. SCK

  5. CS

  6. VCC-Display (3.3V)

  7. N/C

  8. GND

  9. LED GND

  10. LED V+ (6-7V)

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

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

  • PCF8833;

  • Epson S1D15G10.

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

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

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

Контроллер

Atmega32 , др. с объёмом памяти Flash > 16кб.

Преобразователь(CMOS/TTL)

MAX232A или аналог.

Преобразователь из 5В в 3.3В

MC33269DT-3.3 или аналог.

Преобразователь из 5В в 6.5В

MP1541

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

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

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

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

#include <avr/io.h>
#include <util/delay.h> //
для задержки
#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<c<0x80));

  • текст;

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

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

Выводы

Ну вот в итоге и завели дисплей. Какие перспективы? Вот они:

  • добавить поддержку системных шрифтов и поместить их не в память микроконтроллера, а посылать символы по байтам по RS232;

  • воспроизвести анимацию;

  • попробовать завести дисплеи покруче – от Iphone, N95, PSP.

Что посмотреть:



Теги: фрикинг





СЛЕДУЮЩИЕ СТАТЬИ
TRENDnet TEW-655BR3G: маршрутизатор для путешественников
Не шуми и не топай: тест неттопов
Доступный GPS-трекинг
Рассвет роботов
Легкое пробуждение: будильник Axbo Sleep Phase Alarm Clock
Чтобы пальцы не устали: тестирование современных клавиатур
Антенна для WiMAX и Wi-Fi
Через тернии к звездам: тестирование роутеров стандарта IEEE 802.11n
Храни все у NAS: NETGEAR ReadyNAS NVX
Микроволновый Интернет: тестирование WiMAX роутера ZyXEL MAX-206M2
ПРЕДЫДУЩИЕ СТАТЬИ
Датчики биополя на службе сохранности данных на дисках Western Digital
Софтостены VS. Хардмауэры: с чем безопаснее?
Доспехи для HDD: тестирование кейсов для жестких дисков
Слияние двух лун: технология AMD Fusion
Игра ядрами: AMD Athlon 64 6000+ против Intel Core 2 Duo E6700
Авто-гон: эволюция систем автоматического разгона
По-настоящему случайные числа
Серфим быстрее: тестирование модемов ADSL2+
Кардшаринг: ключ на раздачу
Взлом iPhone по шагам
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Регистрации на сервере не требуется, вы можете использовать гостевой доступ.
Если у вас есть форумный логин, вы можете использовать его.
Если нет, то вы можете зарегистрироваться на forum.xakep.ru
Обсуждение этой статьи на forum.xakep.ru
ВСЕ ПОСТЫ ПРОХОДЯТ ПРЕМОДЕРАЦИЮ, не ждите их мгновенного появления в списке комментариев.
Для отправки сообщения введите код, указанный на картинке
Заголовок
Сообщение

Guest Отправлено: 14.05.2008 20:42:19
RE: Заведи экран: свой TFT–дисплей
респектище автору!
Guest Отправлено: 15.05.2008 15:49:25
RE: Заведи экран: свой TFT–дисплей
аффтор жжот! Ждем следующей статьи где он расскажет, как посылать символы по байтам?
Guest Отправлено: 15.05.2008 16:50:22
RE: Заведи экран: свой TFT–дисплей
Вот объясните, нехрен это всё надо?
Guest Отправлено: 15.05.2008 20:10:05
RE: Заведи экран: свой TFT–дисплей
Можно запрограммить чтобы из counter-strike показывал УБИЙСТВА и СМЕРТИ
Guest Отправлено: 15.05.2008 21:03:00
RE: Заведи экран: свой TFT–дисплей
Леха, ты крут))
Guest Отправлено: 15.05.2008 23:22:57
RE: Заведи экран: свой TFT–дисплей
крутая тема. дисплей от мобилы дешевле монитора в 30-40 раз и компактнее.

можно замутить дохера таких дисплейчиков, каждый из которых будет отражать определенные интересующие данные (например, курсы акций или валют при игре на бирже). удобная тема. надо попробовать
Guest Отправлено: 16.05.2008 2:09:38
ЖК Для лохов...
Ищите простой вариант схемы в журнале Радио, там можно эти жекажки подключать непосредственно к VGA или HDMI портам ПК... а это ерунда просто...
БЕЗДЕЛУШКА... Есть схемы и на одном чипе....
Guest Отправлено: 16.05.2008 9:10:39
RE: Заведи экран: свой TFT–дисплей
Главный козырь здесь - удобство
программирования,
возможность подключения хоть сотни различных дисплеев.
Причём зная даташит конкретного дисплея, можно реализовать все его возможности (работа в Partial Mode, релизация разл. цветности, т.д.)
Guest Отправлено: 17.05.2008 0:08:54
RE: Заведи экран: свой TFT–дисплей
Вообщето на сайтах типо modding.ru таких статей пруд пруди
Страницы: < 1 2 3 >






Keywords: zPOSTz zHARDz, zINFOz, zYANDEXz z43590z
Для Авторов: edit Lock delete Lock



    Rambler's Top100