Когда есть только дисплей и больше ничего
Начитался я как-то разных статей, заметок, форумов про то, как ребята подключают дисплеи от мобильных телефонов и тоже решил попробовать. Интересно ведь. Специально для опытов были куплены образцы дисплеев. Про часть из них я рассказал в своей прошлой статье. Но первыми были не они. Сегодня я поделюсь опытом разгадывания своего первого дисплея и его оживления.
В прошлый раз я описывал процесс обратной разработки неизвестного дисплея, в том числе, и с помощью логического анализатора. Чтобы такой фокус получился нужен сам анализатор и рабочее устройство, тогда можно записать обмен, а потом с ним уже работать. Но далеко не всегда удаётся найти рабочее тело, да и анализатор есть не у всех. Поэтому в данной статье посмотрим, как быть, когда есть только дисплей и больше ничего.
Что приходит в голову, когда в руках дисплей от мобильного телефона, модель которого известна? Во-первых, как и в любом случае, поискать, может кто-то его уже подключил. В данном случае дисплей от телефона ZTE R221. По крайней мере, так сообщил продавец с барахолки. После недолгих поисков я понял, что подключать, видимо, придётся самому. Не беда — поищем схему телефона. Обычно я ищу по ключевым словам «схема», «schematic», «sch», «service manual», «repair manual» или как-то ещё. Также иногда хорошо поискать на тематических сайтах, где выкладывают множество мануалов для разной техники. После всего можно попытать счастья на китайских сайтах. Благо есть переводчик гугл. С китайскими сайтами я пока не сильно освоился, но там бывает много интересного. А вы как ищете информацию? Поделитесь в комментариях.
Может я не умею искать, но схему я так и не нашёл. Немного отвлекусь и скажу, что поиск информации — это ключ к успеху. А ещё это целое искусство. Пока пробовал разгадывать экраны (и не только) многому научился в смысле поиска, но также ещё лучше почувствовал, что я ещё очень многого не умею.
Ладно, нет схемы, так нет. Соберём побольше информации. Что у нас есть? Известна модель телефона, посмотрим характеристики экрана телефона. Разрешение 160×128 (1.8″), TFT, 65536 цв. Также у нас в руках есть сам дисплей, а это очень много.
Ещё фото экрана

На шлейфе видим надпись BTL181216-358L. Пробуем забить в поиск, авось повезёт. Хотя часто это бесполезно. Среди прочих выдало сайт panelook. Правда экран тут не точно такой, как у нас а немного другой, BTL181216-353L. Код отличается лишь на одну цифру, кол-во контактов другое (здесь 35, а у нас 20). Самое интересное на этой странице — это фраза «Built-in ST7735R driver IC «. Одна цифра, да ещё в конце кода — это немного, поэтому имеет смысл предположить, что у нас такой же драйвер. Сразу же качаем даташит на ST7735R.
Подозреваемый обнаружен, осталось определить распиновку. Как обычно, сперва ищем самое простое. Вы тоже любите земляной контакт? Земля — это наш друг. Она есть всегда и везде, и её просто найти (по крайней мере мне иное не попадалось). Далее ищем подсветку. Всё как в прошлой статье. Судя по количеству контактов у нас снова 8 битный интерфейс 8080. Далее по предварительной распиновке пробуем найти полную. Запросы приводят, в основном, на алиэкспрес, но имено такого экранчика как у нас нет. Зато есть похожие на ST7735R, но с другим количеством контактов.
Тут мне не хотелось долго искать распиновку в интернете, и я решил посмотреть, что есть в даташите. А там у нас есть распиновка чипа на странице 5 (Chip Information). Там же приводятся его размеры. Иногда это помогает отсеять неподходящие драйверы, просто измеряя их длину и ширину. Теперь по расположению выводов микросхемы можно найти где какой контакт на шлейфе. Всё бы хорошо, только вот на шлейфе 79 контактов (около микросхемы, дорожки выведены не от всех), а у самой микросхемы 185 (со стороны шлейфа) На шлейфе даже есть надписи «1» и «79». Очевидно, это номера контактов. Рассматривая дорожки, выходящие из микросхемы, под самодельным микроскопчиком, я никак не мог чётко понять, что куда идёт.
Не зная что делать, я решил поискать распиновку в интернете ещё раз. Пересматривая похожие экраны на али (с драйвером ST7735R), я обратил внимание, что фото довольно качественные и на них чётко видны дорожки.

Дисплей ST7735 14 pin SPI верх
И с обратной стороны:

Дисплей ST7735 14 pin SPI низ
Картинки, приведенные выше уже обрезаны — выделена интересующая область. Добрый продавец привёл также распиновку. Совмещаем фото, подписываем контакты.

Почему-то рисовал всё это я в paint, хотя удобнее было бы, пожалуй, в фотошопе. По тому, какие контакты используются в 14-выводной версии можно понять, что здесь 3-Line serial MCU Interface (стр 163 даташита). (Картинку лучше отрыть в новой вкладке и там увеличить.)

Если у 14-выводного экрана внимательно посчитать количество дорожек, идущих от микросхемы на шлейф, то обнаружим, что их 24. А у 20-выводного экрана (т. е. у нашего) их 31. 31-24=7. А нам как раз и не хватает линий D1. D7. Тут поясню: на схеме соединений для интерфейса 3-Line serial (на картинке выше это есть) видим, что вывод D0 у нас уже есть (он же SDA), а выводы D1. D17 не используются, поэтому заземлены. А так как они расположены рядом, то от них идёт одна дорожка на земляной полигон, а не 17.
Также обратим внимание на выводы выбора интерфейса IM0. IM2, SPI4W. Они тоже заземлены. Дорожки от них тоже должны идти на шлейф. Снова просматривая полную распиновку чипа, замечаем, что вывод IM2 (заземлён, т. к. 3-Line serial) находится рядом с выводом D0 (не заземлён, т. к. это вывод SDA). Так, так, а куда нужно подключать IM2, чтобы включился режим 8бит? Давайте-ка посмотрим. Находим в даташите такую картинку.

Вот оно! По выводу IM2 мы теперь вычислим все остальные, но уже на нашем 20-выводном экране. Рисуем дальше, опираясь на 14-выводной экран и на расположение выводов микросхемы (картинку снова лучше открыть в новой вкладке и увеличить).

Выглядит страшно, но рисовать это было не сложно и не долго. В принципе, в пэинте тоже можно работать. Картинки не редактировал, а выложил в том виде, как оно было.
В даташите также находим, что у микросхемы 2 отдельных вывода питания — VDD, VDDIO. Определить где VDDIO просто — к нему в режиме 8 бит подключается IM2. Также сразу глянем, какое напряжение нужно подавать на выводы питания.
Получилась такая распиновка
Контроллер ST7735R
1- GND
2- /Reset
3- DC
4- WR
5- RD
6- D0
7- D1
8- D2
9- D3
10- D4
11- D5
12- D6
13- D7
14- CS
15- VDDIO (+) (1.65V
3.7V (VDDI ≤ VDD))
16- Конец резистора, подцепленного другим выводом к VDDIO. Видимо для идентификации модели экрана
17- VDD (+) (2.3V
4.8V)
18- A (LED+) (к +3.3В через резистор)
19- K (LED-)
20- GND
Подключить экранчик можно и к Ардуино, т. к. библиотек для ST7735R хватает. К Ардуино нужно подключать через преобразователь логических уровней, т. к. 5 В для этого экрана много. Я использовал преобразователь, который нашёл как-то на этом сайте. Проект мне понравился и я решил его повторить, немного изменив под свои детальки. Между прочим, там много чего есть интересного по дисплеям, по обратной разработке и прочему.
У меня получилась такая платка

