| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.97.14.82
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС своя операционная система видио сайта Tor Обратная сторона антенна Направляющяя ноута WPA php ultimate эксплоит Windows Server 2008 PPTP настройка Elastix QIP Virtual Limit proc kernel sysctl Tune freeBSD Boot GEO Bluetooth game emulator Python Shell спама червь Conficker вирус троян лаборатория касперского пиратство Apple iPhone Финансовый кризис Microsoft twitter социальная сеть анонимность лицензия Open Source уязвимость MySQL база данных Закон Франция Пират Skype мобильный хакер trend micro кибератака Германия робот Персональные данные Ноутбук Интернет китай цензура windows vista Linux патент браузер Firefox Internet Explorer Opera Safari Intel цахал Motorola Oracle патч Банкомат IBM США Dell Ford контроль кибербезопасность приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 взлом Пентагон Украина Facebook Cisco Windows XP нетбук торрент музыка Биометрический Nokia Manager ФБР IP-адрес sms RSA java флешки Google Captcha Symantec Спам лагерь Антивирус тест Anti-Malware Windows 7 операционная система windows провайдер авторское право rapidshare UNIX свиной грипп шантаж Дети Service Pack копирайт McAfee HTTPS администратор icann студент Норвегия New York Times YouTube Warner Music КНДР Ubuntu ATI касперский Россия РФ сервер хостинг Принтер Wi-Fi суд пароль логин блог ПОЛЬША фишинг одноклассники Медведев контрафакт мошенник sony Universal Gps по JavaScript Хакеры Yahoo фас компьютер софт Минкомсвязи праздник программист Сбой мошенничество Доктор ВЕб Вконтакте ie8 исходный код Прослушка МВД фильтр порнография свобода слова казахстан онлайн игры Autodesk сисадмин Gmail кредитная карта LiveJournal шифрование Deep Purple банк Нанотехнологии wikipedia выборы DNS Android атака Mac OS X домен ФСБ прокуратура уголовное дело ICQ Sophos ошибка DARPA военные сайт Либрусек турция конференция спамер Полиция Koobface Перевод Великобритания IRC модем белоруссия Грузия Европа биржа Linux Mint Билл Гейтс спецслужбы Royal Bank of Scotland смартфон F-Secure Symbian фильм Новая Зеландия Дата-центр Adobe Австралия госуслуги IDC Internet Explorer 9 iPad Ирландия поиск МТС Реклама слежка патриотизм Zeus личные данные eset защита виртуализация Черный список BlackBerry льготы индия Москва социальные сети flash player paypal BitDefender сертификат Anonymous WebM QIWI технологии наркотик облачный сервис Ассанж передача данных Оптоволокно арест Samsung Иск учетная запись исследование угрозы Cert счетчик Поломка Санкт-Петербург Обновление SOPA PIPA событие пользователь МЕТРО Megaupload отчет приложение паспорт опрос безопасноть правительство магистраль соглашение Инвестиции платформа роскомнадзор

Главная » Статьи » Общие Статьи

Заведи экран: свой 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.

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

Категория: Общие Статьи | Добавил: aka_kludge (18.09.2008)
Просмотров: 3038 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

11:32
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2026 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика