Arduino и дисплеи от сотиков мобильных телефонов

forfrends
Offline
Зарегистрирован: 24.02.2015

diger67, прошу прощения, сонный я, что-то не посмотрел кто пишет. Да, вы правы.

jafff
Offline
Зарегистрирован: 04.10.2014

forfrends пишет:

Ну что же вы так сразу... Slider дал хорошие ссылки - там все коротко и четко написано по таким дисплеям как у вас.

Вам действительно следовало почитать тему - вы не сможете использовать этот дисплей на ардуине, так как у него нет видеопамяти. Подробнее смотрите в постах выше, Slider писал о подобных дисплеях. 

Ну почему нельзя просто сказать что ничего не получится, "вот вам ссылка там аналогичный рассматривали", почему сразу нужно упрекать в том что якобы не читаешь форум? Я прошелся по ссылкам и ненашел, ненашел Карл! своего дисплея. Ну если раздражают такие вопросы, ну не отвечай ты и все, ответят другие адекватные, спокойные люди. Нет бл.. нужно ответить и обязательно вые@нуться, типа вы тут все нубы, один я д'артаньян..

slider
Offline
Зарегистрирован: 17.06.2014

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

для ардуин подключение диспов с RGB шиной, можно сделать, не парясь с микросхемами внешнего видео ОЗУ:

1. способ через дорогостоящий переходник или самому спаять (мало ли, пытливому уму не важно время) микросхемы ssd1963 не особо дорого стоят.

2. способ (не реализованный мной по причине отсутствия времени и интереса, так что дерзайте сами) - это прикрутить его как есть , типа как ардуинку подключают к телевизору. в качестве фреймбуфера используется внутреннее ОЗУ ардуины) Тогда разрешение по пикселям будет не очень, зато можете использовать всю площадь экрана. Может быть для вас это как раз важно, видеть большую инфу на большом экране. 

//Хотелось бы чтобы эта тема жила, и не засиралась однотипными вопросами на каждой странице, а то есть подобные темы за сотню страниц и за 1000 сообщений, никто их уже не читает, все превращено в срач. Случайно или умышленно. Изучение затруднено, там уже каша.  Цените пожалуйста что есть. у меня нет здесь модераторства, чтобы подчищать. Хотелось бы чтоб в этой теме народ, наоборот делился что уже победил нового. а изученного и так уже полно выложено в инете. И давайте прекратим писать не по теме, сохраним тему в чистоте и концентрировано в новых решенных диспах.

bankir_1986
Offline
Зарегистрирован: 23.03.2015

Достался от сломанного терминала оплаты.

Гугл помощи не дает. может кто подскажет что за зверь и с чем его едят.

BRUTUS
Offline
Зарегистрирован: 13.05.2016

bankir_1986 пишет:

Достался от сломанного терминала оплаты.

Гугл помощи не дает. может кто подскажет что за зверь и с чем его едят.

Фото "фэйса" в студию.

А вообще, мне кажется, придётся его расковырять, для получения большего количества инфы о нём

slider
Offline
Зарегистрирован: 17.06.2014

BRUTUS пишет:

....

Фото "фэйса" в студию.

А вообще, мне кажется, придётся его расковырять, для получения большего количества инфы о нём

bankir_1986, шутник.  
походу у гугла тоже вид сзади спрашивал, вот ничего и не нашел. и что там на разъеме невидать.
 От фэйса тут толку мало будет, если вы с подобным не сталкивались.
Нужно чтобы bankir_1986 нарисовал примерную схему где он был , + - , конденсаторы керамические на каких пинах. либо это подобие 1602, либо графического (несколько керамич. кондеров тогда у разъема будут) . надо было вид спереди под углом, чтоб сегменты видать было ,  модель прибора от куда вытащен,  можно ещё фотку платы где стоял.

bankir_1986
Offline
Зарегистрирован: 23.03.2015

От фэйса смысла нет, такой же ка и 1602.

Колупать пробовал - вклеен намертво. Собственно взял его с ооочень маленькой надеждой его запустить (благо на халяву достался, на это и купился).

Схему посмотрю вечером.

BRUTUS
Offline
Зарегистрирован: 13.05.2016

....колупать - это я предложил, чтобы посмотреть куда тот шлейф идёт, распиновку конкретизировать, а то так можно ооочень долго экспериментировать с проводками,  даже если там самый дефолтный (по контроллеру) 1602

Sakred
Offline
Зарегистрирован: 23.10.2016

Привет всем. Хотел бы попросить помощи или хотябы совета. Есть TFT-LCD на шлейфе LMS700KF05 с тач от XEROX Phaser 3635FP для использования в своём проекте. Плата управления CLX_8380_OPE_MAIN на CPU: Samsung S3C2413XL-26.  Нужна эта плата, или LCD подключать без неё? Даташит на LMS700KF05 нашёл прилагаю фото распиновки и другие по теме вопроса. Не понял как тут фотки загрузить, поэтому дам ссылку.

https://yadi.sk/d/UcBJR8pjxTan9

На плате управления  есть UART. Аппарат достался нерабочий, не включался. Пару дней назад подключил весь аппарат от другого БП, запустился. Аппарат этот по сути дела обычный комп, есть почти полноценная материнка, винчестер на 80Gb, линейка памяти и пр. А эта панель просто как монитор с клавой. Вот и хочу спросить как прикруттить это дело к Arduino, библиотек под него естественно нет. И подскажите знатоки, стоит ли связываться с этим девайсом?

forfrends
Offline
Зарегистрирован: 24.02.2015

Дисплей, вроде не маленький. Дюймов 7 наверное? Скорее всего там RGB интерфейс. С таким интерфейсом прикрутить к ардуино можно, но не эффективно. Про это здесь писали: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov#comment-91565

Ну еще посмотреть сам дисплей, его шлейф, прикинуть примерную распиновку, искать аналоги.. Посмотрите тему - есть советы что и как

slider
Offline
Зарегистрирован: 17.06.2014

Sakred пишет:

Привет всем. Хотел бы попросить помощи или хотябы совета. Есть TFT-LCD на шлейфе LMS700KF05 с тач от XEROX Phaser 3635FP для использования в своём проекте. Плата управления CLX_8380_OPE_MAIN на CPU: Samsung S3C2413XL-26.  Нужна эта плата, или LCD подключать без неё?

....

 Не понял как тут фотки загрузить, поэтому дам ссылку.

.....

Вот и хочу спросить как прикруттить это дело к Arduino, библиотек под него естественно нет. И подскажите знатоки, стоит ли связываться с этим девайсом?

фотки прикрутить описано выше в форуме , отдельной темой , можно и поиском найти.

это дисп с RGB шиной. тем более распиновку вы какуюто нашли.  если хотите , можете попробовать привязать без всяких переходников но выводя на него меньшее разрешение. черно-белое или м.б. 8ми битное (255 цветов) цветное. на подобие как в проекте с подключением к телевизору или монитору. вы будете первым кто это реализует и расскажет об этом. 

по поводу подобного диспа отвечал здесь http://arduino.ru/forum/apparatnye-voprosy/pomogite-pozhaluista-podklyuchit-kitaiskii-tft-displei-k-arduino

сдублирую в эту тему, т.к. много там картинок(кликабельны)  приложил:

если предположить: простенький дисплей с RGB шиной и 320х240 пикселей, то чтобы и всех оббежать надо:

для самой простоты при черно-белом изображении (все выводы RGB либо на+ либо на -)

1.   320х240=76800бит   *50 раз в сек=3,84Мгц частота вывода инфы ,  что возможно.

2.   320х240=76800бит   /8(бит в байте)=9Кбайт ОЗУ необходимых, которых ни у меги, тем более у уно нет.  Так что мож проще достать дисплей уже с внутренним контроллером со своим ОЗУ(в смысле видеопамятью) , или приобрести отдельно SSD1963 board

или на RA8875

библиотека RA8875   https://github.com/adafruit/Adafruit_RA8875

)

купить можно

https://www.adafruit.com/product/1590  и http://www.ebay.com/itm/RA8875-Driver-Board-for-40-pin....

,почемуто правда они ещё прилично стоят, видимо китайцы ещё не знают что на это может быть спрос, микросхемы SSD1963 то, относительно недорого стоят (200-250руб).

платы переходники на SSD1963 найдете много разных, купить можно погуглив SSD1363 board 

    

купить можно 700-1000руб на таобао  https://world.taobao.com/item/12897334160.htm и https://world.taobao.com/item/15253677647.htm

они также с разъемами под разные шлейфы диспов 36 и 40 пин

, RA7785 там дороже. 

библиотека UTFT в ней есть поддержка ssd1963 http://www.rinkydinkelectronics.com/library.php?id=51

ещё такие платы бывают

http://www.adafruit.com/product/1654

как видите в инете их полно всяких разных. мне эти переходники не надо , но я и то нашел для вас. А кому реально надо , тот гораздо больше вариантов найдет.

 

Попробуйте для опыта подцепить напрямую к 3.3в ардуине или к 5в через резисторы (как ардуино вывод на TB)  

а) объеденить пиксели , к примеру по 4 шт, тогда при разрешении 240x136 (бывшее 480х272)   потребуется 4КБайта ОЗУ, у ардуиноМЕГИ - 8КБ, должно хватить.

б) Ну или, если выводить только цифры и текст (к примеру цифры , алфавит, значки - всего до 256разных), то каждому знакоместу(массиву)  присвоить байт в выделенной "видеопамяти" , который и будет означать что контроллеру выводить в знакоместо.

Igor_Simanov
Offline
Зарегистрирован: 25.10.2016

Молодец! Огромную работу проделал! Вызывает уважение. Вот мой один из экспериментов с LCD TFT 2.8 240x320 c сенсором https://youtu.be/Yx5-GhII6Hk

edgi
Offline
Зарегистрирован: 02.09.2014

О 7дюймовых спрашивали уже конечно. Но все же еще свой выложу. Имеется дисплейчик от навигаторов несколько штук с тач панелью. 40 пин 800x480. Адафруит контроллер смотрел но он стоит не реально дорого. Но хотелось бы по минимому вложиться в контроллер. В навигаторе стоит SIRF ATLAS V похоже напрямую к ниму подключается. Подозреваю что этот https://www.maritex.com.pl/product/attachment/42224/KWH070KQ13-F02-%202011.pdf datasheet соответствует этому lcd.

heisenberg133
heisenberg133 аватар
Offline
Зарегистрирован: 09.11.2016

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

Это два одинаковых

Вот такой еще. 10-ти контактный

Двойной от раскладушки

И еще одна раскладушка, два одинаковых двойных дисплея:

Заранее благодарен

uhbirj
Offline
Зарегистрирован: 12.12.2016

Slider , хотел задать вам  пару вопросов. uhbirj@bigmir.net Заранее спасибо

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

heisenberg133

Второй сверху 10 контактный - Nokia 6101

Два одинаковых двойных дисплея - Siemens EF81

ValGor
Offline
Зарегистрирован: 15.12.2016

Подскажите как подружить с UNO 

ValGor
Offline
Зарегистрирован: 15.12.2016

Подскажите как подружить с UNO 

2,2 дюйма 220x176

 

slider
Offline
Зарегистрирован: 17.06.2014

ValGor,  подключать так же как и все предыдущие. берете и подключаете. прочитайте тему с начала - это как раз примеры с ходом мыслей , для случаев если их еще никто в инете не подключал.

тем более у вас и распиновка и схема есть что сильно облегчает задачу. Только вроде вы смотрели не на схему дисплейной платы, а схему шлейфа. посмотрите повнимательней. 

heisenberg133 , ValGor,  есть форум по подобной мелочи http://vrtp.ru/index.php?showtopic=1120 , посмотрите примеры там. 

ValGor
Offline
Зарегистрирован: 15.12.2016

Да это схема разьема телефона. 

сейчас сделаю платку для дисплея и в перед 

ValGor
Offline
Зарегистрирован: 15.12.2016

Вспомнил про заначку :D

ValGor
Offline
Зарегистрирован: 15.12.2016

4й маленький LCD  оказался  OLED 2864  (pg-2864gswb.03b) только 31 pin а не 30

нет ли случаем разводки oled shild 

нашел на радиокот такое 

но не уверен дя и 31pin у меня и кстати не синие а белые пиксели.

heisenberg133
heisenberg133 аватар
Offline
Зарегистрирован: 09.11.2016

Спасибо

nik4ik
Offline
Зарегистрирован: 05.01.2017
День добрый.
 
Набрёл на эту тему некоторое время назад, когда искал информацию об интересующем меня дисплее. И, хотя готовых ответов для моего случая я здесь не нашел, считаю тему весьма полезной, и спасибо всем за информацию, которой вы делитесь!
 
Хочу добавить свои «5 копеек» и поделиться результатами, к которым я пришёл в процессе своих «изысканий». Надеюсь, кому-то это поможет сэкономить время.
 
Итак, валялась у меня принесённая кем-то, нерабочая DECT-труба Siemens Gigaset S67H, дисплей из которой было решено использовать для своего проекта.
 
Дисплей 1.8’’, 128x160, TFT, 65k цветов. Маркировка дисплея LPH9413-1 (Siemens P/N: C39363-A474-B85), 10 контактов.
 
        
 
Чуть более года назад в этой теме уже поднимался вопрос о таком дисплее, оставшийся без ответа (в вопросе вместо марки был ошибочно указан part number).
 
Поиски в сети какой-либо информации об этом приборе ни к чему не привели. Прозвонкой удалось определить выводы диодов подсветки и предположительные контакты земли и питания, но не более. Рискнул подать питание на контроллер дисплея и подсветку. При этом на подсветку подавал 5в, что было перебором, но прибор вынес издевательства.
 
Позже был достаточно длительный этап в попытке определить назначение сигнальных линий и тип шины (SPI или I2C) с помощью тупого перебора выводов и подачей на них различных сигналов. Сначала в соответствии с алгоритмами управления уже известными контроллерами похожих дисплеев, а потом и случайно генерируемых последовательностей. Понятно, что с учетом кучи неизвестных в этом уравнении, чуда не произошло - обезьянка не повторила «Войну и мир», беспорядочно стуча по клавишам. Хотя, периодически экран выдавал какие-то признаки жизни, что позволило сделать вывод о его работоспособности.
 
Далее я наткнулся в сети на объявление о продаже в моем городе точно такой же трубки, б/у. Списывать в убытки уже потраченное время не хотелось, да и вопрос об оживлении этого дисплея уже стал принципиальным. В общем, приобрел трубу и поснимал кучку дампов с помощью простенького логического анализатора на базе отладочной платы STM32F429I-DISCO.
 
После этого, наконец-то, наступила полная ясность с распиновкой:
 
 
1,6 - GND
2    - SDA (MOSI)
3    - SCK (CLK)
4,5 - VCC (3.3V)
7    - CS
8    - D/C
9    - LED K (GND)
10  - LED A (+)
 
Шина SPI. Все контакты дисплея подключал к сигнальным линиям Arduino а также к линиям GND и VCC (3.3V) напрямую.
 
Важно отметить, что на дисплей не выведены линии аппаратного сброса контроллера (RESET) и переключения режимов чтения/записи (R/W). Выяснилось также, что в случае наличия в команде параметров, они передаются контроллеру не в режиме передачи данных, а в том же режиме команд (линия D/C активна). В режиме передачи данных контроллер просто пишет в видеопамять.
 
А еще стало понятно, что ни одна система команд из тех datasheets, с которыми я ознакомился до сих пор, не подходит для этого дисплея. Факт отсутствия режима чтения информации из контроллера также не способствовал его однозначной идентификации.
 
Далее наступил этап уже более осмысленного ощупывания контроллера и поиска команд управления. В процессе листал datasheets на контроллеры марок SSD*, S1D1*, SED*, ILI*, ST*, SEPS*, HX* и каких-то еще. Некоторые команды таким образом были надерганы из различных источников, какие-то из них пришлось адаптировать. Другие были определены с помощью перебора, наблюдения и поиска закономерностей.
 
К чему все эти много букв… Вовсе не ради того, чтобы читателю показалось, как всё это сложно. Совсем наоборот. Всё, на самом деле, достаточно просто и понятно. Мне хотелось поделиться одним из возможных путей решения подобной задачки, которым шёл я. Может быть, кого-то это наведет на полезные мысли. По этой же причине я не стал удалять из кода, приведенного ниже, комментарии, появившиеся в процессе изучения контроллера.
 
Заранее предупреждаю, код не претендует на оптимальность и, тем более, изящество. Это просто рабочий инструмент…
 
/*
 * Color LCD 128x160 LPH9413-1 (from Siemens Gigaset S67H) analysis
 * using Arduino Pro Mini Chinese clone
 *
 * Work-in-Progress
 *
 * Copyright (c) /nik4ik, Dec, 2016 - Jan, 2017
 */

#include <stdint.h>

#define DISPLAY_MAX_COLUMNS 128
#define DISPLAY_MAX_ROWS    160

#define USE_HW_SPI 1

#define DC    9
#define DATA  11
#define CLK   13
#define CS    10

#define CS_PORT         PORTB
#define CS_PORT_PIN     2

#define CLK_PORT        PORTB
#define CLK_PORT_PIN    5

#define DATA_PORT       PORTB
#define DATA_PORT_PIN   3

#define DC_PORT         PORTB
#define DC_PORT_PIN     1


// Color definitions (BGR)
//
#define BLACK       0x0000      /*   0,   0,   0 */
#define NAVY        0x8000      /*   0,   0, 128 */
#define DARKGREEN   0x0400      /*   0, 128,   0 */
#define DARKCYAN    0x8400      /*   0, 128, 128 */
#define MAROON      0x0010      /* 128,   0,   0 */
#define PURPLE      0x8010      /* 128,   0, 128 */
#define OLIVE       0x0410      /* 128, 128,   0 */
#define LIGHTGREY   0xC618      /* 192, 192, 192 */
#define DARKGREY    0x8410      /* 128, 128, 128 */
#define BLUE        0xf800      /*   0,   0, 255 */
#define GREEN       0x07E0      /*   0, 255,   0 */
#define CYAN        0xffe0      /*   0, 255, 255 */
#define RED         0x001f      /* 255,   0,   0 */
#define MAGENTA     0xF81F      /* 255,   0, 255 */
#define YELLOW      0x07ff      /* 255, 255,   0 */
#define WHITE       0xFFFF      /* 255, 255, 255 */
#define ORANGE      0x053f      /* 255, 165,   0 */
#define GREENYELLOW 0x2ff5      /* 173, 255,  47 */
#define PINK        0xF81F

#ifdef USE_HW_SPI
#include <SPI.h>
#endif

#define send_bit(_DATA, _BIT) \
asm volatile (\
"   cbi %[data_port], %[data_pin]\n" \
"   cbi %[clk_port], %[clk_pin]\n" \
"   sbrc %[data], %[bit]\n" \
"   sbi %[data_port], %[data_pin]\n" \
"   sbi %[clk_port], %[clk_pin]\n" \
: \
: [data_port] "I" (_SFR_IO_ADDR(DATA_PORT)), \
  [data_pin] "I" (DATA_PORT_PIN), \
  [clk_port] "I" (_SFR_IO_ADDR(CLK_PORT)), \
  [clk_pin] "I" (CLK_PORT_PIN), \
  [data] "a" (_DATA), \
  [bit] "I" (_BIT) \
)

// Set command mode
#define cm() \
    asm("cbi %[dc_port], %[dc_pin]" : : \
    [dc_port] "I" (_SFR_IO_ADDR(DC_PORT)), \
    [dc_pin] "I" (DC_PORT_PIN));

// Set data mode
#define dm() \
    asm("sbi %[dc_port], %[dc_pin]" : : \
    [dc_port] "I" (_SFR_IO_ADDR(DC_PORT)), \
    [dc_pin] "I" (DC_PORT_PIN));

// CS disable
#define csd() \
    asm("sbi %[cs_port], %[cs_pin]" : : \
    [cs_port] "I" (_SFR_IO_ADDR(CS_PORT)), \
    [cs_pin] "I" (CS_PORT_PIN));

// CS enable
#define cse() \
    asm("cbi %[cs_port], %[cs_pin]" : : \
    [cs_port] "I" (_SFR_IO_ADDR(CS_PORT)), \
    [cs_pin] "I" (CS_PORT_PIN));

// send byte
void sb(char data)
{
#ifdef USE_HW_SPI
  SPI.transfer(data);
#else
  // MSB
  send_bit(data, 7);
  send_bit(data, 6);
  send_bit(data, 5);
  send_bit(data, 4);
  send_bit(data, 3);
  send_bit(data, 2);
  send_bit(data, 1);
  send_bit(data, 0);
#endif
}

#define BGR(r, g, b)  (((uint16_t) ((r) & 0xf8) >> 3) | ((uint16_t) ((g) & 0xfc) << 3) | ((uint16_t) ((b) & 0xf8) << 8))

typedef struct {
        uint8_t x;
        uint8_t y;
} point_t;

typedef struct {
        uint8_t left;
        uint8_t top;
        uint8_t right;
        uint8_t bottom;
} rect_t;

enum orientation_t {
    PORTRAIT,
    LANDSCAPE
};

uint8_t displayWidth  = DISPLAY_MAX_COLUMNS;
uint8_t displayHeight = DISPLAY_MAX_ROWS;

orientation_t displayOrientation = PORTRAIT;

bool clipMode = false;
rect_t clipRegion = {
  0,                    // left
  0,                    // top
  DISPLAY_MAX_COLUMNS,  // right
  DISPLAY_MAX_ROWS      // bottom
};

void csUpDown(void) {
  // Прошивка Siemens Gigaset S67H дергает этими линиями между порциями
  // команд и перед записью данных. Возможно, неспроста.
  // Решил пока тоже следовать такому поведению...
  csd(); cse();
  csd(); cse();
}

void defineClipRegion(uint8_t left, uint8_t top,
                    uint8_t right, uint8_t bottom) {

  // sb(0xf5); // собственно, команда
  // sb(120);  // параметр
  // задает начальное значение счетчика строк, к которому сбрасываются
  // значения указателя строк при достижении конечной строки (см. ниже)

  // sb(0xf7);
  // sb(120);
  // задает конечное значение счетчика строк, по достижении которого
  // указатель строк сбрасывается к значению, устанавливаемому
  // функцией 0xf5 (см выше)

  // sb(0xf4);
  // sb(10);
  // устанавливает начальное значение счетчика колонок, к которому
  // сбразывается текущее значение указателя колонок достижения последней
  // колонки. Похоже, что указатель вывода данных тоже нужно двигать
  // перед выводом.

  // sb(0xf6);
  // sb(10);
  // устанавливает конечное значение счетчика колонок, по достижении
  // которого счетчик сбрасывается к начальному ("нулевому") значению

  cm();
  csUpDown();

  sb(displayOrientation == PORTRAIT ? 0xf4 : 0xf5);
  sb(left);

  sb(displayOrientation == PORTRAIT ? 0xf5 : 0xf4);
  sb(top);

  sb(displayOrientation == PORTRAIT ? 0xf6 : 0xf7);
  sb(right);

  sb(displayOrientation == PORTRAIT ? 0xf7 : 0xf6);
  sb(bottom);

  clipRegion.left = left;
  clipRegion.top = top;
  clipRegion.right = right;
  clipRegion.bottom = bottom;

  clipMode = true;
}

void undefineClipRegion(void) {
    defineClipRegion(0, 0, displayWidth - 1, displayHeight - 1);
    clipMode = false;
}

void gotoXY(uint8_t x, uint8_t y) {
  uint8_t x_, y_;

  x += clipMode ? clipRegion.left : 0;
  y += clipMode ? clipRegion.top : 0;

  if (displayOrientation == PORTRAIT) {
    x_ = x;
    y_ = y;
  } else {
    x_ = y;
    y_ = x;
  }

  cm();
  csUpDown();

  // Set column pointer
  sb(0x10 | (x_ >> 4));   // high 4 bits
  sb(0x00 | (x_ & 0x0f)); // low 4 bits

  csUpDown();

  // Set row pointer
  sb(0x70 | (y_ >> 4));   // high 4 bits
  sb(0x60 | (y_ & 0x0f)); // low 4 bits
}

void displaySetContrast(uint8_t level) {
  cm();
  csUpDown();
  sb(0x81);  // set contrast level
  sb(level); // (0 - 255)
}

// does this controller use these two funcs?..
//
/*
void displayContrastUp() {
  cm();
  csUpDown();
  sb(0xd6);
}

void displayContrastDown() {
  cm();
  csUpDown();
  sb(0xd7);
}
*/

void displayOn() {
  cm();
  csUpDown();
  sb(0xaf);  // Display On
}

void displayOff() {
  cm();
  csUpDown();
  sb(0xae);  // Display Off
}

void displaySetAllPoints(bool switchOn) {
  cm();
  csUpDown();
  if (switchOn)
    sb(0xa5);  // All points on
  else
    sb(0xa4);  // All points on disable (normal mode)
}

void resetDisplay() {
  cm();
  csUpDown();
  sb(0xe2);  // Software reset
  delay(50);
}

void displayInit(orientation_t orientation) {
  displayOrientation = orientation;

  if (displayOrientation == PORTRAIT) {
    displayWidth  = DISPLAY_MAX_COLUMNS;
    displayHeight = DISPLAY_MAX_ROWS;
  } else {
    displayWidth  = DISPLAY_MAX_ROWS;
    displayHeight = DISPLAY_MAX_COLUMNS;
  }

  cm();
  csUpDown();

  resetDisplay();

  // sb(0x84); // хз, надо ли оно. В логе было...

  if (displayOrientation == PORTRAIT) {
    sb(0x89); // адресация построчно, сначала увеличивается номер столбца,
              // в конце строки переходим к следующей строке
    sb(0xc0); // normal mode
  } else {
    sb(0x8b); // адресация поколоночно: сначала увеличивается номер строки
              // в конце столбца переходим к следующему столбцу
    sb(0xc2); // flip vertical
  }

  sb(0xa6); // Normal (non inverse) mode (Inverse - 0xa7)

  sb(0xd6); // ? из лога
  sb(0xde); // ? из лога
}

// Не уверен, что функции связаны с режимом Standby, требуется проверка
//
/*
void displaySetStandbyMode(bool switchOn) {
  cm();
  csUpDown();
  if (switchOn)
    sb(0xac);
  else
    sb(0xad);
}
*/

void displaySetInverseMode(bool switchOn) {
  cm();
  csUpDown();
  if (switchOn)
    sb(0xa7); // Inverse
  else
    sb(0xa6); // Normal
}

void displaySetStartLine(uint8_t line) {
  cm();
  csUpDown();
  sb(0x50 | (line >> 4));   // high 4 bits
  sb(0x40 | (line & 0x0f)); // low 4 bits
}

// fills area with given color
// if no clipping region defined this will fill entire display
void fillRegion(uint16_t color) {
  uint16_t i;
  uint16_t x1, y1, x2, y2;

  if (clipMode) {
    x1 = clipRegion.left;
    x2 = clipRegion.right;
    y1 = clipRegion.top;
    y2 = clipRegion.bottom;
  } else { // Clear entire display area
    x1 = 0;
    x2 = displayWidth - 1;
    y1 = 0;
    y2 = displayHeight - 1;
  }

  gotoXY(0, 0);

  dm();
  csUpDown();

  for (i = 0; i < ((x2 - x1 + 1) * (y2 - y1 + 1)); i++) {
    sb((uint8_t) (color >> 8));
    sb((uint8_t) color);
  }
}

void putPixel(uint8_t x, uint8_t y, uint16_t color) {
  gotoXY(x, y);

  dm();
  csUpDown();
  sb((uint8_t) (color >> 8));
  sb((uint8_t) color);
}

void drawHLine(uint8_t x1, uint8_t x2, uint8_t y, uint16_t color) {
  defineClipRegion(x1, y, x2, y);
  fillRegion(color);
}

void drawVLine(uint8_t x, uint8_t y1, uint8_t y2, uint16_t color) {
  defineClipRegion(x, y1, x, y2);
  fillRegion(color);
}


void setup () {
  Serial.begin(9600);
  Serial.println("");
  Serial.println("LCD Test!");

  randomSeed(analogRead(0));

  pinMode(DC, OUTPUT);

#ifdef USE_HW_SPI
  SPI.begin();
  SPI.beginTransaction(SPISettings(16000000, MSBFIRST, SPI_MODE0));
#else
  pinMode(DATA, OUTPUT);
  pinMode(CLK, OUTPUT);
  pinMode(CS, OUTPUT);
#endif

  // дадим контроллеру немного времени чтобы очухался после подачи питания
  delay(50);
}