Не помню уже точно, какой я тогда использовал скетч. Это была какая-то демо программа для ST7735R по 8-битной шине. Пробовал запустить другой скетч — экран ожил, но показывал как-то криво. В итоге я решил просто переделать на stm32. Экран показал следующее:
На всякий случай код для stm32f103c8t6
Также попробовал замечальную библиотеку. Хотелось быстро подключить, особо не разбираясь с кодом (там много), поэтому быстренько повторил всё как здесь, только для своего случая, и всё опять заработало. Отличная библиотека.
Можно ещё попробовать считать ID драйвера экрана но, сейчас это незачем, ведь экран уже ожил и показывает. Но если есть распиновка, а модель контроллера неизвестна, то это может здорово помочь. Правда, не все контроллеры такое умеют.
А ещё целая живая ветка на форуме, где выкладывают множество материалов по экранам (большим в том числе) и даже описывают процесс обратной разработки. Там же есть «читалка», которая считывает ID контроллера и запускает демо тест.
Сегодня я показал свой опыт обратной разработки экрана без использования логического анализатора и прочего. В какой-то момент казалось, что этот дисплей мне подключить не удастся. Но я решил попробовать снова и решение пришло самым неожиданным образом. Главное не унывать, но действовать. Не думать «у меня опять не получается, всё плохо», а «что я могу сделать?» или «с чего бы начать?». Действуйте с добрыми намерениями, и у вас тоже всё получится. И как же всё таки круто, когда удаётся решить эту довольно непростую задачу, и дисплей оживает! Всем удачных проектов!
Как использовать дисплей от телефона
_________________
scio me nihil scire.
_____
<= Жалобная кнопка в правом нижнем углу. )
Были темы уже. и с примерами, схемами и даже исходниками.
В качестве ликбеза — экраны, елси глобально, бывают 2 типов
1. тупо экран с преобразователями напряжений питания драйверами строк/столбец панели. На такую панель должны неприрывным потоком передаваться данные для обновления картинки. Т.е. тупо сканирование по строкам/столбцам. Итого для панели 320х240 16бит цвет и частота кадров 50гц (меньше экран уже бледнеет и эффект дрожащих строк) с учетом полей получается
6Mhz на 16 бит. Непрерывный поток от 12 мегабайт в секунду. Плюс надо иметь фреймбуфер 320×240*2 = 176kb.
Сразу понятно, что с 8 бит контроллерами тут ну совсем ловить нечего -)))
На АРМах можно вприницпе сдлеать чтото софтово на ДМА, но скушает это гдето половину времени процессора. Есть АРМы с LCD интерфейсом (знаю один на ARM7TDMI в продакшне, 1 на CortexM3 в состоянии девеломпента и туча ARM9 в продакшне). Ну и без внешней памяти под буфер тоже ловить практически нечего.
Наружу интерфейс 18-24 линии RGB, H-sync, V-sync, CLK и enable.
2. как 1 + на нем уже контроллер видеопамяти и развертки. Т.е. скопировал картинку в память экрану и забыл — перерисовывает сам.
Наружу интерфейс как у статической памяти. 8-16 бит данных и сигналы WR,RD, CS и линия данные/адрес.
Такой запросто подключается хоть к тупому 8 бит AVRу. И вприцнипе по скорости результат вполне удовлеторительный.
НО! Таких экранов в массштабе мироовго производства — сотые доли процента. Таких моделей очень мало и делаются для всякого мелкосерийного оборудования и прочего.
Все экраны в современных телефонах, КПК, навигаторах, плеерах, фоторамках — 1го типа. Выгодное исключение, как я писал, дешевые китайские телефоны, копии брендовых.
Алгоритм работы примитивен. из регистра 0х00 читается идентификатор дисплея, далее ищется даташит.
По нему тупо вливаются регистры по табличке рекомендованной инициализации и все, дальше можно забыть обо всем кроме нескольких регистров.
1-2 регистра cursor_position — задают позицию с которой рисовать
2-4 регистра window (x1,y1) — (x2, y2) — область вывода
при выводе задаются область, куда будет рисоваться, начальное положение в ней, а дальее тупо в регистр 0x22 вливается последовательно по слову вся картинка равная размеру области window.
p.s. пользовал чтук 5 разных дисплеев 2го типа и 3 1го типа. Приятней всего 1й с жирным АРМом и внешним SDRAMом -))
Последний раз редактировалось Satyr Пн мар 07, 2011 13:31:20, всего редактировалось 1 раз.
Монитор Из Дисплея Мобильного Телефона
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
- Ответов 51
- Создана 14 г
- Последний ответ 9 г
Топ авторов темы
Геннадий 5 постов
NebsteR 8 постов
Stiv-999 15 постов
Mobilom 5 постов
Популярные посты
Геннадий
Да ни фига. Ни фига вам не сделать! Хотя бы потому, что вы даже не предполагаете, какие интерфейсы используют эти дисплеи. И сколько усилий придется приложить, чтобы заставить его отобразить хотя бы
Осваиваем дисплеи от мобильных телефонов

