| RSS



Меню

Bookmark and Share


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





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

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

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

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

Заведи экран: свой 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)
Просмотров: 3046 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

12:40
Обновить


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

Поиск


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