void loop() {
  int i;
  unsigned long time;
  int x1, y1, x2, y2;
  uint16_t baseColors[] = {
    BLACK, NAVY, DARKGREEN, DARKCYAN, MAROON, PURPLE, OLIVE, LIGHTGREY,
    DARKGREY, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE, ORANGE,
    GREENYELLOW, PINK
  };

  displayOff();

  displayInit(PORTRAIT);
  // displayInit(LANDSCAPE);

  displaySetContrast(144);

  fillRegion(BLACK);

  displayOn();


  time = millis();

  // random rectangles
  for (i = 0; i < 100; i++) {
    x1 = random(0, displayWidth - 10 - 1);
    x2 = random(x1 + 10, displayWidth - 1);
    y1 = random(0, displayHeight - 10 - 1);
    y2 = random(y1 + 10, displayHeight - 1);

    defineClipRegion(x1, y1, x2, y2);
    fillRegion(baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
  }
  undefineClipRegion();
  delay(1000);

  fillRegion(BLACK);

  // random pixels
  for (i = 0; i < 5000; i++) {
    x1 = random(0, displayWidth - 1);
    y1 = random(0, displayHeight - 1);

    putPixel(x1, y1,
            baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
  }

  delay(1000);

  fillRegion(BLACK);

  // random horizontal/vertical lines
  for (i = 0; i < 5000; i++) {
    x1 = random(0, displayWidth - 1);
    x2 = random(x1, displayWidth - 1);
    y1 = random(0, displayHeight - 1);
    y2 = random(y1, displayHeight - 1);

    if (random(0, 2) == 1) {
      drawHLine(x1, x2, y1,
            baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
    } else {
      drawVLine(x1, y1, y2,
            baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
    }
  }
  undefineClipRegion();

  delay(1000);

  time = millis() - time;

  Serial.print("Loop done in ");
  Serial.print(time);
  Serial.println(" millis");


  // tests...
  //
  // 0x0x, 0x1x, 0x6x, 0x7x - used for memory address setting (see gotoXY)
  //
  // 0x4x, 0x5x - disp start line coordinates.
  //
  // 0x2x - can't see any noticeable effects
  // 0x3x, 0x9x - the same shit
  //

  // sb(0xad);
  // sb(0x8a);  // после сброса экран заполняется мусором
  // sb(0x8c);  // ...
  // sb(0x8e);  // ...
  // sb(0x88);  // ...
  //
  // sb(0xc6); // rotate 180 (as c2 | c4)
  // sb(0xc2); // flip vertical
  // sb(0xc4); // flip horizontal
  // sb(0x8f); // rotate 90
  // sb(0xc2); // flip vertical

  // sb(0x89);  // нормальный портретный режим, слева направо
  // sb(0x86);  // ...
  // sb(0x87);  // ...
  // sb(0x8b);  // Landscape mode, 90 CCW, справа налево!
  // sb(0x8d);  // rotate 180, справа налево
  // sb(0x8f);  // Landscape mode, 90 CCW, слева направо!

  // sb(0xa9);
  // Что-то делает. В некоторых источниках эта команда
  // задает параметры duty cycle

  // 0x25, 0x26, 0x27
  // последовательный вызов приводит к увеличению яркости подсветки?
  // 0x28 тушит изображение...
  // смысл и назначение неясны

  // sb(0xf9);
  // после вызова это команды следующие далее команды вывода на экран
  // никакого видимого эффекта не производят
  // возобновяется все при последующем вызове команды 0xf8
  // смысл и назначение неясны

  // Вызов команды 0x88 приводит к тому, что вывод выполняется с увеличением
  // указателя колонки, но при достижении указателем колонки
  // максимального значения, указатели колонки и строки автоматически
  // не изменяются, и весь вывод выполняется в последнюю точку строки.
  // Подумалось о режимах вывода Horizontal, Vertical & Page Mode
  //
  // 0xb9 - сандартный режим вывода
  //
  // Вызов команды 0x8a приводит к тому, что вывод выполняется с увеличением
  // указателя строки (отрисовка столбца), а при достижении указателем строки
  // максимального значения, указатели строки и колонки автоматически
  // не изменяются, и весь вывод выполняется в последнюю точку колонки
  //
  // 0x8b - сначала меняется адрес строки, затем столбца
  //
  // 0x8c - ведет себя как 0x88 ?
  //
  // 0x8d - во время записи адрес колонки увеличивается, при достижении
  // указателя колонки последнего значения адрес строки, вместо увеличения,
  // уменьшается
  //
  // 0x8e - как 0x8a, но во время записи адрес строки уменьшается
  //
  // 0x8f - во время записи адрес строки уменьшается. При достижении
  // минимального значения адреса строки, указатель строки получает максимально
  // возможное значение, а указатель колонки увеличивается.
  //

  Serial.println("Done");
  delay(2000);
}

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

В завершение хочу обратиться к тем, кто продвинется дальше в исследовании этого дисплея: пожалуйста, поделитесь своими наработками. Хотелось бы, в конце-концов, вычислить, что за контроллер использован в устройстве. Ну а может быть, я просто плохо искал, а это всё «велосипед», и кто-то сразу сможет назвать модель контроллера и ткнуть меня носом в datasheet?
 
Upd 09/01/2017, уточнены названия сигнальных линий.
 
slider
Offline
Зарегистрирован: 17.06.2014
№19    2.0"  176x220 tft lcd  YT20F21  YTF21M1A_FPC_A(A)  25pin    8bit ILI9225B , тлф. дисплей FLY MC130, ...
 с регистра 00 читается 0x9225  это контроллер ILI9225B .
из его даташита    8.2.24. Horizontal and Vertical RAM Address Position (R36h/R37h, R38h/R39h) ......................... 79  
с регистров 0x36 0x38 считывается 0x00AF 0x00DB что значит разрешение 176 220 . //в других дисплеях в основном можно подобно подсматривать разрешение , и по другим адресам.  
 распиновка:
GND
ts
ts
ts
ts
GND
+VDD VCC
CS
CD (RS)
WR
RD
DB0
DB1
DB2
DB3
BD4
DB5
DB6
DB7
RESET
GND
A
A
A
K

читалка 8bit выдает

               1p 2p 3p 4p 5p 6p 7p 8parameter(byte)
      
register 00    92 25 92 25 92 25 92 25  ***
      
register 00    92 25 92 25 92 25 92 25  ***
register 01    00 1C 00 1C 00 1C 00 1C
register 02    01 00 01 00 01 00 01 00
register 03    00 30 00 30 00 30 00 30
register 04    00 00 00 00 00 00 00 00  ***
register 05    00 00 00 00 00 00 00 00
register 06    00 00 00 00 00 00 00 00
register 07    00 00 00 00 00 00 00 00
register 08    08 08 08 08 08 08 08 08
register 09    00 00 00 00 00 00 00 00
register 0A    00 00 00 00 00 00 00 00
register 0B    11 00 11 00 11 00 11 00
register 0C    00 00 00 00 00 00 00 00
register 0D    00 00 00 00 00 00 00 00
register 0E    00 00 00 00 00 00 00 00
register 0F    07 01 07 01 07 01 07 01
register 10    0A 00 0A 00 0A 00 0A 00
register 11    00 07 00 07 00 07 00 07
register 12    61 11 61 11 61 11 61 11
register 13    00 66 00 66 00 66 00 66
register 14    00 00 00 00 00 00 00 00
register 15    00 00 00 00 00 00 00 00
register 16    00 00 00 00 00 00 00 00
register 17    00 00 00 00 00 00 00 00
register 18    00 00 00 00 00 00 00 00
register 19    00 00 00 00 00 00 00 00
register 1A    00 00 00 00 00 00 00 00
register 1B    00 00 00 00 00 00 00 00
register 1C    00 00 00 00 00 00 00 00
register 1D    00 00 00 00 00 00 00 00
register 1E    00 00 00 00 00 00 00 00
register 1F    00 00 00 00 00 00 00 00
register 20    00 00 00 00 00 00 00 00
register 21    00 00 00 00 00 00 00 00
register 22    00 00 FC 36 FC 36 FC 36
register 23    00 00 00 00 00 00 00 00
register 24    00 00 00 00 00 00 00 00
register 25    00 00 00 00 00 00 00 00
register 26    00 00 00 00 00 00 00 00
register 27    00 00 00 00 00 00 00 00
register 28    00 00 00 00 00 00 00 00
register 29    00 00 00 00 00 00 00 00
register 2A    00 00 00 00 00 00 00 00
register 2B    00 00 00 00 00 00 00 00
register 2C    00 00 00 00 00 00 00 00
register 2D    00 00 00 00 00 00 00 00
register 2E    00 00 00 00 00 00 00 00
register 2F    00 00 00 00 00 00 00 00
register 30    00 00 00 00 00 00 00 00
register 31    00 DB 00 DB 00 DB 00 DB
register 32    00 00 00 00 00 00 00 00
register 33    00 00 00 00 00 00 00 00
register 34    00 DB 00 DB 00 DB 00 DB
register 35    00 00 00 00 00 00 00 00
register 36    00 AF 00 AF 00 AF 00 AF
register 37    00 00 00 00 00 00 00 00
register 38    00 DB 00 DB 00 DB 00 DB
register 39    00 00 00 00 00 00 00 00
register 3A    00 00 00 00 00 00 00 00
register 3B    00 00 00 00 00 00 00 00
register 3C    00 00 00 00 00 00 00 00
register 3D    00 00 00 00 00 00 00 00
register 3E    00 00 00 00 00 00 00 00
register 3F    00 00 00 00 00 00 00 00
register 40    00 00 00 00 00 00 00 00
register 41    00 00 00 00 00 00 00 00
register 42    00 00 00 00 00 00 00 00
register 43    00 00 00 00 00 00 00 00
register 44    00 00 00 00 00 00 00 00
register 45    00 00 00 00 00 00 00 00
register 46    00 00 00 00 00 00 00 00
register 47    00 00 00 00 00 00 00 00
register 48    00 00 00 00 00 00 00 00
register 49    00 00 00 00 00 00 00 00
register 4A    00 00 00 00 00 00 00 00
register 4B    00 00 00 00 00 00 00 00
register 4C    00 00 00 00 00 00 00 00
register 4D    00 00 00 00 00 00 00 00
register 4E    00 00 00 00 00 00 00 00
register 4F    00 00 00 00 00 00 00 00
register 50    00 00 00 00 00 00 00 00
register 51    00 00 00 00 00 00 00 00
register 52    00 00 00 00 00 00 00 00
register 53    00 00 00 00 00 00 00 00
register 54    00 00 00 00 00 00 00 00
register 55    00 00 00 00 00 00 00 00
register 56    00 00 00 00 00 00 00 00
register 57    00 00 00 00 00 00 00 00
register 58    00 00 00 00 00 00 00 00
register 59    00 00 00 00 00 00 00 00
register 5A    00 00 00 00 00 00 00 00
register 5B    00 00 00 00 00 00 00 00
register 5C    00 00 00 00 00 00 00 00
register 5D    00 00 00 00 00 00 00 00
register 5E    00 00 00 00 00 00 00 00
register 5F    00 00 00 00 00 00 00 00
register 60    00 00 00 00 00 00 00 00
register 61    00 00 00 00 00 00 00 00
register 62    00 00 00 00 00 00 00 00
register 63    00 00 00 00 00 00 00 00
register 64    02 00 02 00 02 00 02 00
register 65    00 00 00 00 00 00 00 00
register 66    00 00 00 00 00 00 00 00
register 67    00 00 00 00 00 00 00 00
register 68    00 00 00 00 00 00 00 00
register 69    00 00 00 00 00 00 00 00
register 6A    00 00 00 00 00 00 00 00
register 6B    00 00 00 00 00 00 00 00
register 6C    00 00 00 00 00 00 00 00
register 6D    00 00 00 00 00 00 00 00
register 6E    00 00 00 00 00 00 00 00
register 6F    00 00 00 00 00 00 00 00
register 70    00 00 00 00 00 00 00 00
register 71    00 00 00 00 00 00 00 00
register 72    00 00 00 00 00 00 00 00
register 73    00 00 00 00 00 00 00 00
register 74    00 00 00 00 00 00 00 00
register 75    00 00 00 00 00 00 00 00
register 76    00 00 00 00 00 00 00 00
register 77    00 00 00 00 00 00 00 00
register 78    00 00 00 00 00 00 00 00
register 79    00 00 00 00 00 00 00 00
register 7A    00 00 00 00 00 00 00 00
register 7B    00 00 00 00 00 00 00 00
register 7C    00 00 00 00 00 00 00 00
register 7D    00 00 00 00 00 00 00 00
register 7E    00 00 00 00 00 00 00 00
register 7F    00 00 00 00 00 00 00 00
register 80    00 00 00 00 00 00 00 00
register 81    00 00 00 00 00 00 00 00
register 82    00 00 00 00 00 00 00 00
register 83    00 00 00 00 00 00 00 00
register 84    00 00 00 00 00 00 00 00
register 85    00 00 00 00 00 00 00 00
register 86    00 00 00 00 00 00 00 00
register 87    00 00 00 00 00 00 00 00
register 88    00 00 00 00 00 00 00 00
register 89    00 00 00 00 00 00 00 00
register 8A    00 00 00 00 00 00 00 00
register 8B    00 00 00 00 00 00 00 00
register 8C    00 00 00 00 00 00 00 00
register 8D    00 00 00 00 00 00 00 00
register 8E    00 00 00 00 00 00 00 00
register 8F    00 00 00 00 00 00 00 00
register 90    00 00 00 00 00 00 00 00
register 91    00 00 00 00 00 00 00 00
register 92    00 00 00 00 00 00 00 00
register 93    00 00 00 00 00 00 00 00
register 94    00 00 00 00 00 00 00 00
register 95    00 00 00 00 00 00 00 00
register 96    00 00 00 00 00 00 00 00
register 97    00 00 00 00 00 00 00 00
register 98    00 00 00 00 00 00 00 00
register 99    00 00 00 00 00 00 00 00
register 9A    00 00 00 00 00 00 00 00
register 9B    00 00 00 00 00 00 00 00
register 9C    00 00 00 00 00 00 00 00
register 9D    00 00 00 00 00 00 00 00
register 9E    00 00 00 00 00 00 00 00
register 9F    00 00 00 00 00 00 00 00
register A0    00 00 00 00 00 00 00 00
register A1    00 00 00 00 00 00 00 00
register A2    00 00 00 00 00 00 00 00
register A3    00 00 00 00 00 00 00 00
register A4    00 00 00 00 00 00 00 00
register A5    00 00 00 00 00 00 00 00
register A6    00 00 00 00 00 00 00 00
register A7    00 00 00 00 00 00 00 00
register A8    00 00 00 00 00 00 00 00
register A9    00 00 00 00 00 00 00 00
register AA    00 00 00 00 00 00 00 00
register AB    00 00 00 00 00 00 00 00
register AC    00 00 00 00 00 00 00 00
register AD    00 00 00 00 00 00 00 00
register AE    00 00 00 00 00 00 00 00
register AF    00 00 00 00 00 00 00 00
register B0    00 00 00 00 00 00 00 00
register B1    00 00 00 00 00 00 00 00
register B2    00 00 00 00 00 00 00 00
register B3    00 00 00 00 00 00 00 00
register B4    00 00 00 00 00 00 00 00
register B5    00 00 00 00 00 00 00 00
register B6    00 00 00 00 00 00 00 00
register B7    00 00 00 00 00 00 00 00
register B8    00 00 00 00 00 00 00 00
register B9    00 00 00 00 00 00 00 00
register BA    00 00 00 00 00 00 00 00
register BB    00 00 00 00 00 00 00 00
register BC    00 00 00 00 00 00 00 00
register BD    00 00 00 00 00 00 00 00
register BE    00 00 00 00 00 00 00 00
register BF    00 00 00 00 00 00 00 00  ***
register C0    01 00 01 00 01 00 01 00
register C1    00 00 00 00 00 00 00 00
register C2    10 00 10 00 10 00 10 00
register C3    02 00 02 00 02 00 02 00
register C4    00 00 00 00 00 00 00 00
register C5    00 00 00 00 00 00 00 00
register C6    00 00 00 00 00 00 00 00
register C7    00 05 00 05 00 05 00 05
register C8    00 00 00 00 00 00 00 00
register C9    00 00 00 00 00 00 00 00
register CA    00 00 00 00 00 00 00 00
register CB    00 00 00 00 00 00 00 00
register CC    00 00 00 00 00 00 00 00
register CD    00 00 00 00 00 00 00 00
register CE    02 00 02 00 02 00 02 00
register CF    00 00 00 00 00 00 00 00
register D0    00 00 00 00 00 00 00 00
register D1    00 00 00 00 00 00 00 00
register D2    00 00 00 00 00 00 00 00
register D3    00 00 00 00 00 00 00 00  ***
register D4    00 00 00 00 00 00 00 00
register D5    00 00 00 00 00 00 00 00
register D6    00 00 00 00 00 00 00 00
register D7    00 00 00 00 00 00 00 00
register D8    00 00 00 00 00 00 00 00
register D9    00 00 00 00 00 00 00 00
register DA    00 00 00 00 00 00 00 00  ***
register DB    00 00 00 00 00 00 00 00  ***
register DC    00 00 00 00 00 00 00 00  ***
register DD    00 00 00 00 00 00 00 00
register DE    00 00 00 00 00 00 00 00
register DF    00 00 00 00 00 00 00 00
register E0    00 00 00 00 00 00 00 00
register E1    00 00 00 00 00 00 00 00
register E2    00 00 00 00 00 00 00 00
register E3    00 00 00 00 00 00 00 00
register E4    14 10 14 10 14 10 14 10
register E5    00 00 00 00 00 00 00 00
register E6    41 10 41 10 41 10 41 10
register E7    40 21 40 21 40 21 40 21
register E8    00 00 00 00 00 00 00 00
register E9    00 00 00 00 00 00 00 00
register EA    7F FD 7F FD 7F FD 7F FD
register EB    08 00 08 00 08 00 08 00
register EC    12 41 12 41 12 41 12 41
register ED    26 83 26 83 26 83 26 83
register EE    09 02 09 02 09 02 09 02
register EF    18 AA 18 AA 18 AA 18 AA  ***
register F0    00 00 00 00 00 00 00 00
register F1    00 00 00 00 00 00 00 00
register F2    00 00 00 00 00 00 00 00
register F3    00 00 00 00 00 00 00 00
register F4    00 00 00 00 00 00 00 00
register F5    00 00 00 00 00 00 00 00
register F6    00 00 00 00 00 00 00 00
register F7    00 00 00 00 00 00 00 00
register F8    00 00 00 00 00 00 00 00
register F9    00 00 00 00 00 00 00 00
register FA    00 00 00 00 00 00 00 00
register FB    00 00 00 00 00 00 00 00
register FC    00 00 00 00 00 00 00 00
register FD    00 00 00 00 00 00 00 00
register FE    00 00 00 00 00 00 00 00
register FF    00 00 00 00 00 00 00 00

 

библу на базе UTFT подготовил https://yadi.sk/d/eoa6HW_5rSyfE  ( init code ili9225 ili9225b положил в папку C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\UTFT\tft_drivers\s6d0164 )

все что нужно, остается просто запустить пример UTFT\examples\Arduino (AVR)\UTFT_Demo_220x176

фотки кликабельны 

 

 

 

 
 
 
slider
Offline
Зарегистрирован: 17.06.2014

nik4ik , ну круто. боюсь спросить сколько на это "принципиально" времени ушло?  что с распиновкой разобрались это больше полдела. Из скетча напрашивается , что он все же SPI ? тогда правильней обозвать пины  mosi sck cs ...  Для распознания можно было и дешевым анализатором на CY7C68013A пройтись , там вроде есть автоматическое распознавание протоколов.

SPI есть и удафруита и UTFT (4pin и 5pin) , все их иниты перепробовали?  думаю 4pin UTFT как раз ваш вариант.  в описании UTFT_Requirements.pdf указано подключение. Пример UTFT_Demo_160x128_Serial   , там описано подключение  // Usage: myGLCD(<model code>, SDA, SCL, CS, RST[, RS]); 

можно и все другие примеры с  *_Serial  перебрать, там тоже есть варианты с 4пиновым подключением.

это еще гляньте https://learn.adafruit.com/1-8-tft-display/downloads

 Хотя не мудрено что у сименса может быть свой редкий контроллер, на который и не найти даташит. Можете фотки еще прицепить к своему сообщению , что смогли вывести на этот дисп., что выводит ваш скетч.  // У вашего сообщения есть для вас изменить : ( изменить , ответить, цитировать)

slider
Offline
Зарегистрирован: 17.06.2014
№20    2.0"  176x220 tft lcd  TFT8K1569FPC-A1-E   8K1569  36pin    8/16bit  R61503U , тлф. дисплей FLY DS240, B700 , ...
 с регистра 00 читается 0x1503  это контроллер R61503 .
из его даташита    
Window Address Control Instruction ....................................................................................................73 
Window Horizontal RAM Start Address (R50h), Window Horizontal RAM End Address (R51h) .......................73 
Window Vertical RAM Start Address (R52h), Window Vertical RAM End Address (R53h), ...............................73 
с регистров 0x51 0x53 считывается 0x00AF 0x00DB что значит (175 и 219 ) это разрешение 176x220 . //в других дисплеях в основном можно подобно подсматривать разрешение , и по другим адресам.  
 распиновка:
DB15
DB14
DB13
DB12
DB11
DB10
DB9
DB8
GND
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
+Vdd Vcc
+Vdd Vcc
RD
WR
RS (DC)
CS
RESET
IM0   лог.0-16bit   лог.1-8bit
GND
A
K
K
K
  ts
  ts
  ts
  ts
  nc
  nc

при выборе 8бит на IM0 лог.1, они переносятся на старший байт , т.е. используются DB8-DB15 .

в режиме 16бит (лог1 на IM0)  читалка ID_display_read_to_serial_monitor_universal_v3.1_16bit_PortCA_a  выдает


                1p   2p   3p   4p   5p   6p   7p   8parameter(byte)
      
register 00    1503 1503 1503 1503 1503 1503 1503 1503  ***
      
register 00    1503 1503 1503 1503 1503 1503 1503 1503  ***
register 01    0000 0000 0000 0000 0000 0000 0000 0000
register 02    0400 0400 0400 0400 0400 0400 0400 0400
register 03    0030 0030 0030 0030 0030 0030 0030 0030
register 04    0000 0000 0000 0000 0000 0000 0000 0000  ***
register 05    0000 0000 0000 0000 0000 0000 0000 0000
register 06    0000 0000 0000 0000 0000 0000 0000 0000
register 07    0000 0000 0000 0000 0000 0000 0000 0000
register 08    0808 0808 0808 0808 0808 0808 0808 0808
register 09    0000 0000 0000 0000 0000 0000 0000 0000
register 0A    0000 0000 0000 0000 0000 0000 0000 0000
register 0B    0000 0000 0000 0000 0000 0000 0000 0000
register 0C    0000 0000 0000 0000 0000 0000 0000 0000
register 0D    0000 0000 0000 0000 0000 0000 0000 0000
register 0E    0000 0000 0000 0000 0000 0000 0000 0000
register 0F    0000 0000 0000 0000 0000 0000 0000 0000
register 10    0000 0000 0000 0000 0000 0000 0000 0000
register 11    0660 0660 0660 0660 0660 0660 0660 0660
register 12    0000 0000 0000 0000 0000 0000 0000 0000
register 13    0000 0000 0000 0000 0000 0000 0000 0000
register 14    0000 0000 0000 0000 0000 0000 0000 0000
register 15    0000 0000 0000 0000 0000 0000 0000 0000
register 16    0000 0000 0000 0000 0000 0000 0000 0000
register 17    0000 0000 0000 0000 0000 0000 0000 0000
register 18    0000 0000 0000 0000 0000 0000 0000 0000
register 19    0350 0350 0350 0350 0350 0350 0350 0350
register 1A    0300 0300 0300 0300 0300 0300 0300 0300
register 1B    0007 0007 0007 0007 0007 0007 0007 0007
register 1C    0000 0000 0000 0000 0000 0000 0000 0000
register 1D    0000 0000 0000 0000 0000 0000 0000 0000
register 1E    0000 0000 0000 0000 0000 0000 0000 0000
register 1F    0000 0000 0000 0000 0000 0000 0000 0000
register 20    0000 0000 0000 0000 0000 0000 0000 0000
register 21    0000 0000 0000 0000 0000 0000 0000 0000
register 22    0000 5222 5222 5222 5222 5222 5222 5222
register 23    0000 0000 0000 0000 0000 0000 0000 0000
register 24    0000 0000 0000 0000 0000 0000 0000 0000
register 25    0000 0000 0000 0000 0000 0000 0000 0000
register 26    0000 0000 0000 0000 0000 0000 0000 0000
register 27    0000 0000 0000 0000 0000 0000 0000 0000
register 28    0000 0000 0000 0000 0000 0000 0000 0000
register 29    0000 0000 0000 0000 0000 0000 0000 0000
register 2A    0000 0000 0000 0000 0000 0000 0000 0000
register 2B    00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF
register 2C    00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF
register 2D    0000 0000 0000 0000 0000 0000 0000 0000
register 2E    0000 0000 0000 0000 0000 0000 0000 0000
register 2F    0000 0000 0000 0000 0000 0000 0000 0000
register 30    0000 0000 0000 0000 0000 0000 0000 0000
register 31    0000 0000 0000 0000 0000 0000 0000 0000
register 32    0000 0000 0000 0000 0000 0000 0000 0000
register 33    0000 0000 0000 0000 0000 0000 0000 0000
register 34    0000 0000 0000 0000 0000 0000 0000 0000
register 35    0000 0000 0000 0000 0000 0000 0000 0000
register 36    0000 0000 0000 0000 0000 0000 0000 0000
register 37    0000 0000 0000 0000 0000 0000 0000 0000
register 38    0000 0000 0000 0000 0000 0000 0000 0000
register 39    0000 0000 0000 0000 0000 0000 0000 0000
register 3A    0000 0000 0000 0000 0000 0000 0000 0000
register 3B    0000 0000 0000 0000 0000 0000 0000 0000
register 3C    0000 0000 0000 0000 0000 0000 0000 0000
register 3D    0000 0000 0000 0000 0000 0000 0000 0000
register 3E    0000 0000 0000 0000 0000 0000 0000 0000
register 3F    0000 0000 0000 0000 0000 0000 0000 0000
register 40    0000 0000 0000 0000 0000 0000 0000 0000
register 41    0000 0000 0000 0000 0000 0000 0000 0000
register 42    0000 0000 0000 0000 0000 0000 0000 0000
register 43    0000 0000 0000 0000 0000 0000 0000 0000
register 44    0000 0000 0000 0000 0000 0000 0000 0000
register 45    0000 0000 0000 0000 0000 0000 0000 0000
register 46    0000 0000 0000 0000 0000 0000 0000 0000
register 47    0000 0000 0000 0000 0000 0000 0000 0000
register 48    0000 0000 0000 0000 0000 0000 0000 0000
register 49    0000 0000 0000 0000 0000 0000 0000 0000
register 4A    0000 0000 0000 0000 0000 0000 0000 0000
register 4B    0000 0000 0000 0000 0000 0000 0000 0000
register 4C    0000 0000 0000 0000 0000 0000 0000 0000
register 4D    0000 0000 0000 0000 0000 0000 0000 0000
register 4E    0000 0000 0000 0000 0000 0000 0000 0000
register 4F    0000 0000 0000 0000 0000 0000 0000 0000
register 50    0000 0000 0000 0000 0000 0000 0000 0000
register 51    00AF 00AF 00AF 00AF 00AF 00AF 00AF 00AF
register 52    0000 0000 0000 0000 0000 0000 0000 0000
register 53    00DB 00DB 00DB 00DB 00DB 00DB 00DB 00DB
register 54    0000 0000 0000 0000 0000 0000 0000 0000
register 55    0000 0000 0000 0000 0000 0000 0000 0000
register 56    0000 0000 0000 0000 0000 0000 0000 0000
register 57    0000 0000 0000 0000 0000 0000 0000 0000
register 58    0000 0000 0000 0000 0000 0000 0000 0000
register 59    0000 0000 0000 0000 0000 0000 0000 0000
register 5A    0000 0000 0000 0000 0000 0000 0000 0000
register 5B    0000 0000 0000 0000 0000 0000 0000 0000
register 5C    0000 0000 0000 0000 0000 0000 0000 0000
register 5D    0000 0000 0000 0000 0000 0000 0000 0000
register 5E    0000 0000 0000 0000 0000 0000 0000 0000
register 5F    0000 0000 0000 0000 0000 0000 0000 0000
register 60    0000 0000 0000 0000 0000 0000 0000 0000
register 61    0000 0000 0000 0000 0000 0000 0000 0000
register 62    0000 0000 0000 0000 0000 0000 0000 0000
register 63    0000 0000 0000 0000 0000 0000 0000 0000
register 64    0000 0000 0000 0000 0000 0000 0000 0000
register 65    0000 0000 0000 0000 0000 0000 0000 0000
register 66    0000 0000 0000 0000 0000 0000 0000 0000
register 67    0000 0000 0000 0000 0000 0000 0000 0000
register 68    0000 0000 0000 0000 0000 0000 0000 0000
register 69    0000 0000 0000 0000 0000 0000 0000 0000
register 6A    0000 0000 0000 0000 0000 0000 0000 0000
register 6B    0000 0000 0000 0000 0000 0000 0000 0000
register 6C    0000 0000 0000 0000 0000 0000 0000 0000
register 6D    0000 0000 0000 0000 0000 0000 0000 0000
register 6E    0000 0000 0000 0000 0000 0000 0000 0000
register 6F    0000 0000 0000 0000 0000 0000 0000 0000
register 70    0000 0000 0000 0000 0000 0000 0000 0000
register 71    0000 0000 0000 0000 0000 0000 0000 0000
register 72    0000 0000 0000 0000 0000 0000 0000 0000
register 73    0000 0000 0000 0000 0000 0000 0000 0000
register 74    0000 0000 0000 0000 0000 0000 0000 0000
register 75    0000 0000 0000 0000 0000 0000 0000 0000
register 76    0000 0000 0000 0000 0000 0000 0000 0000
register 77    0000 0000 0000 0000 0000 0000 0000 0000
register 78    0000 0000 0000 0000 0000 0000 0000 0000
register 79    0000 0000 0000 0000 0000 0000 0000 0000
register 7A    0000 0000 0000 0000 0000 0000 0000 0000
register 7B    0000 0000 0000 0000 0000 0000 0000 0000
register 7C    0000 0000 0000 0000 0000 0000 0000 0000
register 7D    0000 0000 0000 0000 0000 0000 0000 0000
register 7E    0000 0000 0000 0000 0000 0000 0000 0000
register 7F    0000 0000 0000 0000 0000 0000 0000 0000
register 80    0000 0000 0000 0000 0000 0000 0000 0000
register 81    0000 0000 0000 0000 0000 0000 0000 0000
register 82    0000 0000 0000 0000 0000 0000 0000 0000
register 83    0000 0000 0000 0000 0000 0000 0000 0000
register 84    0000 0000 0000 0000 0000 0000 0000 0000
register 85    0000 0000 0000 0000 0000 0000 0000 0000
register 86    0000 0000 0000 0000 0000 0000 0000 0000
register 87    0000 0000 0000 0000 0000 0000 0000 0000
register 88    0000 0000 0000 0000 0000 0000 0000 0000
register 89    0000 0000 0000 0000 0000 0000 0000 0000
register 8A    0000 0000 0000 0000 0000 0000 0000 0000
register 8B    0000 0000 0000 0000 0000 0000 0000 0000
register 8C    0000 0000 0000 0000 0000 0000 0000 0000
register 8D    0000 0000 0000 0000 0000 0000 0000 0000
register 8E    0000 0000 0000 0000 0000 0000 0000 0000
register 8F    0000 0000 0000 0000 0000 0000 0000 0000
register 90    0000 0000 0000 0000 0000 0000 0000 0000
register 91    0000 0000 0000 0000 0000 0000 0000 0000
register 92    0000 0000 0000 0000 0000 0000 0000 0000
register 93    0000 0000 0000 0000 0000 0000 0000 0000
register 94    0000 0000 0000 0000 0000 0000 0000 0000
register 95    0000 0000 0000 0000 0000 0000 0000 0000
register 96    0000 0000 0000 0000 0000 0000 0000 0000
register 97    0000 0000 0000 0000 0000 0000 0000 0000
register 98    0000 0000 0000 0000 0000 0000 0000 0000
register 99    0000 0000 0000 0000 0000 0000 0000 0000
register 9A    0000 0000 0000 0000 0000 0000 0000 0000
register 9B    0000 0000 0000 0000 0000 0000 0000 0000
register 9C    0000 0000 0000 0000 0000 0000 0000 0000
register 9D    0000 0000 0000 0000 0000 0000 0000 0000
register 9E    0000 0000 0000 0000 0000 0000 0000 0000
register 9F    0000 0000 0000 0000 0000 0000 0000 0000
register A0    0000 0000 0000 0000 0000 0000 0000 0000
register A1    0000 0000 0000 0000 0000 0000 0000 0000
register A2    0000 0000 0000 0000 0000 0000 0000 0000
register A3    0000 0000 0000 0000 0000 0000 0000 0000
register A4    0000 0000 0000 0000 0000 0000 0000 0000
register A5    0000 0000 0000 0000 0000 0000 0000 0000
register A6    0000 0000 0000 0000 0000 0000 0000 0000
register A7    0000 0000 0000 0000 0000 0000 0000 0000
register A8    0000 0000 0000 0000 0000 0000 0000 0000
register A9    0000 0000 0000 0000 0000 0000 0000 0000
register AA    0000 0000 0000 0000 0000 0000 0000 0000
register AB    0000 0000 0000 0000 0000 0000 0000 0000
register AC    0000 0000 0000 0000 0000 0000 0000 0000
register AD    0000 0000 0000 0000 0000 0000 0000 0000
register AE    0000 0000 0000 0000 0000 0000 0000 0000
register AF    0000 0000 0000 0000 0000 0000 0000 0000
register B0    0000 0000 0000 0000 0000 0000 0000 0000
register B1    0000 0000 0000 0000 0000 0000 0000 0000
register B2    0000 0000 0000 0000 0000 0000 0000 0000
register B3    0000 0000 0000 0000 0000 0000 0000 0000
register B4    0000 0000 0000 0000 0000 0000 0000 0000
register B5    0000 0000 0000 0000 0000 0000 0000 0000
register B6    0000 0000 0000 0000 0000 0000 0000 0000
register B7    0000 0000 0000 0000 0000 0000 0000 0000
register B8    0000 0000 0000 0000 0000 0000 0000 0000
register B9    0000 0000 0000 0000 0000 0000 0000 0000
register BA    0000 0000 0000 0000 0000 0000 0000 0000
register BB    0000 0000 0000 0000 0000 0000 0000 0000
register BC    0000 0000 0000 0000 0000 0000 0000 0000
register BD    0000 0000 0000 0000 0000 0000 0000 0000
register BE    0000 0000 0000 0000 0000 0000 0000 0000
register BF    0000 0000 0000 0000 0000 0000 0000 0000  ***
register C0    0000 0000 0000 0000 0000 0000 0000 0000
register C1    0000 0000 0000 0000 0000 0000 0000 0000
register C2    0000 0000 0000 0000 0000 0000 0000 0000
register C3    0000 0000 0000 0000 0000 0000 0000 0000
register C4    0000 0000 0000 0000 0000 0000 0000 0000
register C5    0000 0000 0000 0000 0000 0000 0000 0000
register C6    0000 0000 0000 0000 0000 0000 0000 0000
register C7    0000 0000 0000 0000 0000 0000 0000 0000
register C8    0000 0000 0000 0000 0000 0000 0000 0000
register C9    0000 0000 0000 0000 0000 0000 0000 0000
register CA    0000 0000 0000 0000 0000 0000 0000 0000
register CB    0000 0000 0000 0000 0000 0000 0000 0000
register CC    0000 0000 0000 0000 0000 0000 0000 0000
register CD    0000 0000 0000 0000 0000 0000 0000 0000
register CE    0000 0000 0000 0000 0000 0000 0000 0000
register CF    0000 0000 0000 0000 0000 0000 0000 0000
register D0    0000 0000 0000 0000 0000 0000 0000 0000
register D1    0000 0000 0000 0000 0000 0000 0000 0000
register D2    0000 0000 0000 0000 0000 0000 0000 0000
register D3    0000 0000 0000 0000 0000 0000 0000 0000  ***
register D4    0000 0000 0000 0000 0000 0000 0000 0000
register D5    0000 0000 0000 0000 0000 0000 0000 0000
register D6    0000 0000 0000 0000 0000 0000 0000 0000
register D7    0000 0000 0000 0000 0000 0000 0000 0000
register D8    0000 0000 0000 0000 0000 0000 0000 0000
register D9    0000 0000 0000 0000 0000 0000 0000 0000
register DA    0000 0000 0000 0000 0000 0000 0000 0000  ***
register DB    0000 0000 0000 0000 0000 0000 0000 0000  ***
register DC    0000 0000 0000 0000 0000 0000 0000 0000  ***
register DD    0000 0000 0000 0000 0000 0000 0000 0000
register DE    0000 0000 0000 0000 0000 0000 0000 0000
register DF    0000 0000 0000 0000 0000 0000 0000 0000
register E0    0000 0000 0000 0000 0000 0000 0000 0000
register E1    0000 0000 0000 0000 0000 0000 0000 0000
register E2    0000 0000 0000 0000 0000 0000 0000 0000
register E3    0000 0000 0000 0000 0000 0000 0000 0000
register E4    0000 0000 0000 0000 0000 0000 0000 0000
register E5    0000 0000 0000 0000 0000 0000 0000 0000
register E6    0000 0000 0000 0000 0000 0000 0000 0000
register E7    0000 0000 0000 0000 0000 0000 0000 0000
register E8    0000 0000 0000 0000 0000 0000 0000 0000
register E9    0000 0000 0000 0000 0000 0000 0000 0000
register EA    0000 0000 0000 0000 0000 0000 0000 0000
register EB    0000 0000 0000 0000 0000 0000 0000 0000
register EC    0000 0000 0000 0000 0000 0000 0000 0000
register ED    0000 0000 0000 0000 0000 0000 0000 0000
register EE    0000 0000 0000 0000 0000 0000 0000 0000
register EF    0000 0000 0000 0000 0000 0000 0000 0000  ***
register F0    0000 0000 0000 0000 0000 0000 0000 0000
register F1    0000 0000 0000 0000 0000 0000 0000 0000
register F2    0000 0000 0000 0000 0000 0000 0000 0000
register F3    0000 0000 0000 0000 0000 0000 0000 0000
register F4    0000 0000 0000 0000 0000 0000 0000 0000
register F5    0000 0000 0000 0000 0000 0000 0000 0000
register F6    0000 0000 0000 0000 0000 0000 0000 0000
register F7    0121 0121 0121 0121 0121 0121 0121 0121
register F8    0000 0000 0000 0000 0000 0000 0000 0000
register F9    1000 1000 1000 1000 1000 1000 1000 1000
register FA    0000 0000 0000 0000 0000 0000 0000 0000
register FB    0000 0000 0000 0000 0000 0000 0000 0000
register FC    0000 0000 0000 0000 0000 0000 0000 0000
register FD    0000 0000 0000 0000 0000 0000 0000 0000
register FE    0000 0000 0000 0000 0000 0000 0000 0000
register FF    0000 0000 0000 0000 0000 0000 0000 0000

в режиме 8 бит (лог0 на IM0) , другая читалка для 8бит ID_display_read_to_serial_monitor_universal_v3.1_8bit_PORTA_all выдает


               1p 2p 3p 4p 5p 6p 7p 8parameter(byte)
      
register 00    15 03 15 03 15 03 15 03  ***
      
register 00    15 03 15 03 15 03 15 03  ***
register 01    00 00 00 00 00 00 00 00
register 02    04 00 04 00 04 00 04 00
register 03    00 30 00 30 00 30 00 30
register 04    00 00 00 00 00 00 00 00  ***
register 05    00 00 00 00 00 00 00 00
register 06    00 00 00 00 00 00 00 00
register 07    00 00 00 00 00 00 00 00
register 08    08 08 08 08 08 08 08 08
register 09    00 00 00 00 00 00 00 00
register 0A    00 00 00 00 00 00 00 00
register 0B    00 00 00 00 00 00 00 00
register 0C    00 00 00 00 00 00 00 00
register 0D    00 00 00 00 00 00 00 00
register 0E    00 00 00 00 00 00 00 00
register 0F    00 00 00 00 00 00 00 00
register 10    00 00 00 00 00 00 00 00
register 11    06 60 06 60 06 60 06 60
register 12    00 00 00 00 00 00 00 00
register 13    00 00 00 00 00 00 00 00
register 14    00 00 00 00 00 00 00 00
register 15    00 00 00 00 00 00 00 00
register 16    00 00 00 00 00 00 00 00
register 17    00 00 00 00 00 00 00 00
register 18    00 00 00 00 00 00 00 00
register 19    03 50 03 50 03 50 03 50
register 1A    03 00 03 00 03 00 03 00
register 1B    00 07 00 07 00 07 00 07
register 1C    00 00 00 00 00 00 00 00
register 1D    00 00 00 00 00 00 00 00
register 1E    00 00 00 00 00 00 00 00
register 1F    00 00 00 00 00 00 00 00
register 20    00 00 00 00 00 00 00 00
register 21    00 00 00 00 00 00 00 00
register 22    00 00 52 22 52 22 52 22
register 23    00 00 00 00 00 00 00 00
register 24    00 00 00 00 00 00 00 00
register 25    00 00 00 00 00 00 00 00
register 26    00 00 00 00 00 00 00 00
register 27    00 00 00 00 00 00 00 00
register 28    00 00 00 00 00 00 00 00
register 29    00 00 00 00 00 00 00 00
register 2A    00 00 00 00 00 00 00 00
register 2B    00 FF 00 FF 00 FF 00 FF
register 2C    00 FF 00 FF 00 FF 00 FF
register 2D    00 00 00 00 00 00 00 00
register 2E    00 00 00 00 00 00 00 00
register 2F    00 00 00 00 00 00 00 00
register 30    00 00 00 00 00 00 00 00
register 31    00 00 00 00 00 00 00 00
register 32    00 00 00 00 00 00 00 00
register 33    00 00 00 00 00 00 00 00
register 34    00 00 00 00 00 00 00 00
register 35    00 00 00 00 00 00 00 00
register 36    00 00 00 00 00 00 00 00
register 37    00 00 00 00 00 00 00 00
register 38    00 00 00 00 00 00 00 00
register 39    00 00 00 00 00 00 00 00
register 3A    00 00 00 00 00 00 00 00
register 3B    00 00 00 00 00 00 00 00
register 3C    00 00 00 00 00 00 00 00
register 3D    00 00 00 00 00 00 00 00
register 3E    00 00 00 00 00 00 00 00
register 3F    00 00 00 00 00 00 00 00
register 40    00 00 00 00 00 00 00 00
register 41    00 00 00 00 00 00 00 00
register 42    00 00 00 00 00 00 00 00
register 43    00 00 00 00 00 00 00 00
register 44    00 00 00 00 00 00 00 00
register 45    00 00 00 00 00 00 00 00
register 46    00 00 00 00 00 00 00 00
register 47    00 00 00 00 00 00 00 00
register 48    00 00 00 00 00 00 00 00
register 49    00 00 00 00 00 00 00 00
register 4A    00 00 00 00 00 00 00 00
register 4B    00 00 00 00 00 00 00 00
register 4C    00 00 00 00 00 00 00 00
register 4D    00 00 00 00 00 00 00 00
register 4E    00 00 00 00 00 00 00 00
register 4F    00 00 00 00 00 00 00 00
register 50    00 00 00 00 00 00 00 00
register 51    00 AF 00 AF 00 AF 00 AF
register 52    00 00 00 00 00 00 00 00
register 53    00 DB 00 DB 00 DB 00 DB
register 54    00 00 00 00 00 00 00 00
register 55    00 00 00 00 00 00 00 00
register 56    00 00 00 00 00 00 00 00
register 57    00 00 00 00 00 00 00 00
register 58    00 00 00 00 00 00 00 00
register 59    00 00 00 00 00 00 00 00
register 5A    00 00 00 00 00 00 00 00
register 5B    00 00 00 00 00 00 00 00
register 5C    00 00 00 00 00 00 00 00
register 5D    00 00 00 00 00 00 00 00
register 5E    00 00 00 00 00 00 00 00
register 5F    00 00 00 00 00 00 00 00
register 60    00 00 00 00 00 00 00 00
register 61    00 00 00 00 00 00 00 00
register 62    00 00 00 00 00 00 00 00
register 63    00 00 00 00 00 00 00 00
register 64    00 00 00 00 00 00 00 00
register 65    00 00 00 00 00 00 00 00
register 66    00 00 00 00 00 00 00 00
register 67    00 00 00 00 00 00 00 00
register 68    00 00 00 00 00 00 00 00
register 69    00 00 00 00 00 00 00 00
register 6A    00 00 00 00 00 00 00 00
register 6B    00 00 00 00 00 00 00 00
register 6C    00 00 00 00 00 00 00 00
register 6D    00 00 00 00 00 00 00 00
register 6E    00 00 00 00 00 00 00 00
register 6F    00 00 00 00 00 00 00 00
register 70    00 00 00 00 00 00 00 00
register 71    00 00 00 00 00 00 00 00
register 72    00 00 00 00 00 00 00 00
register 73    00 00 00 00 00 00 00 00
register 74    00 00 00 00 00 00 00 00
register 75    00 00 00 00 00 00 00 00
register 76    00 00 00 00 00 00 00 00
register 77    00 00 00 00 00 00 00 00
register 78    00 00 00 00 00 00 00 00
register 79    00 00 00 00 00 00 00 00
register 7A    00 00 00 00 00 00 00 00
register 7B    00 00 00 00 00 00 00 00
register 7C    00 00 00 00 00 00 00 00
register 7D    00 00 00 00 00 00 00 00
register 7E    00 00 00 00 00 00 00 00
register 7F    00 00 00 00 00 00 00 00
register 80    00 00 00 00 00 00 00 00
register 81    00 00 00 00 00 00 00 00
register 82    00 00 00 00 00 00 00 00
register 83    00 00 00 00 00 00 00 00
register 84    00 00 00 00 00 00 00 00
register 85    00 00 00 00 00 00 00 00
register 86    00 00 00 00 00 00 00 00
register 87    00 00 00 00 00 00 00 00
register 88    00 00 00 00 00 00 00 00
register 89    00 00 00 00 00 00 00 00
register 8A    00 00 00 00 00 00 00 00
register 8B    00 00 00 00 00 00 00 00
register 8C    00 00 00 00 00 00 00 00
register 8D    00 00 00 00 00 00 00 00
register 8E    00 00 00 00 00 00 00 00
register 8F    00 00 00 00 00 00 00 00
register 90    00 00 00 00 00 00 00 00
register 91    00 00 00 00 00 00 00 00
register 92    00 00 00 00 00 00 00 00
register 93    00 00 00 00 00 00 00 00
register 94    00 00 00 00 00 00 00 00
register 95    00 00 00 00 00 00 00 00
register 96    00 00 00 00 00 00 00 00
register 97    00 00 00 00 00 00 00 00
register 98    00 00 00 00 00 00 00 00
register 99    00 00 00 00 00 00 00 00
register 9A    00 00 00 00 00 00 00 00
register 9B    00 00 00 00 00 00 00 00
register 9C    00 00 00 00 00 00 00 00
register 9D    00 00 00 00 00 00 00 00
register 9E    00 00 00 00 00 00 00 00
register 9F    00 00 00 00 00 00 00 00
register A0    00 00 00 00 00 00 00 00
register A1    00 00 00 00 00 00 00 00
register A2    00 00 00 00 00 00 00 00
register A3    00 00 00 00 00 00 00 00
register A4    00 00 00 00 00 00 00 00
register A5    00 00 00 00 00 00 00 00
register A6    00 00 00 00 00 00 00 00
register A7    00 00 00 00 00 00 00 00
register A8    00 00 00 00 00 00 00 00
register A9    00 00 00 00 00 00 00 00
register AA    00 00 00 00 00 00 00 00
register AB    00 00 00 00 00 00 00 00
register AC    00 00 00 00 00 00 00 00
register AD    00 00 00 00 00 00 00 00
register AE    00 00 00 00 00 00 00 00
register AF    00 00 00 00 00 00 00 00
register B0    00 00 00 00 00 00 00 00
register B1    00 00 00 00 00 00 00 00
register B2    00 00 00 00 00 00 00 00
register B3    00 00 00 00 00 00 00 00
register B4    00 00 00 00 00 00 00 00
register B5    00 00 00 00 00 00 00 00
register B6    00 00 00 00 00 00 00 00
register B7    00 00 00 00 00 00 00 00
register B8    00 00 00 00 00 00 00 00
register B9    00 00 00 00 00 00 00 00
register BA    00 00 00 00 00 00 00 00
register BB    00 00 00 00 00 00 00 00
register BC    00 00 00 00 00 00 00 00
register BD    00 00 00 00 00 00 00 00
register BE    00 00 00 00 00 00 00 00
register BF    00 00 00 00 00 00 00 00  ***
register C0    00 00 00 00 00 00 00 00
register C1    00 00 00 00 00 00 00 00
register C2    00 00 00 00 00 00 00 00
register C3    00 00 00 00 00 00 00 00
register C4    00 00 00 00 00 00 00 00
register C5    00 00 00 00 00 00 00 00
register C6    00 00 00 00 00 00 00 00
register C7    00 00 00 00 00 00 00 00
register C8    00 00 00 00 00 00 00 00
register C9    00 00 00 00 00 00 00 00
register CA    00 00 00 00 00 00 00 00
register CB    00 00 00 00 00 00 00 00
register CC    00 00 00 00 00 00 00 00
register CD    00 00 00 00 00 00 00 00
register CE    00 00 00 00 00 00 00 00
register CF    00 00 00 00 00 00 00 00
register D0    00 00 00 00 00 00 00 00
register D1    00 00 00 00 00 00 00 00
register D2    00 00 00 00 00 00 00 00
register D3    00 00 00 00 00 00 00 00  ***
register D4    00 00 00 00 00 00 00 00
register D5    00 00 00 00 00 00 00 00
register D6    00 00 00 00 00 00 00 00
register D7    00 00 00 00 00 00 00 00
register D8    00 00 00 00 00 00 00 00
register D9    00 00 00 00 00 00 00 00
register DA    00 00 00 00 00 00 00 00  ***
register DB    00 00 00 00 00 00 00 00  ***
register DC    00 00 00 00 00 00 00 00  ***
register DD    00 00 00 00 00 00 00 00
register DE    00 00 00 00 00 00 00 00
register DF    00 00 00 00 00 00 00 00
register E0    00 00 00 00 00 00 00 00
register E1    00 00 00 00 00 00 00 00
register E2    00 00 00 00 00 00 00 00
register E3    00 00 00 00 00 00 00 00
register E4    00 00 00 00 00 00 00 00
register E5    00 00 00 00 00 00 00 00
register E6    00 00 00 00 00 00 00 00
register E7    00 00 00 00 00 00 00 00
register E8    00 00 00 00 00 00 00 00
register E9    00 00 00 00 00 00 00 00
register EA    00 00 00 00 00 00 00 00
register EB    00 00 00 00 00 00 00 00
register EC    00 00 00 00 00 00 00 00
register ED    00 00 00 00 00 00 00 00
register EE    00 00 00 00 00 00 00 00
register EF    00 00 00 00 00 00 00 00  ***
register F0    00 00 00 00 00 00 00 00
register F1    00 00 00 00 00 00 00 00
register F2    00 00 00 00 00 00 00 00
register F3    00 00 00 00 00 00 00 00
register F4    00 00 00 00 00 00 00 00
register F5    00 00 00 00 00 00 00 00
register F6    00 00 00 00 00 00 00 00
register F7    01 21 01 21 01 21 01 21
register F8    00 00 00 00 00 00 00 00
register F9    10 00 10 00 10 00 10 00
register FA    00 00 00 00 00 00 00 00
register FB    00 00 00 00 00 00 00 00
register FC    00 00 00 00 00 00 00 00
register FD    00 00 00 00 00 00 00 00
register FE    00 00 00 00 00 00 00 00
register FF    00 00 00 00 00 00 00 00

в режиме 16бит UTFT тест проходит за 36 секунд , в режиме 8бит - за 39 сек.

в либу на базе UTFT занес рабочий, отысканный в инете инит. Готово к пользованию:  https://yadi.sk/d/eoa6HW_5rSyfE  ( init code R61503 R61503U положил в папку C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\UTFT\tft_drivers\ili9325c )

все что нужно, остается просто запустить пример UTFT\examples\Arduino (AVR)\UTFT_Demo_220x176

надо только перекоментить в нем на так:

//UTFT myGLCD(S6D0164,38,39,40,41);   // S6D0164  для ILI9225  Fly MC130 
UTFT myGLCD(ILI9325C,38,39,40,41);  // ILI9325C для R61503U  Fly DS240 B700
 
 

 

nik4ik
Offline
Зарегистрирован: 05.01.2017

slider пишет:

nik4ik , ну круто. боюсь спросить сколько на это "принципиально" времени ушло?  что с распиновкой разобрались это больше полдела.

Лучше я не буду подсчитывать общее время, дабы самому не испугаться :-) . Как минимум, все эти новогодние выходные, ну и в том году сколько-то выходных и вечеров. На самом деле, есть в наличии дисплей такого же разрешения, вполне себе известный и признаваемый существующими библиотеками. В данном случае я скорее удовлетворял свой интерес и любопытство, поэтому не считаю, что время потрачено совсем уж напрасно. 

slider пишет:

Из скетча напрашивается , что он все же SPI ? тогда правильней обозвать пины  mosi sck cs ...  Для распознания можно было и дешевым анализатором на CY7C68013A пройтись , там вроде есть автоматическое распознавание протоколов.

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

slider пишет:

SPI есть и удафруита и UTFT (4pin и 5pin) , все их иниты перепробовали?

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

А насчет фоток того, что выводит дисплей... Я не знаю даже, есть ли смысл. Сейчас, как я и писал, это лишь прямоугольники, линии да точки. Давайте так: как только я прикручу к нему шрифты или добавлю этот дисплей к той же Adafruit GFX (что тоже может статься) - обещаю обновить.

 

ywor
Offline
Зарегистрирован: 16.01.2017

Добрый вечер есть дисплей HL-FPC040005B помогите разобраться с ним инфи по нем не нашёл имеет 39pin c подсветкой и тачем разобрался помогите с остальным .

diger67
Offline
Зарегистрирован: 25.07.2015

Фото шлейфа с двух сторон.

ywor
Offline
Зарегистрирован: 16.01.2017

вот он 

diger67
Offline
Зарегистрирован: 25.07.2015

Похоже что:

27, 28 +3.3в

5, 29 gnd

23, 24, 25, 26 сигналы управления, RD, WR, RS, CS, надо разбираться по месту

7, 8, 9, 10, 11, 12, 13, 14 шина данных D8 -> D0

6 reset.

 

 

Ruskat
Offline
Зарегистрирован: 17.01.2017

Всем привет!  Имеется Дисплей от Galaxy S3 GT I9300. Был упал и после падения при разблокировке не включалась подсветка, а так все отлично работает. Буду менять модуль а данных дисплей хочу поставить на Ардуино для вывода информации и управлением. Распиновка контактов:

Удастся ли дисплей вообще подружить с Ардуино?

slider
Offline
Зарегистрирован: 17.06.2014

Ruskat,  если б прочли хотя бы пару первых страниц , то ззаметили б , что надо выводы DB0..DB7..DB16 . А здесь пары(как витые в компьютерной сети) - шина LVDS  , или  DSI  ,  MIPI  ,... (гуглить вместе с arduino) .  Дисплеи такого высокого разрешения не могут иметь большой видеоконтроллер (видеокарту) на стекле по многим причинам. Обслуживанием графики большого разрешения и скорости  занимается процессор на плате, как собственно и в компьютере, планшетниках,...

Подключить можно только через плату - переходник , выполняющую роль скалера (плата как в любом мониторе) + выдеокарты (видеопроцессор с видеопамятью) как в любом компьютере . Ссылки на на подобные проекты давал здесь ранее. Это очень затратное решение, но выполнимое.

вот и на сайте известного Адафруита есть про него https://blog.adafruit.com/2016/03/31/control-smartphone-display-from-mipi-display-serial-interface-arduino-and-raspberrypi-compatible/

шилд для ардуино Уно, Меги,.. через HDMI для малины , апельсина , компа,...

bester
Offline
Зарегистрирован: 25.06.2016

Люди добрые,подскажите пожалуйста чайнику, как подключить дисплей от вот такой нокиа 1100 к ардуино?

slider
Offline
Зарегистрирован: 17.06.2014

bester пишет:

Люди добрые,подскажите пожалуйста чайнику, как подключить дисплей от вот такой нокиа 1100 к ардуино?

ну что ж вы поиском не пользуетесь ? в гугле и яндексе nokia 1100 arduino

даже здесь на форуме есть http://arduino.ru/forum/programmirovanie/biblioteka-dlya-lcd-nokia-1100

bester
Offline
Зарегистрирован: 25.06.2016

Подпаял провода к экрану добавил резисторы4,7ком, но вот не пойму, к каким контактам ардуино их подключать, и не могли бы вы дать какой-нибудь скетч для пробы? возможно требуется какая то специальная библиотека для нокиа 1100? http://digitalchip.ru/podklyuchenie-displeya-ot-nokia-1100-chast-1

Назначение выводов экрана Nokia1100. Вид с обратной (задней) стороны.

Вывод CS на экране это что? SDA к А4, SCLK к А5. Не понял, куда цеплять CS, а RES к 10 пину ардуино, правильно?

Что же? Никто не подключал что ли такой дисплей?

Comondante
Offline
Зарегистрирован: 24.01.2017

Доброго времени суток Всем!Я новичёк в этом деле.

И я внесу свои пять копеек.

Раздобыл

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

DB0...DB7  и управляющие выводы посадил через 10k.

Вот хочу попробывать прикрутить его к какой нить атмеге.

По надписям на шлейфе удалось лишь найти распиновку шлейфа .А вот какой там контроллер не знаю.

Добавил фоток для идентификации девайса.Может кому пригодится.На шлейфеL 1209  T-177B49-A-5

проц в плеере ATJ2117.

Читалкой ID контроллеров через UNO удалось добиться мусора на экране.


/*********************************************************************
*
* LCD_ID_Reader
*
* This sketch is meant only to attempt to read the driver ID code
* from inexpensive touchscreen LCDs found on eBay without needing to
* load any additional libraries.  The hope is to identify the most 
* common varieties and choose the best library for the screen you have.
*
* This has been successfully tested so far on 992X and 778X variety
* screens.
*
* Usage: 
*
* Compile the sketch and run it on your board with the screen
* attached.  In the serial monitor, you should see a message containing
* the driver code.  The tricky thing is that if it does not work, the
* results may be undetermined.  However, if we can compile a list,
* the difference between working and not may become more evident.
*
* Please visit http://misc.ws/lcd_information for more information.
*
* Version 1.2 - January 29th, 2015
* 
*********************************************************************/



/*********************************************************************
*
* PIN ASSIGNMENTS
*
* You can alter the pin assignments to reflect any configuration you
* wish.  I've provided the default shield configuration, which works
* on both the Arduino UNO and Mega 2560.
* 
*********************************************************************/
//-- Arduino UNO or Mega 2560 Plugged as shield
#define LCD_RST A4
#define LCD_CS A3
#define LCD_RS A2
#define LCD_WR A1
#define LCD_RD A0

#define LCD_D0 8
#define LCD_D1 9
#define LCD_D2 2
#define LCD_D3 3
#define LCD_D4 4
#define LCD_D5 5
#define LCD_D6 6
#define LCD_D7 7



/*********************************************************************
*
* Attempt to initialize and reset LCD, then read its Driver Code
* at register index 0.
* 
*********************************************************************/
void setup() {
  
  char hexString[7];
  uint16_t id,in;
  
  Serial.begin(9600);
  Serial.println("Initializing LCD...");
  lcdInit();
  lcdReset();
  
  delay(500);
  
  Serial.print("Reading ID...");
  id = lcdReadID();
  sprintf(hexString, "0x%0.4X", id); 

 
  Serial.println( hexString );
  
  if( id == 0x7783 ) {
    lcdRegister7783();
    lcdFillScreen(0xF800);
    Serial.println("If your screen filled red, then you may be able to use the library at https://github.com/Smoke-And-Wires/TFT-Shield-Example-Code");
  } else if( id == 0x0154 ) {
    lcdRegister0154();
    lcdFillScreen(0xF800);
    Serial.println("If your screen filled red, please report it at http://misc.ws/lcd_information");
    Serial.println("There is currently no known working library.");
  } else {
    lcdRegisterOther();
    lcdFillScreen(0xF800);
    Serial.println("If your screen filled red, you may be able to use the library at http://misc.ws");
  } 
  
  print_all_regs();
}


void print_all_regs() {
  char str[60];
  uint16_t i, val;

  for(i=0; i < 256; i++ )
  {
    delay(40);
    val = lcdReadRegister(i);
    sprintf(str, "Register 0x%0.2X : 0x%0.4X", i, val);
    Serial.println( str );
  }  
}

void loop() {
  
}

/*********************************************************************
*
*   LCD Functions - Inefficient but should be good enough 
*                   to read the ID.
*
*********************************************************************/
void lcdRegister0154() {
  lcdWriteRegister(0x000C, 0x130); 
  lcdWriteRegister(0x0080, 0x8d);
  lcdWriteRegister(0x0092, 0x10);
  lcdWriteRegister(0x0011, 0x1b);
  lcdWriteRegister(0x0012, 0x3101);
  lcdWriteRegister(0x0013, 0x105f);
  lcdWriteRegister(0x0014, 0x667f);
  lcdWriteRegister(0x0010, 0x800);
  delay(20); 
  lcdWriteRegister(0x0011, 0x11b);
  delay(20); 
  lcdWriteRegister(0x0011, 0x31b);
  delay(20); 
  lcdWriteRegister(0x0011, 0x71b);
  delay(20); 
  lcdWriteRegister(0x0011, 0xf1b);
  delay(20); 
  lcdWriteRegister(0x0011, 0xf3b);
  delay(30); 
  lcdWriteRegister(0x0001, 0x2128);
  lcdWriteRegister(0x0002, 0x100);
  lcdWriteRegister(0x0003, 0x1030);
  lcdWriteRegister(0x0007, 0); 
  lcdWriteRegister(0x0008, 0x808);
  lcdWriteRegister(0x000B, 0x1100);
  lcdWriteRegister(0x000F, 0xf01);
  lcdWriteRegister(0x0015, 0);
  lcdWriteRegister(0x0030, 0);
  lcdWriteRegister(0x0034, 319); 
  lcdWriteRegister(0x0035, 0); 
  lcdWriteRegister(0x0036, 239); 
  lcdWriteRegister(0x0037, 0); 
  lcdWriteRegister(0x0038, 319); 
  lcdWriteRegister(0x0039, 0); 
  lcdWriteRegister(0x0050, 0);
  lcdWriteRegister(0x0051, 0xf00);
  lcdWriteRegister(0x0052, 0xa03);
  lcdWriteRegister(0x0053, 0x300);
  lcdWriteRegister(0x0054, 0xc05);
  lcdWriteRegister(0x0055, 0xf00);
  lcdWriteRegister(0x0056, 0xf00);
  lcdWriteRegister(0x0057, 3);
  lcdWriteRegister(0x0058, 0x1f07);
  lcdWriteRegister(0x0059, 0x71f);
  delay(20);
  lcdWriteRegister(0x0007, 0x12);
  delay(20);
  lcdWriteRegister(0x0007, 0x13);
}

void lcdRegisterOther() {
  Serial.println("Loading LCD registers...");
  lcdWriteRegister(0x00e5,0x8000);
  lcdWriteRegister(0x0000,0x0001);
  lcdWriteRegister(0x0001,0x0100);
  lcdWriteRegister(0x0002,0x0700);
  lcdWriteRegister(0x0003,0x1030);
  lcdWriteRegister(0x0004,0x0000);
  lcdWriteRegister(0x0008,0x0202);
  lcdWriteRegister(0x0009,0x0000);
  lcdWriteRegister(0x000a,0x0000);
  lcdWriteRegister(0x000c,0x0000);
  lcdWriteRegister(0x000d,0x0000);
  lcdWriteRegister(0x000f,0x0000);
  lcdWriteRegister(0x0010,0x0000);
  lcdWriteRegister(0x0011,0x0000);
  lcdWriteRegister(0x0012,0x0000);
  lcdWriteRegister(0x0013,0x0000);
  lcdWriteRegister(0x0010,0x17b0);
  lcdWriteRegister(0x0011,0x0037);
  lcdWriteRegister(0x0012,0x0138);
  lcdWriteRegister(0x0013,0x1700);
  lcdWriteRegister(0x0029,0x000d);
  lcdWriteRegister(0x0020,0x0000);
  lcdWriteRegister(0x0021,0x0000);
  lcdWriteRegister(0x0030,0x0001);
  lcdWriteRegister(0x0031,0x0606);
  lcdWriteRegister(0x0032,0x0304);
  lcdWriteRegister(0x0033,0x0202);
  lcdWriteRegister(0x0034,0x0202);
  lcdWriteRegister(0x0035,0x0103);
  lcdWriteRegister(0x0036,0x011d);
  lcdWriteRegister(0x0037,0x0404);
  lcdWriteRegister(0x0038,0x0404);
  lcdWriteRegister(0x0039,0x0404);
  lcdWriteRegister(0x003c,0x0700);
  lcdWriteRegister(0x003d,0x0a1f);
  lcdWriteRegister(0x0050,0x0000);
  lcdWriteRegister(0x0051,0x00ef);
  lcdWriteRegister(0x0052,0x0000);
  lcdWriteRegister(0x0053,0x013f);
  lcdWriteRegister(0x0060,0x2700);
  lcdWriteRegister(0x0061,0x0001);
  lcdWriteRegister(0x006a,0x0000);
  lcdWriteRegister(0x0090,0x0010);
  lcdWriteRegister(0x0092,0x0000);
  lcdWriteRegister(0x0093,0x0003);
  lcdWriteRegister(0x0095,0x0101);
  lcdWriteRegister(0x0097,0x0000);
  lcdWriteRegister(0x0098,0x0000);
  lcdWriteRegister(0x0007,0x0021);
  lcdWriteRegister(0x0007,0x0031);
  lcdWriteRegister(0x0007,0x0173);
}

void lcdRegister7783() {
    
  lcdWriteRegister(0x0001,0x0100);    
  lcdWriteRegister(0x0002,0x0700);    
  lcdWriteRegister(0x0003,0x1030);    
  lcdWriteRegister(0x0008,0x0302);    
  lcdWriteRegister(0x0009,0x0000);   
  lcdWriteRegister(0x000A,0x0008);    
  lcdWriteRegister(0x0010,0x0790);    
  lcdWriteRegister(0x0011,0x0005);    
  lcdWriteRegister(0x0012,0x0000);   
  lcdWriteRegister(0x0013,0x0000); 
  lcdWriteRegister(0x0010,0x12B0);    
  lcdWriteRegister(0x0011,0x0007);  
  lcdWriteRegister(0x0012,0x008C);   
  lcdWriteRegister(0x0013,0x1700);    
  lcdWriteRegister(0x0029,0x0022);    
  lcdWriteRegister(0x0030,0x0000);    
  lcdWriteRegister(0x0031,0x0505);    
  lcdWriteRegister(0x0032,0x0205);    
  lcdWriteRegister(0x0035,0x0206);    
  lcdWriteRegister(0x0036,0x0408);    
  lcdWriteRegister(0x0037,0x0000);   
  lcdWriteRegister(0x0038,0x0504);
  lcdWriteRegister(0x0039,0x0206);    
  lcdWriteRegister(0x003C,0x0206);   
  lcdWriteRegister(0x003D,0x0408);    
  lcdWriteRegister(0x0050,0x0000);
  lcdWriteRegister(0x0051,0x00EF);   
  lcdWriteRegister(0x0052,0x0000);   
  lcdWriteRegister(0x0053,0x013F);   
  lcdWriteRegister(0x0060,0xA700);   
  lcdWriteRegister(0x0061,0x0001);   
  lcdWriteRegister(0x0090,0x0033); 
  lcdWriteRegister(0x0007,0x0133);
  lcdWriteRegister(0x0001,0x0100);
  lcdWriteRegister(0x0002,0x0700);    
  lcdWriteRegister(0x0003,0x1030);    
  lcdWriteRegister(0x0008,0x0302);    
  lcdWriteRegister(0x0009,0x0000);   
  lcdWriteRegister(0x000A,0x0008);    
  lcdWriteRegister(0x0010,0x0790);    
  lcdWriteRegister(0x0011,0x0005);    
  lcdWriteRegister(0x0012,0x0000);  
  lcdWriteRegister(0x0013,0x0000);    
  lcdWriteRegister(0x0010,0x12B0);    
  lcdWriteRegister(0x0011,0x0007);    
  lcdWriteRegister(0x0012,0x008C);    
  lcdWriteRegister(0x0013,0x1700);    
  lcdWriteRegister(0x0029,0x0022);    
  lcdWriteRegister(0x0030,0x0000);    
  lcdWriteRegister(0x0031,0x0505);    
  lcdWriteRegister(0x0032,0x0205);    
  lcdWriteRegister(0x0035,0x0206);    
  lcdWriteRegister(0x0036,0x0408);   
  lcdWriteRegister(0x0037,0x0000);    
  lcdWriteRegister(0x0038,0x0504);
  lcdWriteRegister(0x0039,0x0206);    
  lcdWriteRegister(0x003C,0x0206);    
  lcdWriteRegister(0x003D,0x0408);   
  lcdWriteRegister(0x0050,0x0000);
  lcdWriteRegister(0x0051,0x00EF);   
  lcdWriteRegister(0x0052,0x0000);   
  lcdWriteRegister(0x0053,0x013F);   
  lcdWriteRegister(0x0060,0xA700);   
  lcdWriteRegister(0x0061,0x0001);   
  lcdWriteRegister(0x0090,0x0033);
  lcdWriteRegister(0x0007,0x0133);
}

void lcdInit() {
  pinMode(LCD_CS, OUTPUT);
  digitalWrite(LCD_CS, HIGH);
  pinMode(LCD_RS, OUTPUT);
  digitalWrite(LCD_RS, HIGH);
  pinMode(LCD_WR, OUTPUT);
  digitalWrite(LCD_WR, HIGH);
  pinMode(LCD_RD, OUTPUT);
  digitalWrite(LCD_RD, HIGH);
  pinMode(LCD_RST, OUTPUT);
  digitalWrite(LCD_RST, HIGH);  
}

void lcdReset() {
  digitalWrite(LCD_RST, LOW);
  delay(2); 
  digitalWrite(LCD_RST, HIGH);
  lcdWriteData(0);
  lcdWriteData(0);
  lcdWriteData(0);
  lcdWriteData(0);
}

void lcdWrite8(uint16_t data) {
  digitalWrite(LCD_D0, data & 1);
  digitalWrite(LCD_D1, (data & 2) >> 1);
  digitalWrite(LCD_D2, (data & 4) >> 2);
  digitalWrite(LCD_D3, (data & 8) >> 3);
  digitalWrite(LCD_D4, (data & 16) >> 4); 
  digitalWrite(LCD_D5, (data & 32) >> 5);
  digitalWrite(LCD_D6, (data & 64) >> 6);
  digitalWrite(LCD_D7, (data & 128) >> 7);  
}

uint16_t lcdRead8() {
  uint16_t result = digitalRead(LCD_D7);
  result <<= 1;
  result |= digitalRead(LCD_D6);
  result <<= 1;
  result |= digitalRead(LCD_D5);
  result <<= 1; 
  result |= digitalRead(LCD_D4); 
  result <<= 1;
  result |= digitalRead(LCD_D3);
  result <<= 1;
  result |= digitalRead(LCD_D2); 
  result <<= 1;
  result |= digitalRead(LCD_D1);
  result <<= 1;
  result |= digitalRead(LCD_D0); 
  
  return result;
  Serial.println( result );
}

void lcdSetWriteDir() {
  pinMode(LCD_D0, OUTPUT);
  pinMode(LCD_D1, OUTPUT);
  pinMode(LCD_D2, OUTPUT);
  pinMode(LCD_D3, OUTPUT);  
  pinMode(LCD_D4, OUTPUT);  
  pinMode(LCD_D5, OUTPUT);
  pinMode(LCD_D6, OUTPUT);
  pinMode(LCD_D7, OUTPUT);  
}


void lcdSetReadDir() {
  pinMode(LCD_D0, INPUT);
  pinMode(LCD_D1, INPUT);
  pinMode(LCD_D2, INPUT);
  pinMode(LCD_D3, INPUT);  
  pinMode(LCD_D4, INPUT);  
  pinMode(LCD_D5, INPUT);
  pinMode(LCD_D6, INPUT);
  pinMode(LCD_D7, INPUT);    
}

void lcdWriteData(uint16_t data) {
  
  lcdSetWriteDir();
  digitalWrite(LCD_CS, LOW);
  digitalWrite(LCD_RS, HIGH);
  digitalWrite(LCD_RD, HIGH);
  digitalWrite(LCD_WR, HIGH);
  
  lcdWrite8(data >> 8);
  
  digitalWrite(LCD_WR, LOW);
  delayMicroseconds(10);
  digitalWrite(LCD_WR, HIGH);
  
  lcdWrite8(data);
  
  digitalWrite(LCD_WR, LOW);
  delayMicroseconds(10);
  digitalWrite(LCD_WR, HIGH);
  
  digitalWrite(LCD_CS, HIGH);  
}


void lcdWriteCommand(uint16_t command) {
  lcdSetWriteDir(); 
  digitalWrite(LCD_CS, LOW);
  digitalWrite(LCD_RS, LOW);
  digitalWrite(LCD_RD, HIGH);
  digitalWrite(LCD_WR, HIGH);  
  lcdWrite8(command >> 8);
  digitalWrite(LCD_WR, LOW);
  delayMicroseconds(10);
  digitalWrite(LCD_WR, HIGH);
  lcdWrite8(command);
  digitalWrite(LCD_WR, LOW);
  delayMicroseconds(10);
  digitalWrite(LCD_WR, HIGH);
  digitalWrite(LCD_CS, HIGH);    
}


int lcdReadData() {
  uint16_t result;
  lcdSetReadDir();
  digitalWrite(LCD_CS, LOW);
  digitalWrite(LCD_RS, HIGH);
  digitalWrite(LCD_RD, HIGH);
  digitalWrite(LCD_WR, HIGH);
  
  digitalWrite(LCD_RD, LOW);  
  delayMicroseconds(10);
  result = lcdRead8() << 8;
  digitalWrite(LCD_RD, HIGH);
  
  delayMicroseconds(10);
  
  digitalWrite(LCD_RD, LOW);
  delayMicroseconds(10);
  result |= lcdRead8();
  
  digitalWrite(LCD_RD, HIGH);
  digitalWrite(LCD_CS, HIGH);
  
  return result;
}


void lcdWriteRegister(uint16_t addr, uint16_t data) {
  lcdWriteCommand(addr);
  lcdWriteData(data);
}

uint16_t lcdReadRegister(uint16_t reg) {
  lcdWriteCommand(reg);
  return lcdReadData();
}

uint16_t lcdReadID() {
  return lcdReadRegister(0x00);
}


void lcdFillScreen(uint16_t color) {
  
  Serial.println("Filling the screen...");
  //
  lcdWriteRegister(0x0050, 0);
  lcdWriteRegister(0x0051, 219);  
  lcdWriteRegister(0x0052, 0);
  lcdWriteRegister(0x0053, 319);  
  //
  lcdWriteRegister(0x0020, 0);
  lcdWriteRegister(0x0021, 0);
  lcdWriteCommand(0x0022);
  
  digitalWrite(LCD_CS, LOW);
  digitalWrite(LCD_RS, HIGH);
  digitalWrite(LCD_RD, HIGH);
  digitalWrite(LCD_WR, HIGH);
 
  lcdSetWriteDir();
  
  uint32_t i = 160;//320
  i *=128;//240

  while( i-- ) {
    lcdWrite8(color >> 8);
    digitalWrite(LCD_WR, LOW);
    delayMicroseconds(10);
    digitalWrite(LCD_WR, HIGH); 
    lcdWrite8(color);
    digitalWrite(LCD_WR, LOW);
    delayMicroseconds(10);
    digitalWrite(LCD_WR, HIGH); 
  }
  
  digitalWrite(LCD_CS, HIGH); 
  Serial.println("Done filling...");
  
}

Вот что удалось увидеть в окне монитора порта


Initializing LCD...
Reading ID...0x0000
Loading LCD registers...
Filling the screen...
Done filling...
If your screen filled red, you may be able to use the library at http://misc.ws
Register 0x00 : 0x0000
Register 0x01 : 0x0000
Register 0x02 : 0x0000
Register 0x03 : 0x0000
Register 0x04 : 0x0089
Register 0x05 : 0x0000
Register 0x06 : 0x0000
Register 0x07 : 0x0000
Register 0x08 : 0x0000
Register 0x09 : 0x0000
Register 0x0A : 0x0808
Register 0x0B : 0x0000
Register 0x0C : 0x0606
Register 0x0D : 0x0202
Register 0x0E : 0x0000
Register 0x0F : 0x0000
Register 0x10 : 0x0000
Register 0x11 : 0x0000
Register 0x12 : 0x0000
Register 0x13 : 0x0000
Register 0x14 : 0x0000
Register 0x15 : 0x0000
Register 0x16 : 0x0000
Register 0x17 : 0x0000
Register 0x18 : 0x0000
Register 0x19 : 0x0000
Register 0x1A : 0x0000
Register 0x1B : 0x0000
Register 0x1C : 0x0000
Register 0x1D : 0x0000
Register 0x1E : 0x0000
Register 0x1F : 0x0000
Register 0x20 : 0x0000
Register 0x21 : 0x0000
Register 0x22 : 0x0000
Register 0x23 : 0x0000
Register 0x24 : 0x0000
Register 0x25 : 0x0000
Register 0x26 : 0x0404
Register 0x27 : 0x0000
Register 0x28 : 0x0000
Register 0x29 : 0x0000
Register 0x2A : 0x0000
Register 0x2B : 0x0000
Register 0x2C : 0x0000
Register 0x2D : 0x0000
Register 0x2E : 0xACB0
Register 0x2F : 0x0000
Register 0x30 : 0x0000
Register 0x31 : 0x0000
Register 0x32 : 0x0000
Register 0x33 : 0x0000
Register 0x34 : 0x0000
Register 0x35 : 0x0000
Register 0x36 : 0x0000
Register 0x37 : 0x0000
Register 0x38 : 0x0000
Register 0x39 : 0x0000
Register 0x3A : 0x0000
Register 0x3B : 0x0000
Register 0x3C : 0x0000
Register 0x3D : 0x0000
Register 0x3E : 0x0000
Register 0x3F : 0x0000
Register 0x40 : 0x0000
Register 0x41 : 0x0000
Register 0x42 : 0x0000
Register 0x43 : 0x0000
Register 0x44 : 0x0000
Register 0x45 : 0x0000
Register 0x46 : 0x0000
Register 0x47 : 0x0000
Register 0x48 : 0x0000
Register 0x49 : 0x0000
Register 0x4A : 0x0000
Register 0x4B : 0x0000
Register 0x4C : 0x0000
Register 0x4D : 0x0000
Register 0x4E : 0x0000
Register 0x4F : 0x0000
Register 0x50 : 0x0000
Register 0x51 : 0x0000
Register 0x52 : 0x0000
Register 0x53 : 0x0000
Register 0x54 : 0x0000
Register 0x55 : 0x0000
Register 0x56 : 0x0000
Register 0x57 : 0x0000
Register 0x58 : 0x0000
Register 0x59 : 0x0000
Register 0x5A : 0x0000
Register 0x5B : 0x0000
Register 0x5C : 0x0000
Register 0x5D : 0x0000
Register 0x5E : 0x0000
Register 0x5F : 0x0000
Register 0x60 : 0x0000
Register 0x61 : 0x0000
Register 0x62 : 0x0000
Register 0x63 : 0x0000
Register 0x64 : 0x0000
Register 0x65 : 0x0000
Register 0x66 : 0x0000
Register 0x67 : 0x0000
Register 0x68 : 0x0000
Register 0x69 : 0x0000
Register 0x6A : 0x0000
Register 0x6B : 0x0000
Register 0x6C : 0x0000
Register 0x6D : 0x0000
Register 0x6E : 0x0000
Register 0x6F : 0x0000
Register 0x70 : 0x0000
Register 0x71 : 0x0000
Register 0x72 : 0x0000
Register 0x73 : 0x0000
Register 0x74 : 0x0000
Register 0x75 : 0x0000
Register 0x76 : 0x0000
Register 0x77 : 0x0000
Register 0x78 : 0x0000
Register 0x79 : 0x0000
Register 0x7A : 0x0000
Register 0x7B : 0x0000
Register 0x7C : 0x0000
Register 0x7D : 0x0000
Register 0x7E : 0x0000
Register 0x7F : 0x0000
Register 0x80 : 0x0000
Register 0x81 : 0x0000
Register 0x82 : 0x0000
Register 0x83 : 0x0000
Register 0x84 : 0x0000
Register 0x85 : 0x0000
Register 0x86 : 0x0000
Register 0x87 : 0x0000
Register 0x88 : 0x0000
Register 0x89 : 0x0000
Register 0x8A : 0x0000
Register 0x8B : 0x0000
Register 0x8C : 0x0000
Register 0x8D : 0x0000
Register 0x8E : 0x0000
Register 0x8F : 0x0000
Register 0x90 : 0x0000
Register 0x91 : 0x0000
Register 0x92 : 0x0000
Register 0x93 : 0x0000
Register 0x94 : 0x0000
Register 0x95 : 0x0000
Register 0x96 : 0x0000
Register 0x97 : 0x0000
Register 0x98 : 0x0000
Register 0x99 : 0x0000
Register 0x9A : 0x0000
Register 0x9B : 0x0000
Register 0x9C : 0x0000
Register 0x9D : 0x0000
Register 0x9E : 0x0000
Register 0x9F : 0x0000
Register 0xA0 : 0x0000
Register 0xA1 : 0x0000
Register 0xA2 : 0x0000
Register 0xA3 : 0x0000
Register 0xA4 : 0x0000
Register 0xA5 : 0x0000
Register 0xA6 : 0x0000
Register 0xA7 : 0x0000
Register 0xA8 : 0x0000
Register 0xA9 : 0x0000
Register 0xAA : 0x0000
Register 0xAB : 0x0000
Register 0xAC : 0x0000
Register 0xAD : 0x0000
Register 0xAE : 0x0000
Register 0xAF : 0x0000
Register 0xB0 : 0x0000
Register 0xB1 : 0x000F
Register 0xB2 : 0x000F
Register 0xB3 : 0x000F
Register 0xB4 : 0x0303
Register 0xB5 : 0x0000
Register 0xB6 : 0x0080
Register 0xB7 : 0x0000
Register 0xB8 : 0x0000
Register 0xB9 : 0x0000
Register 0xBA : 0x0000
Register 0xBB : 0x0000
Register 0xBC : 0x0000
Register 0xBD : 0x0000
Register 0xBE : 0x0000
Register 0xBF : 0x0000
Register 0xC0 : 0x0014
Register 0xC1 : 0x0505
Register 0xC2 : 0x0002
Register 0xC3 : 0x0002
Register 0xC4 : 0x0002
Register 0xC5 : 0x0A0A
Register 0xC6 : 0x0000
Register 0xC7 : 0x1010
Register 0xC8 : 0x0000
Register 0xC9 : 0x0000
Register 0xCA : 0x0000
Register 0xCB : 0x0000
Register 0xCC : 0x0000
Register 0xCD : 0x0000
Register 0xCE : 0x0000
Register 0xCF : 0x0000
Register 0xD0 : 0x0000
Register 0xD1 : 0x8989
Register 0xD2 : 0xF0F0
Register 0xD3 : 0x0011
Register 0xD4 : 0x0000
Register 0xD5 : 0x0000
Register 0xD6 : 0x0000
Register 0xD7 : 0x0000
Register 0xD8 : 0x0000
Register 0xD9 : 0x0101
Register 0xDA : 0x5C5C
Register 0xDB : 0x8989
Register 0xDC : 0xF0F0
Register 0xDD : 0x0000
Register 0xDE : 0x0000
Register 0xDF : 0x0000
Register 0xE0 : 0x0000
Register 0xE1 : 0x0000
Register 0xE2 : 0x0000
Register 0xE3 : 0x0000
Register 0xE4 : 0x0000
Register 0xE5 : 0x0000
Register 0xE6 : 0x0000
Register 0xE7 : 0x0000
Register 0xE8 : 0x0000
Register 0xE9 : 0x0000
Register 0xEA : 0x0000
Register 0xEB : 0x0000
Register 0xEC : 0x0000
Register 0xED : 0x0000
Register 0xEE : 0x0000
Register 0xEF : 0x0000
Register 0xF0 : 0x0000
Register 0xF1 : 0x0000
Register 0xF2 : 0x0000
Register 0xF3 : 0x0000
Register 0xF4 : 0x0000
Register 0xF5 : 0x0000
Register 0xF6 : 0x0000
Register 0xF7 : 0x0000
Register 0xF8 : 0x0000
Register 0xF9 : 0x0000
Register 0xFA : 0x0030
Register 0xFB : 0x0035
Register 0xFC : 0x0030
Register 0xFD : 0x0010
Register 0xFE : 0x0009
Register 0xFF : 0x0000

Куда копать дальше?Подскажите пожалуйста.Как оперделить ID контроллера по этим данным ?

Спасибо.

slider
Offline
Зарегистрирован: 17.06.2014

Comondante , я б на вашем месте просто прошелся по нему либой UTFT  , пример UTFT_Demo_160x128_Serial , перебирая иниты . (лог ваш пока не смотрел , можете сами в инете пошукать по разрешению 128x160 какие контроллеры применяются. на Али какие распространенные, в шилдах ардуиновских. Ранее приводил ссылку на таблицу что в сотовых тлф применяется)

надо ещё установить разрядность в либе на 8 для всех инитов - в UTFT.cpp

подредактируйте

disp_x_size = 127;
disp_y_size = 159;
display_transfer_mode = 8;
 
На RD не забудьте подать лог.1
 
и, да, применяя ардуино уно , у него не хватит памяти на включенные все иниты в memorysaver.h , поэтому можете раскоментить для больших экранов  
#define DISABLE_SSD1963....   
#define DISABLE_ILI9486  
#define DISABLE_ILI9481
#define DISABLE_R61581    ....
остальные disable оставьте закоментенными
 
// при вставке кода, в том же окне нажмите следующую вкладку , там есть "сворачивать код по умолчанию" . у вас еще доступно изменить  к своему сообщению.
Цветной снег - это хорошо - это он прошел инициализацию. случайным образом, вы включили дисп. перебирая его регистры. В моей читалке (нужна ардуина Мега) после каждого обращения регистра и чтения , отправляется он в сброс + время, потому как некоторые регистры могут его отправить в сон, но зачастую производители сделали после регистра сна , следующий регистр - это пробуждение , на сколько это быстро , не вдавался в подробности.
что привели сюда стороннюю читалку для UNO и 8бит для Адафруитских шилдов, здорово, буду знать :) , а то некогда мониторить кто еще что придумал .
 
 
bester , поищите в инете arduino uno pinouts . там расписано какие ардуиновские пины подключены к порту С atmega328
вот по соседству тема и там схема подключения 1100 к ардуино http://arduino.ru/forum/apparatnye-voprosy/podklyuchenie-displeya-nokia-1100#comment-29766
Comondante
Offline
Зарегистрирован: 24.01.2017

Спасибо Slider  ! Буду копать дальше.

По замечаниям буду иметь ввиду.Яж только учусь.=)

ywor
Offline
Зарегистрирован: 16.01.2017




Что можно сказать по этому логу Initializing LCD... Reading ID...0x0000 Loading LCD registers... Filling the screen... Done filling... If your screen filled red, you may be able to use the library at Register 0x00 : 0x0000 Register 0x01 : 0x0101 Register 0x02 : 0x0202 Register 0x03 : 0x0303 Register 0x04 : 0x0404 Register 0x05 : 0x0505 Register 0x06 : 0x0606 Register 0x07 : 0x0707 Register 0x08 : 0x0808 Register 0x09 : 0x0909 Register 0x0A : 0x0A0A Register 0x0B : 0x0B0B Register 0x0C : 0x0C0C Register 0x0D : 0x0D0D Register 0x0E : 0x0E0E Register 0x0F : 0x0F0F Register 0x10 : 0x1010 Register 0x11 : 0x1111 Register 0x12 : 0x1212 Register 0x13 : 0x1313 Register 0x14 : 0x1414 Register 0x15 : 0x1515 Register 0x16 : 0x1616 Register 0x17 : 0x1717 Register 0x18 : 0x1818 Register 0x19 : 0x1919 Register 0x1A : 0x1A1A Register 0x1B : 0x1B1B Register 0x1C : 0x1C1C Register 0x1D : 0x1D1D Register 0x1E : 0x1E1E Register 0x1F : 0x1F1F Register 0x20 : 0x2020 Register 0x21 : 0x2121 Register 0x22 : 0x2222 Register 0x23 : 0x2323 Register 0x24 : 0x2424 Register 0x25 : 0x2525 Register 0x26 : 0x2626 Register 0x27 : 0x2727 Register 0x28 : 0x2828 Register 0x29 : 0x2929 Register 0x2A : 0x2A2A Register 0x2B : 0x2B2B Register 0x2C : 0x2C2C Register 0x2D : 0x2D2D Register 0x2E : 0x2E2E Register 0x2F : 0x2F2F Register 0x30 : 0x3030 Register 0x31 : 0x3131 Register 0x32 : 0x3232 Register 0x33 : 0x3333 Register 0x34 : 0x3434 Register 0x35 : 0x3535 Register 0x36 : 0x3636 Register 0x37 : 0x3737 Register 0x38 : 0x3838 Register 0x39 : 0x3939 Register 0x3A : 0x3A3A Register 0x3B : 0x3B3B Register 0x3C : 0x3C3C Register 0x3D : 0x3D3D Register 0x3E : 0x3E3E Register 0x3F : 0x3F3F Register 0x40 : 0x4040 Register 0x41 : 0x4141 Register 0x42 : 0x4242 Register 0x43 : 0x4343 Register 0x44 : 0x4444 Register 0x45 : 0x4545 Register 0x46 : 0x4646 Register 0x47 : 0x4747 Register 0x48 : 0x4848 Register 0x49 : 0x4949 Register 0x4A : 0x4A4A Register 0x4B : 0x4B4B Register 0x4C : 0x4C4C Register 0x4D : 0x4D4D Register 0x4E : 0x4E4E Register 0x4F : 0x4F4F Register 0x50 : 0x5050 Register 0x51 : 0x5151 Register 0x52 : 0x5252 Register 0x53 : 0x5353 Register 0x54 : 0x5454 Register 0x55 : 0x5555 Register 0x56 : 0x5656 Register 0x57 : 0x5757 Register 0x58 : 0x5858 Register 0x59 : 0x5959 Register 0x5A : 0x5A5A Register 0x5B : 0x5B5B Register 0x5C : 0x5C5C Register 0x5D : 0x5D5D Register 0x5E : 0x5E5E Register 0x5F : 0x5F5F Register 0x60 : 0x6060 Register 0x61 : 0x6161 Register 0x62 : 0x6262 Register 0x63 : 0x6363 Register 0x64 : 0x6464 Register 0x65 : 0x6565 Register 0x66 : 0x6666 Register 0x67 : 0x6767 Register 0x68 : 0x6868 Register 0x69 : 0x6969 Register 0x6A : 0x6A6A Register 0x6B : 0x6B6B Register 0x6C : 0x6C6C Register 0x6D : 0x6D6D Register 0x6E : 0x6E6E Register 0x6F : 0x6F6F Register 0x70 : 0x7070 Register 0x71 : 0x7171 Register 0x72 : 0x7272 Register 0x73 : 0x7373 Register 0x74 : 0x7474 Register 0x75 : 0x7575 Register 0x76 : 0x7676 Register 0x77 : 0x7777 Register 0x78 : 0x7878 Register 0x79 : 0x7979 Register 0x7A : 0x7A7A Register 0x7B : 0x7B7B Register 0x7C : 0x7C7C Register 0x7D : 0x7D7D Register 0x7E : 0x7E7E Register 0x7F : 0x7F7F Register 0x80 : 0x8080 Register 0x81 : 0x8181 Register 0x82 : 0x8282 Register 0x83 : 0x8383 Register 0x84 : 0x8484 Register 0x85 : 0x8585 Register 0x86 : 0x8686 Register 0x87 : 0x8787 Register 0x88 : 0x8888 Register 0x89 : 0x8989 Register 0x8A : 0x8A8A Register 0x8B : 0x8B8B Register 0x8C : 0x8C8C Register 0x8D : 0x8D8D Register 0x8E : 0x8E8E Register 0x8F : 0x8F8F Register 0x90 : 0x9090 Register 0x91 : 0x9191 Register 0x92 : 0x9292 Register 0x93 : 0x9393 Register 0x94 : 0x9494 Register 0x95 : 0x9595 Register 0x96 : 0x9696 Register 0x97 : 0x9797 Register 0x98 : 0x9898 Register 0x99 : 0x9999 Register 0x9A : 0x9A9A Register 0x9B : 0x9B9B Register 0x9C : 0x9C9C Register 0x9D : 0x9D9D Register 0x9E : 0x9E9E Register 0x9F : 0x9F9F Register 0xA0 : 0xA0A0 Register 0xA1 : 0xA1A1 Register 0xA2 : 0xA2A2 Register 0xA3 : 0xA3A3 Register 0xA4 : 0xA4A4 Register 0xA5 : 0xA5A5 Register 0xA6 : 0xA6A6 Register 0xA7 : 0xA7A7 Register 0xA8 : 0xA8A8 Register 0xA9 : 0xA9A9 Register 0xAA : 0xAAAA Register 0xAB : 0xABAB Register 0xAC : 0xACAC Register 0xAD : 0xADAD Register 0xAE : 0xAEAE Register 0xAF : 0xAFAF Register 0xB0 : 0xB0B0 Register 0xB1 : 0xB1B1 Register 0xB2 : 0xB2B2 Register 0xB3 : 0xB3B3 Register 0xB4 : 0xB4B4 Register 0xB5 : 0xB5B5 Register 0xB6 : 0xB6B6 Register 0xB7 : 0xB7B7 Register 0xB8 : 0xB8B8 Register 0xB9 : 0xB9B9 Register 0xBA : 0xBABA Register 0xBB : 0xBBBB Register 0xBC : 0xBCBC Register 0xBD : 0xBDBD Register 0xBE : 0xBEBE Register 0xBF : 0xBFBF Register 0xC0 : 0xC0C0 Register 0xC1 : 0xC1C1 Register 0xC2 : 0xC2C2 Register 0xC3 : 0xC3C3 Register 0xC4 : 0xC4C4 Register 0xC5 : 0xC5C5 Register 0xC6 : 0xC6C6 Register 0xC7 : 0xC7C7 Register 0xC8 : 0xC8C8 Register 0xC9 : 0xC9C9 Register 0xCA : 0xCACA Register 0xCB : 0xCBCB Register 0xCC : 0xCCCC Register 0xCD : 0xCDCD Register 0xCE : 0xCECE Register 0xCF : 0xCFCF Register 0xD0 : 0xD0D0 Register 0xD1 : 0xD1D1 Register 0xD2 : 0xD2D2 Register 0xD3 : 0xD3D3 Register 0xD4 : 0xD4D4 Register 0xD5 : 0xD5D5 Register 0xD6 : 0xD6D6 Register 0xD7 : 0xD7D7 Register 0xD8 : 0xD8D8 Register 0xD9 : 0xD9D9 Register 0xDA : 0xDADA Register 0xDB : 0xDBDB Register 0xDC : 0xDCDC Register 0xDD : 0xDDDD Register 0xDE : 0xDEDE Register 0xDF : 0xDFDF Register 0xE0 : 0xE0E0 Register 0xE1 : 0xE1E1 Register 0xE2 : 0xE2E2 Register 0xE3 : 0xE3E3 Register 0xE4 : 0xE4E4 Register 0xE5 : 0xE5E5 Register 0xE6 : 0xE6E6 Register 0xE7 : 0xE7E7 Register 0xE8 : 0xE8E8 Register 0xE9 : 0xE9E9 Register 0xEA : 0xEAEA Register 0xEB : 0xEBEB Register 0xEC : 0xECEC Register 0xED : 0xEDED Register 0xEE : 0xEEEE Register 0xEF : 0xEFEF Register 0xF0 : 0xF0F0 Register 0xF1 : 0xF1F1 Register 0xF2 : 0xF2F2 Register 0xF3 : 0xF3F3 Register 0xF4 : 0xF4F4 Register 0xF5 : 0xF5F5 Register 0xF6 : 0xF6F6 Register 0xF7 : 0xF7F7 Register 0xF8 : 0xF8F8 Register 0xF9 : 0xF9F9 Register 0xFA : 0xFAFA Register 0xFB : 0xFBFB Register 0xFC : 0xFCFC Register 0xFD : 0xFDFD Register 0xFE : 0xFEFE Register 0xFF : 0xFFFF Initializing LCD... Reading ID...0x0000 Loading LCD registers... Filling the screen... Done filling... If your screen filled red, you may be able to use the library at Register 0x00 : 0x0000 Register 0x01 : 0x0101 Register 0x02 : 0x0202 Register 0x03 : 0x0303 Register 0x04 : 0x0404 Register 0x05 : 0x0505 Register 0x06 : 0x0606 Register 0x07 : 0x0707 Register 0x08 : 0x0808 Register 0x09 : 0x0909 Register 0x0A : 0x0A0A Register 0x0B : 0x0B0B Register 0x0C : 0x0C0C Register 0x0D : 0x0D0D Register 0x0E : 0x0E0E Register 0x0F : 0x0F0F Register 0x10 : 0x1010 Register 0x11 : 0x1111 Register 0x12 : 0x1212 Register 0x13 : 0x1313 Register 0x14 : 0x1414 Register 0x15 : 0x1515 Register 0x16 : 0x1616 Register 0x17 : 0x1717 Register 0x18 : 0x1818 Register 0x19 : 0x1919 Register 0x1A : 0x1A1A Register 0x1B : 0x1B1B Register 0x1C : 0x1C1C Register 0x1D : 0x1D1D Register 0x1E : 0x1E1E Register 0x1F : 0x1F1F Register 0x20 : 0x2020 Register 0x21 : 0x2121 Register 0x22 : 0x2222 Register 0x23 : 0x2323 Register 0x24 : 0x2424 Register 0x25 : 0x2525 Register 0x26 : 0x2626 Register 0x27 : 0x2727 Register 0x28 : 0x2828 Register 0x29 : 0x2929 Register 0x2A : 0x2A2A Register 0x2B : 0x2B2B Register 0x2C : 0x2C2C Register 0x2D : 0x2D2D Register 0x2E : 0x2E2E Register 0x2F : 0x2F2F Register 0x30 : 0x3030 Register 0x31 : 0x3131 Register 0x32 : 0x3232 Register 0x33 : 0x3333 Register 0x34 : 0x3434 Register 0x35 : 0x3535 Register 0x36 : 0x3636 Register 0x37 : 0x3737 Register 0x38 : 0x3838 Register 0x39 : 0x3939 Register 0x3A : 0x3A3A Register 0x3B : 0x3B3B Register 0x3C : 0x3C3C Register 0x3D : 0x3D3D Register 0x3E : 0x3E3E Register 0x3F : 0x3F3F Register 0x40 : 0x4040 Register 0x41 : 0x4141 Register 0x42 : 0x4242 Register 0x43 : 0x4343 Register 0x44 : 0x4444 Register 0x45 : 0x4545 Register 0x46 : 0x4646 Register 0x47 : 0x4747 Register 0x48 : 0x4848 Register 0x49 : 0x4949 Register 0x4A : 0x4A4A Register 0x4B : 0x4B4B Register 0x4C : 0x4C4C Register 0x4D : 0x4D4D Register 0x4E : 0x4E4E Register 0x4F : 0x4F4F Register 0x50 : 0x5050 Register 0x51 : 0x5151 Register 0x52 : 0x5252 Register 0x53 : 0x5353 Register 0x54 : 0x5454 Register 0x55 : 0x5555 Register 0x56 : 0x5656 Register 0x57 : 0x5757 Register 0x58 : 0x5858 Register 0x59 : 0x5959 Register 0x5A : 0x5A5A Register 0x5B : 0x5B5B Register 0x5C : 0x5C5C Register 0x5D : 0x5D5D Register 0x5E : 0x5E5E Register 0x5F : 0x5F5F Register 0x60 : 0x6060 Register 0x61 : 0x6161 Register 0x62 : 0x6262 Register 0x63 : 0x6363 Register 0x64 : 0x6464 Register 0x65 : 0x6565 Register 0x66 : 0x6666 Register 0x67 : 0x6767 Register 0x68 : 0x6868 Register 0x69 : 0x6969 Register 0x6A : 0x6A6A Register 0x6B : 0x6B6B Register 0x6C : 0x6C6C Register 0x6D : 0x6D6D Register 0x6E : 0x6E6E Register 0x6F : 0x6F6F Register 0x70 : 0x7070 Register 0x71 : 0x7171 Register 0x72 : 0x7272 Register 0x73 : 0x7373 Register 0x74 : 0x7474 Register 0x75 : 0x7575 Register 0x76 : 0x7676 Register 0x77 : 0x7777 Register 0x78 : 0x7878 Register 0x79 : 0x7979 Register 0x7A : 0x7A7A Register 0x7B : 0x7B7B Register 0x7C : 0x7C7C Register 0x7D : 0x7D7D Register 0x7E : 0x7E7E Register 0x7F : 0x7F7F Register 0x80 : 0x8080 Register 0x81 : 0x8181 Register 0x82 : 0x8282 Register 0x83 : 0x8383 Register 0x84 : 0x8484 Register 0x85 : 0x8585 Register 0x86 : 0x8686 Register 0x87 : 0x8787 Register 0x88 : 0x8888 Register 0x89 : 0x8989 Register 0x8A : 0x8A8A Register 0x8B : 0x8B8B Register 0x8C : 0x8C8C Register 0x8D : 0x8D8D Register 0x8E : 0x8E8E Register 0x8F : 0x8F8F Register 0x90 : 0x9090 Register 0x91 : 0x9191 Register 0x92 : 0x9292 Register 0x93 : 0x9393 Register 0x94 : 0x9494 Register 0x95 : 0x9595 Register 0x96 : 0x9696 Register 0x97 : 0x9797 Register 0x98 : 0x9898 Register 0x99 : 0x9999 Register 0x9A : 0x9A9A Register 0x9B : 0x9B9B Register 0x9C : 0x9C9C Register 0x9D : 0x9D9D Register 0x9E : 0x9E9E Register 0x9F : 0x9F9F Register 0xA0 : 0xA0A0 Register 0xA1 : 0xA1A1 Register 0xA2 : 0xA2A2 Register 0xA3 : 0xA3A3 Register 0xA4 : 0xA4A4 Register 0xA5 : 0xA5A5 Register 0xA6 : 0xA6A6 Register 0xA7 : 0xA7A7 Register 0xA8 : 0xA8A8 Register 0xA9 : 0xA9A9 Register 0xAA : 0xAAAA Register 0xAB : 0xABAB Register 0xAC : 0xACAC Register 0xAD : 0xADAD Register 0xAE : 0xAEAE Register 0xAF : 0xAFAF Register 0xB0 : 0xB0B0 Register 0xB1 : 0xB1B1 Register 0xB2 : 0xB2B2 Register 0xB3 : 0xB3B3 Register 0xB4 : 0xB4B4 Register 0xB5 : 0xB5B5 Register 0xB6 : 0xB6B6 Register 0xB7 : 0xB7B7 Register 0xB8 : 0xB8B8 Register 0xB9 : 0xB9B9 Register 0xBA : 0xBABA Register 0xBB : 0xBBBB Register 0xBC : 0xBCBC Register 0xBD : 0xBDBD Register 0xBE : 0xBEBE Register 0xBF : 0xBFBF Register 0xC0 : 0xC0C0 Register 0xC1 : 0xC1C1 Register 0xC2 : 0xC2C2 Register 0xC3 : 0xC3C3 Register 0xC4 : 0xC4C4 Register 0xC5 : 0xC5C5 Register 0xC6 : 0xC6C6 Register 0xC7 : 0xC7C7 Register 0xC8 : 0xC8C8 Register 0xC9 : 0xC9C9 Register 0xCA : 0xCACA Register 0xCB : 0xCBCB Register 0xCC : 0xCCCC Register 0xCD : 0xCDCD Register 0xCE : 0xCECE Register 0xCF : 0xCFCF Register 0xD0 : 0xD0D0 Register 0xD1 : 0xD1D1 Register 0xD2 : 0xD2D2 Register 0xD3 : 0xD3D3 Register 0xD4 : 0xD4D4 Register 0xD5 : 0xD5D5 Register 0xD6 : 0xD6D6 Register 0xD7 : 0xD7D7 Register 0xD8 : 0xD8D8 Register 0xD9 : 0xD9D9 Register 0xDA : 0xDADA Register 0xDB : 0xDBDB Register 0xDC : 0xDCDC Register 0xDD : 0xDDDD Register 0xDE : 0xDEDE Register 0xDF : 0xDFDF Register 0xE0 : 0xE0E0 Register 0xE1 : 0xE1E1 Register 0xE2 : 0xE2E2 Register 0xE3 : 0xE3E3 Register 0xE4 : 0xE4E4 Register 0xE5 : 0xE5E5 Register 0xE6 : 0xE6E6 Register 0xE7 : 0xE7E7 Register 0xE8 : 0xE8E8 Register 0xE9 : 0xE9E9 Register 0xEA : 0xEAEA Register 0xEB : 0xEBEB Register 0xEC : 0xECEC Register 0xED : 0xEDED Register 0xEE : 0xEEEE Register 0xEF : 0xEFEF Register 0xF0 : 0xF0F0 Register 0xF1 : 0xF1F1 Register 0xF2 : 0xF2F2 Register 0xF3 : 0xF3F3 Register 0xF4 : 0xF4F4 Register 0xF5 : 0xF5F5 Register 0xF6 : 0xF6F6 Register 0xF7 : 0xF7F7 Register 0xF8 : 0xF8F8 Register 0xF9 : 0xF9F9 Register 0xFA : 0xFAFA Register 0xFB : 0xFBFB Register 0xFC : 0xFCFC Register 0xFD : 0xFDFD Register 0xFE : 0xFEFE Register 0xFF : 0xFFFF

 

slider
Offline
Зарегистрирован: 17.06.2014

ywor , дисп либо не подключен , либо неправильно подключен, в скетче написано к каким пинам надо подключить. 

// при вставке кода, в том же окне нажмите следующую вкладку , там есть "сворачивать код по умолчанию" . у вас еще доступно изменить к своему сообщению.

Comondante
Offline
Зарегистрирован: 24.01.2017

В продолжение поста о дисплее из ктиайского mp3 плеера с надписью на шлейфе L 1209  T-177B49-A-5

и процессором  в плеере ATJ2117.

Методом научного тыка были определены некоторые регистры на которые откликается дисплей

void loop() {

lcdWriteCommand(0x38);  не понял что .На дисплея как бы меняется контрастность

lcdWriteCommand(0x39);тоже самое
lcdWriteCommand(0x28);//выкл.дисп.dispoff
cdWriteCommand(0x29);//вкл.дисп.dispon
lcdWriteCommand(0x10);//slipin    вроде как уходит в сон либо выкл.
lcdWriteCommand(0x11);//slipout вроде как выход из сна либо вкл.
}
Вопрос.Народ в каком регистре дисплея лежит id ???
slider,не могли бы вы выложить вашу читалку ID на 8 бит?
В UTFT.cpp пока не разобрался там всё так навалено в кучу.
Может есть у кого наработки как завести displey128X160  по 8 битной схеме.А то везде SPI/
 
Comondante
Offline
Зарегистрирован: 24.01.2017

slider,

 Подскажитек как пользоваться этой либой UTFT.cpp

Какие там данные выставить в  UTFT myGLCD(ILI9325C,38,39,40,41);для uno.Чёт не разберусь.

slider
Offline
Зарегистрирован: 17.06.2014

Comondante пишет:

slider,

 Подскажитек как пользоваться этой либой UTFT.cpp

Какие там данные выставить в  UTFT myGLCD(ILI9325C,38,39,40,41);для uno.Чёт не разберусь.

ответ ранее #239  http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=4#comment-254715, прочтите внимательней и делайте .

разве что добалю, чтоб долго не думать какие кто , просто пробуете поочередно от 0 до 31  , с задержкой 3-5секунд после загрузки скетча

для UNO будет так:

myGLCD(0,A5,A4,A3,A2);   // это   (номер инита утфт, RS, WR, CS, RST ).      

.....

myGLCD(31,A5,A4,A3,A2);

по читалке пока больше не запаривайтесь (ее только для ардуины Мега делал), просто переберите иниты , с большой вероятностью найдете подходящий.

Ведь он у вас подключен к UNO . разве что шину данных диспа DB0..DB7 переключите с распиновки адафруита ( D 89234567 ) на распиновку утфт ( D 01234567 ) . и на RD подать лог.1

Comondante
Offline
Зарегистрирован: 24.01.2017

Slider,DB0...DB7 были подключены согласно utft -ной распиновки для uno.RD посажен на +5в.

myGLCD(0,A5,A4,A3,A2);   // это   (номер инита утфт, RS, WR, CS, RST ).      

.....

myGLCD(31,A5,A4,A3,A2);

преребрал все значения от 0..31.

библа memorysaver.h стандарная ничего не раскоментывал памяти хватило.

Но ничего не получилось.Экран даже не моргнул.

Что ещё можно попробывать??

 

dr-baks
Offline
Зарегистрирован: 26.01.2017

slider  Вы не могли выложить схему подключения программы для определения ID контроллера дисплея а то не могу понять  выводы (дисплея желательно подключать через резист. делители к примеру 10к+22к , на крайняк тупо через 10к,) к каким выводам подпаивать резисторы и если шилд к нему тоже надо подпаивать резисторы.На дисплее поставить резистор 3,3к между VO и VSS(+) , RW замкнуть на VSS(+), подключить A и K к VSS(+) и VDD Это правильная распиновка как на датише так Vss это ( -) а Vdd это (+).

ywor
Offline
Зарегистрирован: 16.01.2017

ValGor пишет:

Да это схема разьема телефона. 

сейчас сделаю платку для дисплея и в перед 


Дай лаяут платы.

dr-baks
Offline
Зарегистрирован: 26.01.2017

Подскажите пожалуйста что бы определить id дисплея как я понял с описания slider его нужно выпаять а на готовом шильде он не определиться.И как На RD подать  лог.1 это подать на него питание или это программно. Не судите строго я только учусь работать с ардуино

Gavrik1980
Offline
Зарегистрирован: 25.01.2017

Доброго времени суток, друзья! Прошу помощи! Есть экранчик от "китайца" TFT8K2108FPC-A2-E  (ILI9481 ?  или SSD1289 ? , информация из глубин интернета. Не знаю кому верить.). Есть две китайские ардуинки UNO и MEGA, хочу их вместе подружить), но безрезультатно. Просто есть нестыковочка с распиновкой. В распиновке шлейфа , которую я нашел (не уверен, что от него) 2 контакта  IM0 и IM1?  а в даташите (ILI9481) их 3, IM0, IM1 и IM2. Может кто сталкивался с таким экранчиком.