Что бы не засирать чужие комменты и что бы несколько собрать воедино накопленную информацию, напишу в отдельный блог то что удалось пощупать (и ещё немного). Вода будет, готовых примеров не найдете, полезных ссылочек подкину.
Давно уже не секрет что мобильные телефоны являются поставщиками дешёвых и аппетитных запчастей, которые можно использовать в радиолюбительских задачах. Взять хотя бы всеми избитый дисплей от Nokia 3310. При цене в
55р на нем можно разместить 6 строк по 14 символов. В то время как Winstar’овский дисплей 2х16 стоит в
190р. А если вспомнить что данные дисплеи графические, кто знает цену графического винстара? по моему в районе 590р я видел последний раз. Разница в цене на порядок. А в чем подвох?
А подвох в том что я сравниваю разные дисплеи с разными областями применения. Надо вспомнить что Winstar выпускает «промышленные» дисплеи. И на мой взгляд их несомненным плюсом является именно размер символов. сообщение на них видно с расстояния более метра. На дисплей же от мобильника мы можем вывисти только мелкий текст, более крупных символов на нем поместится пара штук. Хотя тому же термометру больше и не надо.
Так же немаловажный фактор разъем. У винстара это контакты с шагом 2.54мм, так сказать DIP корпус, удобно и разъем блс использовать и просто подпаятся может любой человек. На побильных же телефонах разъмы меньше. вплоть до шага 0.4мм.
Следующим неприятным моментом является подсветка. При питание дисплея 3.3В подсветка просит себе 6-7В. Надо думать какой-то step-up если питаетесь от батареек или USB порта. Конечно желающие могут разобрать дисплей и перепаять встроенные светодиоды параллельно, благо добраться до них не проблематично, но факт остается фактом.
Далее — все эти дисплеи графические, и текст на них надо выводить самостоятельно. Если на винстаровские дисплеи мы просто отправляли код символа, то тут нам надо отрисовывать символ самостоятельно. Чем это нам грозит? Во-первых, дополнительным расходим памяти на храниние изображений символов. Так шрифт 5х8 для Nokia 3310 занимает 1.25кБ памяти. Только латинница от шрифта Verdana 10 (высота 13 пикселей, ширина 1-11 пикселей) занимает 1.7кБ. Но разве это проблема в наше время? Во-вторых, сами изображения надо где-то доставать. Набирать всю эту таблицу самостоятельно не самое интерестное занятие (мне хватило одного добавления кириллицы).
На сколько всё это ужасно, решать вам. Для себя же я уже решил, дисплеям быть. На этом думаю демагогии достаточно, перейдем к полезной информации (За качество фоток уж простите, на китайца снимал).
Nokia 3310

Монохромный 84х48 точек, без подсветки. к разъему припаяться на ура. SPI 8 бит. Более избитого дисплея думаю и представить себе сложно. Всюду в интернете есть статьи с его применением, описанием протокола. Пожалуй найболее удобный из дисплеев.
Nokia 6100
130х130 пикселей 4096 цветов. Разъем 10 контактов с шагом 0.5мм. Интерфейс SPI 9 бит. Родным для дисплея является 12 бит/цвет, при этом надо передавать 3 байта на 2 пикселя. Можно так же использовать 8-ми битный индексный режим. Картинки им не отрисуешь, все принимает синеватый оттенок (настраивать правильно лень было), но простую графику можно выводить спокойно. Да и общение проще — 1 байт 1 пиксель. Так же есть 16 битный режим, 2 байта на пиксель, дисплей сам интерполирует, но его я не пробывал. 
Nokia 1616
128х160 пикселей 262к цветов. Паябельный шлейфик шаг где-то 0.6мм. Интерфейс SPI 9 бит. Родные 18 бит не пробывал, только 16 битный индексный режим 2 байта на пиксель. 


Nokia 2760
0.5мм. SPI 9 бит.http://we.easyelectronics.ru/topic/edit/693/
Нет, не успел поковырять толком, жменька дисплеев ожидает своей очереди и места для применения. 
Немного примера и описания здесь.
Ссылки
-
уже отмеченный здесь блог, смело можите на него операться. Количество освоенных им дисплеев вообще поражает. Исходники доступны под открытой лицензией. , да простит меня плюм. на сайте имеется информация о дисплеях: распиновка, контроллеры, характеристики. А так же местами примеры кода.
Где достать?
Во-первых, не спешите заказывать дисплеи в инете. У нас дисплеи стоят столькоже, а то и дешевле, да к тому же ждать доставки не надо. Я по глупости с 3310 попал на 200р/штука на ебае и это были самые дешёвые ещё. На ебае имеем спысл брать только «большие» дисплеи 2.8-3.5" и то цена из $20+ (такое тоже валяется, тоже ещё не щупанное).
Я все дисплеи (кроме двух ебаевских) покупал в местном ПРОФИ, он же Интернет-магазин «Сириус Телеком». Филиалов в разных городах у них имеется. Цены в Ростове точно такие же как и на сайте. Цены указывал по нему же.
Разъемы для 6100, 1600 и 2760 можно выковырять со шлейфа.
