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

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

Добрый день всем!

Вопрос, немного, не по теме, но всё же: возможно ли подключить к arduino дисплей от iPAD 2 ?

Такой хороший дисплей, 10", и жаль просто выбросить, а валяется без дела.

 

 

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

Buzzer2010 пишет:

Добрый день всем!

Вопрос, немного, не по теме, но всё же: возможно ли подключить к arduino дисплей от iPAD 2 ?

Такой хороший дисплей, 10", и жаль просто выбросить, а валяется без дела.

satelit пишет:

у меня меньше пинов, 10 штук .  дисплей от айфона 5+++( татч косил, ну я его и списал на запчасти).

пины просто подписаны 1.......10,

может кто даст в какую сторону искать и как прозвонить пины

http://vrtp.ru/index.php?showtopic=1120&st=2310&#entry477163

ничего с ним не сделаете, в смысле напрямую не подключите к arduino.  //как трудоемко изучение подобных дисплеев - видос Reverse Engineering изучения дисплея iPod Nano 6 https://youtu.be/7TedIzmguP0

В теории:

1. надо иметь к нему pdf (но документации врятли найти даже на широкораспространённые средние и большие дисплеи к подобным устройствам) .

2. знать какая  микросхема - сериализер подойдёт (чтобы преобразовать шину дисплея LVDS , MIPI DSI  в параллельную , и то это микросхема по отдельности может стоить дороже дисплея, да и припаять её не припаяете - корпус в основном BGA ).  

3. "видеокарта" (видеоконтроллер-очень быстрая ПЛИС с большой видеопамятью)

и потом уже только ардуино . 

Правда, есть ещё такой дорогой проектик переходник-dsi , -  MIPI DSI Display Shield , контроллер-шилд для уно, чтобы подключить к arduino дисплей от Iphone , Galaxy S3 S4,... Собирается народ на предзаказ:  http://doodle.com/poll/uv283rp366prppnt  

источник https://hackaday.io/project/364-mipi-dsi-display-shieldhdmi-adapter , но непонятно с возможностью его продажи и ценой 100$-275$. http://creotech.pl/en/produkt/mipi-dsi-display-shieldhdmi-adapter-2/ . На гитхабе схемы его, печатки, прошивки, схемы распиновок некоторых DSI дисплеев: https://github.com/twlostow/dsi-shield . Вот бы китайцы делали что нибудь подобное - было бы доступно.

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

 

// Ещё дело если у вас микроконтроллер как в планшетнике, в нём всё это уже внутри. И у вас есть их описание , возможно написать типа своей оболочки ардуино IDE, это вам тоже не по силам, раз задаёте такой вопрос.

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

Спасибо за ответ. Значит не буду и голову морочить.

Вот встречал другую интересную тему у вас, которая почти подходит под топик:

http://arduino.ru/forum/programmirovanie/biblioteka-dlya-lcd-tft-module

Кто-нибудь, с тех пор, пытался приконнектить этот дисплей к ардуино?

Вот его даташит: http://www.cec-mc.ru/data/files/File/PDF/EDMMRG2KAS.pdf

 

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

Зачем вам это? Какая цель интереса? У вас есть десяток этих очень маленьких дисплеев? Зачем такие малипусенькие? . Чтобы их пытаться законнектить для дела, непохоже, невериться. Тогда не имеет смысла и пытаться . У меня тож есть  RGB маленькие и большие дисплеи. Для них нужен отдельный очень быстрый контроллер с видеопамятью, чтоб они не были нагрузкой для ардуины. Даже и мысли не возникало на маленькие тратить время. У вас оно есть? Тогда потратьте - подключите. Пдф на nt7753e в сети есть, что вы указали пдф (судя по нему это простой диспл со своей видеопамятью,) , там есть распиновка и инит. Все есть, подключай нехочу! Мне непонятен ваш интерес, у вас есть много этих дисплеев? Тогда подключайте, все уже разжовано. На крайняк есть рядом стоящие контроллеры, на них можно все поискать.

Есть куда большие дисплеи - стоят копейки. Если вам надо создать большое количество устройств, то на алиэкспресс есть бо'льшие дисплели 2.2" , стоят около 100р , покупайте хоть 1 хоть 1000 ( будет вообще невероятно дешево, поищите) . - на них продавцы дают распиновку и широкораспространенный контроллер. По вашему желанию поставят другой в теже деньги.

  это вам не случаи где нет распиновки , пдф , инита - и то это решаемо, опыт тому выше. Все так просто, даже не приходится прибегать к сканеру, чтобы он со сканировал общение дисплея и устройства, дабы получить инит и команды вывода. Иниты можно подбирать из тех что есть, много похожих, зачастую хватает 2-3 команды (вывод из сна, включение, запись ), все остальное уточнения и украшательства.

Если нужен самый дешевый так они есть почти в любом магазе по запчастям к сотовым, новые 50-100р ( к примеру нокиа 1616 и очень много от других моделей - изучен, цветной, мало выводов, легко паябелен ) . Есть и большие изученные. Дорога до магаза дороже чем сам дисплей, смешно.

Если нужен срочно и большой, так в городе всяко есть кто барыжит ардуинной электроникой, в1,5-2 раза дороже, зато не ждать месяц с Али.

Lelick
Offline
Зарегистрирован: 07.02.2016

Buzzer2010, Можно попробовать из такого дисплея "10" сделать небольшой телик и много другое в общем испоьзовать как монитор, при этом уйдет всего 15-20 долларов на LCD контролер... вот пример https://www.youtube.com/watch?v=KE0nH3l8kVU поищите еще информации на эту тематику и я думаю вы найдете применение своему дисплею... а может и не повезет! но будем надеяться на лучшее :))))

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

2 slider: Цель интереса: смотря что называть делом. Сейчас у меня только одно дело: получше разобраться в аппаратной и програмной частях ардуино. А тут - все средства хороши. Ну и конечно - валяется такой дисплей рядом с айпадовским. Так что это вопрос больше учебный, нежели практический. С 1602 всё и так понятно. С 5110 - тоже. Почему бы не потренироваться на чем-то нестандартном? Тем более что и практически он раз в пять больше дисплея на панели приборов у моего авто. Так что планы на него у меня, как раз, есть. И спасибо за то что укрепили мою уверенность в собственных силах после прочтения пдф-а.

2 Lelick: Отличный контроллер! Это такой универсальный контроллер, к которому можно подключать разные дисплеи? Надо поинтересоваться, а то я, признаться, первый раз о таком услышал. Интересно можно ли такой приобрести не забредая в Китай?

Уже и нашёл. Называется "Универсальный скалер", стоит 10 долларов, и никакого Китая... Благодарю за инфу!

megabotan
Offline
Зарегистрирован: 01.04.2016

Всем привет.

Расскажите, какая существенная разница между HX8352A и HX8352B? Заказал на свою голову на али дисплей, продавец скинул доку, где указано что внутри установлен HX8352B. На этот контроллер я так и не смог найти даташит, везде есть только на "А" версию. В интеренете практически нет инициализации этого экрана, кроме как тут на главной странице. Китаец какой-то несговорчивый в этом плане. Инит от А не проходит, а тот что на первой странице хоть как-то показывает что не всё потеряно - экран заполняется цветным шумом, а рисование происходит через пиксел. Экран точно не битый, потому как у меня их три и ведут они себя одинаково.

Может у кого-то есть обьяснение и инициализация этого экрана на таком контроллере? 16битная шина. Я хоть и подключаю его к stm32 через fsmc, но суть думаю должна быть одна.

Спасибо.

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

megabotan пишет:

..... На этот контроллер я так и не смог найти даташит, везде есть только на "А" версию. В интеренете практически нет инициализации этого экрана, кроме как тут на главной странице. .......

как нет в инете даташита? вроде не бот. 

вот поиск в яндексе HX8352B https://yandex.ru/search/?text=HX8352B&lr=66

выдает 2 даташита (порстарей http://aitendo3.sakura.ne.jp/aitendo_data/product_img/lcd/tft2/4LCD/32_8352/HX8352-B01_T_DS_preliminary_v01_090706_TCL.pdf и поновей http://www.allshore.com/pdf/HX8352-B01_DS_v02.01_20110802.pdf )

разницу с HX8352A можете увидеть по даташитам.

инит да, пришлось очень долго выкапывать из инета , и здесь его выкладывал http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov#comment-96288, он рабочий.  А также переделал его под UTFT для atmega, ссылка в том же сообщении.

// ко любым микроконтроллерам инициализация таже, хоть 51 хоть STM. Разве что, если другая цветность, переворачивание картинки,  кодирование цветности, .... передача не по 8/9/16/18 бит или SPI, а по RGB , то да, надо прочитав даташит подкорректировать ответственные за это регистры.

и вот вроде есть тема  STM32 + FSMC   http://forum.easyelectronics.ru/viewtopic.php?f=35&t=8232

megabotan
Offline
Зарегистрирован: 01.04.2016

2Slider:

Подключение дисплея и настройка переферии контроллера не проблема. Проблема как раз в ините.

Может кто-нибудь подскажет что именно в ините менять под 16бит шину и цвет?

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

только что же об этом написал.

Еще раз, для этого в ней НИЧЕГО МЕНЯТЬ НЕ НАДО ! (ненужно) . она одинакова для 8 и 16ть бит и др. битностей.  и метод цветности однаков для UTFT , Adafruit, и других. Изучите же наконец даташит, все вопросы отпадут.  

// неинформативные сообщения не пишите.

slider
Offline
Зарегистрирован: 17.06.2014
№15  
2,8"  320x240 дисплей Alcatel OT-806  - CT028TN09 V.7 ( ILI9338 ILI9338B ) , tft lcd 39pin , 4led
№16  
  OT-891  - CT028TN09 V.6  ( HX8347D  )
 
Широкие легко паябельные шлейфы:
 
 
Распиновка:
GND
A
K1
K2
K3
K4
GND
VCC
VCC
GND
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
DB8
DB9
DB10
DB11
DB12
DB13
DB14
DB15
DB16
DB17
GND
RD
WR
DC
CS
nc (выход чего-то: te или pwm_out)
RESET
GND
VCC
IM3
IM0

библиотеки и даташиты , заготовлены, те что и в предыдущем исследовании http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-175988 .

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

№17

Есть предположение что и в 2.8" ALCATEL OT-891 OT-908 OT-910 OT-980 применяются теже контроллеры. (только этих дисплеев почти нет в моем городе)  и шлейф поудобней паять чем OT-905  OT-890 .

//это сообщениене не цитировать, и  не отвечать,  инфу буду дополнять по мере свободного времени и наличия этих дисплеев

 

releyshic
Offline
Зарегистрирован: 20.11.2015

Привет! Чуть офтоп. Непонял как писать Пользователям ЛС

Гдето на форуме видел вскользь что на Ардуиновких дисплеях такого рода  http://zelectro.cc/tft_lcd_arduino

защита с завода стандартная частота обновления экрана вроде 60Гц и её как то можно увеличить программно. Не знаешь как?

найти не могу, вот как не надо было нашёл, а как надо )))

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

Смотрите в даташит настройки регистра FRAME CONTROL (в ILI9341 это B1).

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

releyshic пишет:

Привет! Чуть офтоп. Непонял как писать Пользователям ЛС

Гдето на форуме видел вскользь что на Ардуиновких дисплеях такого рода  http://zelectro.cc/tft_lcd_arduino

защита с завода стандартная частота обновления экрана вроде 60Гц и её как то можно увеличить программно. Не знаешь как?

найти не могу, вот как не надо было нашёл, а как надо )))

млин, чтож заоблачного? Diger67 вам ответил в параллельной ветке, даже номер регистра здесь нашел. Даже непонятно как ещё то разжевать.

 Открываете либу адафруита в любом редакторе, или правой кнопкой и "изменить" , нажимаете ctrl+F (поиск)  , вбиваете B1 , находите где он или во что переименовывается(в разных либах адафруита сделано по разному). Следующее за его вызовом - это его данные(параматры), их и изменяете согласно даташиту. Виндовский калькулятор 'Вид'-'Программист' легко переводит двоичный код из даташита в шестнадцатеричный. Можно и в двоичном оставить , (пример 0x05=0b00000101  ) .

// в даташите искать по слову frame  или  frequency . Или как уже нашли  B1h (если это  ili9341 ili9488 ,... ). 

//// вообще редко приходится менять частоту, обычно в инитах нормальные настройки, разве что перевернуть картинку если дисплей перевернут. Возможно у вас другой контроллер в дисплее стоит, немного схожий, поэтому нужна более подходящая инициализация. Как считать его ID , здесь в последних сообщениях http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-174100 (при сноровке можно скетч и на УНО переписать). А так, для чтения ID понадобиться Мега и проводки мама-папа. (адафруитская читалка не все регистры читает)

////// лички здесь нет . и зачем вы нажали на последнее сообщение "Ответить"? предупреждал же что этого не надо делать. Теперь я немогу его отредактировать.  Внизу страницы для ответа уже есть окно  ввода текста "Отправить комментарий", и ниже кнопка "Сохранить".

Anton V
Offline
Зарегистрирован: 28.04.2016

День добрый, подскажите как подключить к arduino micro и инициализировать LCD дисплей по parallel RGB или Serial RGB интерфейсу.
Мануал на дисплей LQ035NC111:
http://www.buydisplay.com/download/manual/ER-TFT035-3_Datasheet.pdf
http://eleparts.co.kr/data/design/product_file/Hoon/LQ035NC111_V-2.1_CMI...

Драйвер дисплея HX8238:
http://www.buydisplay.com/download/ic/HX8238.pdf

Инфа по ардуинке:
https://cdn.sparkfun.com/assets/9/c/3/c/4/523a1765757b7f5c6e8b4567.png
https://www.arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf

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

Anton V пишет:

День добрый, подскажите как подключить к arduino micro и инициализировать LCD дисплей по parallel RGB или Serial RGB интерфейсу.
Мануал на дисплей LQ035NC111:
http://www.buydisplay.com/download/manual/ER-TFT035-3_Datasheet.pdf
http://eleparts.co.kr/data/design/product_file/Hoon/LQ035NC111_V-2.1_CMI...

Драйвер дисплея HX8238:
http://www.buydisplay.com/download/ic/HX8238.pdf

Инфа по ардуинке:
https://cdn.sparkfun.com/assets/9/c/3/c/4/523a1765757b7f5c6e8b4567.png
https://www.arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf

Никак, упущен еще модуль видеоОЗУ к этому дисплею, возможно на ssd1963, RA8875.  Дешевле выбрать другой дисплей, в соседней теме про 3.5" их полно всяких.

slider
Offline
Зарегистрирован: 17.06.2014
№17  большой дисплейчик, доступен в некоторых магазах от 310руб, пока ещё в приличных количествах.
3.5"  480x320  дисплей EXPLAY N1  - TXDT350DH-142 8357DA142  8357DA142 TXDT350SH-107 ( подходят иниты от ILI9488 HX8357D,... ) tft lcd 39pin  6led  8/9/16/18bit, возможно аналоги из TXDT350DH  TXDT350SH
 
Распиновку определил проследив и разрисовав дорожки , подсмотрев  в даташите  предполагаемого 480x320 ili9488 распиновку кристалла.
nc
+
+
CS
DC
WR
RD
RST
nc
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
DB8
DB9
DB10
DB11
DB12
DB13
DB14
DB15
DB16
DB17
+
IM1
IM0
-
K5
K4
K3
K2
K1
nc
A
-
На 16бит, от UTFT, он завелся на нескольких инитах. На 8бит только показывал цветной снег как в #59 сообщении http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-168103 Запустить  помогла только переделка UTFT ili9327_8bit turbo . + выкинул лишние пины из библиотеки и аппаратно: RD  на + , CS на - , RESET на REST пин ардуино . Получилось дисплей занимает всего 10пинов. После изучения дисплея , переделал для UNO. Вот такой шилдище получился:
    
Длинные пины, чтоб под него еще какую-нибуть плату установить на обычных пинах. типа самодельного сенсор шилда с разъемами.
Опытным путем получился самый короткий инит чтоб завести дисплей:
	LCD_Write_COM(0x11); //Exit Sleep
	delay(100);

// от ili9488  Memory Access Control (36h) 
	LCD_Write_COM(0x36);  // очень важен, иначе перевернуто и цветопередача не та
	LCD_Write_DATA(0x48);

// от ili9488 Interface Pixel Format (3Ah)
	LCD_Write_COM(0x3A);  // очень важен, иначе черно-белые кракозябры
	LCD_Write_DATA(0x05);

	LCD_Write_COM(0x29); //display on      
	LCD_Write_COM(0x2C); //display on

setxy:

        LCD_Write_COM(0x2a);
 	LCD_Write_DATA(x1>>8);
 	LCD_Write_DATA(x1);
 	LCD_Write_DATA(x2>>8);
 	LCD_Write_DATA(x2);
 	LCD_Write_COM(0x2b);
 	LCD_Write_DATA(y1>>8);
 	LCD_Write_DATA(y1);
 	LCD_Write_DATA(y2>>8);
 	LCD_Write_DATA(y2);
 	LCD_Write_COM(0x2c);

UTFT: Вот переделал либу под него с вырезанным лишним https://yadi.sk/d/pN3mCHAorYPGG , пример выбирать UTFT\examples\Arduino (AVR)\UTFT_Demo_480x320  , дополнительные разные иниты от ILI9488 в папке libraries\UTFT\tft_drivers\ili9327_8 .

Пытал его еще завести его на Adafruit либе, методика обычная , принудительно указываем тип контроллера

uint16_t identifier = 0x9488;     // tft.readID();

, запустился на ILI9488 HX8357D ,... :

Adafruit: Одна из первых либ адафруита под него  (там всего 2 инита, что эномит около 0,5 кбайта) : https://yadi.sk/d/od01lfh-rYPRC , пример  Adafruit_TFTLCD\examples\graphicstest    // с этой либы лишние пины не вырезал, какт то интереса небыло, мож потом когда нибудь. 

С чтением ID получалась непонятка, читалка выдала:

               1p 2p 3p 4p 5p 6p 7p 8parameter(byte)
      
register 00    00 00 00 00 00 00 00 00  ***
      
register 00    00 00 00 00 00 00 00 00  ***
register 01    00 00 00 00 00 00 00 00
register 02    00 00 00 00 00 00 00 00
register 03    00 00 00 00 00 00 00 00
register 04    00 00 80 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    00 00 00 00 00 00 00 00
register 09    00 00 61 00 00 00 00 00
register 0A    00 08 08 08 08 08 08 08
register 0B    00 00 00 00 00 00 00 00
register 0C    00 06 06 06 06 06 06 06
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    00 00 00 00 00 00 00 00
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    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 00 00 00 00 00 00
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 18 EC E4 C4 80 18 D0
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 18 EC E4 C4 80 18 D0
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    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 47 47 47 47 47 47 47
register 71    00 CF CF CF CF CF CF CF
register 72    00 4D 4D 4D 4D 4D 4D 4D
register 73    00 CB CB CB CB CB CB CB
register 74    00 CA CA CA CA CA CA CA
register 75    00 27 27 27 27 27 27 27
register 76    00 EF EF EF EF EF EF EF
register 77    00 52 52 52 52 52 52 52
register 78    00 82 82 82 82 82 82 82
register 79    00 FE FE FE FE FE FE FE
register 7A    00 47 47 47 47 47 47 47
register 7B    00 A7 A7 A7 A7 A7 A7 A7
register 7C    00 EF EF EF EF EF EF EF
register 7D    00 D6 D6 D6 D6 D6 D6 D6
register 7E    00 C5 C5 C5 C5 C5 C5 C5
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 FF 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 FF 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 80 80 80 80 80 80 80  ***
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    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

т.е. в 04h -  00 80 00   ,   DAh - 00   DBh - 80   DCh - 00 , к примеру там должно лежать ID  9488 . По даташиту HX8357D говорится что ID должно лежать , а что именно  нигде не сказано ! вопрос !   У Адафруита в последней либе методика его распознавания: в регистр B6h  (HX8357D_SETCOM  0xB6) закидывается 0xFF8357 , далее задержка delay(300); , далее чтение с D0h первых 3х параметров , если прочиталось 99 00 00  - то это HX8357D  (непонятно зачем такой изврат придумал производитель, разве что избавится от подделок ) 

// 02.2021 продолжение по подключению его по 4м проводам SPI , в сообщении #3362

 
releyshic
Offline
Зарегистрирован: 20.11.2015

forfrends пишет:

При попытке прошить ДУЕ выдает ошибку:

Test_tft.ino: In function 'void draw()':
Test_tft:31: error: 'PORTA' was not declared in this scope
Test_tft:31: error: 'PORTC' was not declared in this scope
Test_tft:37: error: 'DDRA' was not declared in this scope
Test_tft:37: error: 'DDRC' was not declared in this scope
'PORTA' was not declared in this scope

компилятор тебе говорит что нет у тебя

PORTA PORTC

я не знаю как там с портами на ДУЭ

ТЫ точно не забыл нигде скобку закрыть, а то похоже

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

На DUE стоит ARM. Там нет никаких DDR и PORT, там совсем другие регистры и другая работа с портами (GPIO).

releyshic
Offline
Зарегистрирован: 20.11.2015

slider пишет:

 Открываете либу адафруита в любом редакторе, или правой кнопкой и "изменить" , нажимаете ctrl+F (поиск)  , вбиваете B1 , находите где он или во что переименовывается(в разных либах адафруита сделано по разному). Следующее за его вызовом - это его данные(параматры), их и изменяете согласно даташиту. Виндовский калькулятор 'Вид'-'Программист' легко переводит двоичный код из даташита в шестнадцатеричный. Можно и в двоичном оставить , (пример 0x05=0b00000101  ) .

как ни странно нашёл быстро ))

slider пишет:

// в даташите искать по слову frame  или  frequency . Или как уже нашли  B1h (если это  ili9341 ili9488 ,... ).

на самом деле ничего путного так не нашёл или вообще ничего, поэтому выбрал частоту 50Гц, резульат хороший, мерцания нет, а то аж мигал ))

Спасибо ))

А нет в библиотеке чегото вроде Буфера кадра? Чтобы не весь дисплей перерисовывать или очищать то что нарисовал, а именно объекты стирать (линии и прочее)

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

releyshic пишет:

.....

Спасибо ))

А нет в библиотеке чегото вроде Буфера кадра? Чтобы не весь дисплей перерисовывать или очищать то что нарисовал, а именно объекты стирать (линии и прочее)

 В библиотеках нет. (устройства Nextion не рассматриваем). Такие дела решается в скетче: 

Если кривая линия из точек (или мелкие объекты) , то создать массив x,y для её запоминания и последующего стирания по этому массиву. (если к примеру осциллограф - то в цикл стирания можно добавить ещё условия, что если x,y такие.. ,то потом восстановитиь координатную сетку - изменением цвета затирающего пикселя на цвет координатной сетки).  //для экономии оперативной памяти, если размах объектов не превышает 255 пикселей , то лучше в массиве  вместо типа переменных  int применять тип byte .

 Если это емкие объекты , то можно их выделить в функции , и изменять цвет перед их вызовом, т.о. рисовать их или закрашивать.

Pevek
Offline
Зарегистрирован: 15.05.2016

slider, С Вами можно связаться по email или по skype?

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

Pevek пишет:

slider, С Вами можно связаться по email или по skype?

Да, пока ещё можно, 

////Чтоб ветку не засорять, можете на емайл написать   sеgun @ яндekс . ру  (не копироавать, а переписать все буквы латиницей)

vlad1451
Offline
Зарегистрирован: 09.11.2015

slider, обращаюсь персонально к Вам, так как Вы моя последняя надежда запустить дисплей от китайского i9500. Полной информации по дясплею не нашол. Сам аппарат не работает, поэтому снять анализатором инициализацию не получится, тем более что не извесна распиновка шлейфа. После замерров чипа удалось ориентировочно определить контроллер - HX8357-D. Даташит на данный контроллер есть, но почему то страница 15, на которой должна быть распиновка контроллера пустая, поэтому прозвонить шлейф не получится.

По разводке платы удалось вычислить часть контактов:
1,10,17,22 - корпус
2-9 - скорее всего шина данных (D0-D7)
11-16 - скорее всего управление (CS,RES,DC,CLK ...)
18-21 - тачскрин
23,24 - скорее всего питание
25 - "+" подсветки
26-33 - "-" подсветки

Вы насколько я понял, занимались дисплеями на данном контроллере. Может что то подобное встречалось?

slider
Offline
Зарегистрирован: 17.06.2014
vlad1451, можно было фото с другой стороны для интереса, там могут быть надписи на шлёйфе и железке. Судя по taobao.com на китайские i9500 ставят разные дисплеи.  Попробуйте даташит HX8357-B , там есть распиновка кристалла на 15 - 16 стр. ,или сравните с даташитом ILI9488 , там тоже есть распиновка.  
 Да и как показала практика, можно распиновку приблизительно определить самому, как вы и сделали, если что неизвестные поменять местами, так читалкой ID в большинстве случаев можно вычитать модель контроллера.
  Таки в чём проблема? или припаиваете по предполагаемой вами распиновке и скармливаете иниты пока не заведется.скорее всего подойдёт от HX8357-D , ili9488 , .... 
Anton V
Offline
Зарегистрирован: 28.04.2016

Помогите подобрать дисплей, для разработки, по параметрам подходит http://www.artronic.com.pl/o_produkcie.php?id=1152, но такой не могу найти за вменяемые деньги.
Параметры:
FSTN
COG
240X160
с подсветкой.

 

 

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

Anton V пишет:

Помогите подобрать дисплей, для разработки, по параметрам подходит http://www.artronic.com.pl/o_produkcie.php?id=1152, но такой не могу найти за вменяемые деньги.
Параметры:
FSTN
COG
240X160
с подсветкой.

в приличных количествах дешевле чем Али или Ебай врятли найдёте . http://ru.aliexpress.com/wholesale?catId=0&initiative_id=SB_20160530003904&SearchText=lcd+240X160

vlad1451
Offline
Зарегистрирован: 09.11.2015

slider пишет:

... там могут быть надписи на шлёйфе...

Что касается надписей, есть только эта: HF-F46084VA

шлейф 33 pin.

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

Народ! А есть гарантия того, что если я здесь спрошу что-то про дисплей не от сотика, меня не забуцают?

Вопрос...

Mining
Offline
Зарегистрирован: 31.01.2016

Жалко нет у меня меги, на дуе я так понял не удалось запустить.

В арсенале есть старый сотик моторолла V535 там два дисплея.

Внутренний цветной 7287949Y01 может кто уже подключал к ардуине?

Mining
Offline
Зарегистрирован: 31.01.2016

Интересная тема и что то затихла. Не уж то нет старых телефонов ни у кого.

Погуглили малость нашел схему здесь http://bascom.at.ua/publ/biblioteki_dlja_motorola_c115_v180int_v180ext_siemens_ax75/1-1-0-111 , пишут что эта схема подходит к дисплею в V535 буду разламыватьи делать ))

 

 

doleynikov
Offline
Зарегистрирован: 30.01.2015

.

Ivan_Kornege
Offline
Зарегистрирован: 23.06.2016

Mining пишет:

Интересная тема и что то затихла. Не уж то нет старых телефонов ни у кого.

Погуглили малость нашел схему здесь http://bascom.at.ua/publ/biblioteki_dlja_motorola_c115_v180int_v180ext_siemens_ax75/1-1-0-111 , пишут что эта схема подходит к дисплею в V535 буду разламыватьи делать ))

 

 

Походу умерла тема. Я бы тоже раскуделил парочку моторолл 500 и 535

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

Ivan_Kornege пишет:

Походу умерла тема. Я бы тоже раскуделил парочку моторолл 500 и 535

Кудесте. Всё уже расписано вдоль и поперёк. примеры даны, делайте. и делитесь что открыли нового, чего небыло ещё в инете. 

 Не умерла. Дай бог времени, выложу для народа ещё несколько уже изученных дисп, и передеоланные либы под них.

RungeKut
Offline
Зарегистрирован: 01.08.2016

Здравствуйте, дорогие форумчане. Подскажите плиз. Есть у меня три дисплейчика 1) NOKIA 6131 2) Sony Erricsson K750i 3) Sony Xperia X10 и железка arduino DUE. Тут почитал вроде все понятно, но есть одно но, ни где не могу нарыть разъемчики под 1 и 3 дисплеи, хочу шильдики развести под них. Ну ума не приложу где взять.. старых материнских плат от телефонов уже нет - невыпаяешь.. У китайцев серии BTB 2x13pin Все какие-то большие ни один не подошел.. Видимо специальные раземы блин и шлейф ни как не разрежешь подпаять, там на 1мм 10 дорожек.. Покупадь доноров не хочется, может что посоветуете. А за такую тему респект и уважуха, прога на DUE правда не заливается, но чувствую это поправимо))

satelit
Offline
Зарегистрирован: 12.12.2015

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

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

Парни, засада. Пришел шилд ну опустим что разбит тач. К слову сказать продовец попался приличный, получив фото поврежденного шилда уже выслал новый. Но дело совсем не в этом. Впервые немогу завести его. Шлейф FPC2398A-V0 50 пин. Прозвонил все выводы приходят туда куда надо. Но вот загружаю скетч и вижу секунд 30 белый экран, потом мерцающие серые полутона. Так как шилд на 16 бит пробовал все возможные и имеющиеся в распоряжении иниты библиотеки UTFT. Тщетно. Утверждается что это R61581, но инит от него не прокатывает. Может кто сталкивался с индикатором с таким шлейфом и подскажет что за сердце у этой штуковины.

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

Походу добил я этот TFT. Завелся, только вот сколько не подключал разных шилдов с R61581 на борту ни один не завелся с инитом от UTFT. При этом прекрасно работает с инитом от ili 9481 и ili 9488. Что я могу сказать. Китайцы!!!!!!

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

slider, добрый день! Пробую определить дисплей, что за контроллер стоит. Читалки выдают такой результат:

UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)

register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   FF 0
2 Parameter   FF 0
3 Parameter   68 0
4 Parameter   14 0
5 Parameter   0 0
6 Parameter   FF 0

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   94 0
4 Parameter   86 0
5 Parameter   0 0
6 Parameter   0 0

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   54 0
2 Parameter   54 0
3 Parameter   80 0
4 Parameter   66 0
5 Parameter   0 0
6 Parameter   0 0
аstart... 

      
               1p 2p 3p 4p 5p 6p 7p 8parameter(byte)
      
register 00    00 00 00 00 00 00 00 00  ***
      
register 00    00 00 00 00 00 00 00 00  ***
register 01    00 00 00 00 00 00 00 00
register 02    00 00 00 00 00 00 00 00
register 03    00 00 00 00 00 00 00 00
register 04    54 54 80 66 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    00 00 00 00 00 00 00 00
register 09    00 00 61 00 00 00 00 00
register 0A    08 08 08 08 08 08 08 08
register 0B    00 00 00 00 00 00 00 00
register 0C    66 66 66 66 66 66 66 66
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    00 00 00 00 00 00 00 00
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    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 00 00 00 00 00 00
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 01 3F 00 00 00
register 2B    00 00 00 01 DF 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 2C 68 74 24 84 00 1C
register 2F    00 00 00 00 00 00 00 00
register 30    00 00 00 01 DF 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 01 E0 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    66 66 66 66 66 66 66 66
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    F0 2C 68 74 2C 68 74 24
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    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    B0 B0 11 00 00 00 00 00
register B2    00 00 11 00 00 00 00 00
register B3    00 00 11 00 00 00 00 00
register B4    00 00 00 00 00 00 00 00
register B5    02 02 02 0A 04 00 00 00
register B6    02 02 02 3B 00 00 00 00
register B7    06 06 06 06 06 06 06 06
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    FF FF 68 14 00 FF 00 00  ***
register C0    0E 0E 0E 00 00 00 00 00
register C1    04 04 00 00 00 00 00 00
register C2    33 33 33 33 33 33 33 33
register C3    33 33 33 33 33 33 33 33
register C4    33 33 33 33 33 33 33 33
register C5    00 00 60 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 94 86 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    54 54 54 54 54 54 54 54  ***
register DB    80 80 80 80 80 80 80 80  ***
register DC    66 66 66 66 66 66 66 66  ***
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 54 07 44 05 08 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    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    01 01 00 00 00 00 00 00

Можете подсказать что за контроллер и какая инициализация?

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

forfrends пишет:

slider, добрый день! ....

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   94 0
4 Parameter   86 0
5 Parameter   0 0
6 Parameter   0 0
.....
register D3    00 00 94 86 00 00 00 00  ***
.....

Можете подсказать что за контроллер и какая инициализация?

Добрый.,  там видно с аналогией ili9488 в регистре D3 , вам попался ILI9486 . в UTFT  есть ILI9486  16бит

если он 8ми битный , то попробуйте инитом ili9488 подредактированные UTFT и Adafruit, выложил здесь http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256 . если что там в папке utft должен сохраниться родной инит ili9486

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

Привет, вот и пришло время печали. Получил шилд. Раньше с таким вариантом не встречался. Самое интересное что он инициализируется, но потом глухо серенький экран, если его инициализировать как ili9327 8 бит. Если инициализировать как il932x то появляется еле заметное изображение. Шлейф cdx350-29 v1.1, в интернете нашел только с 19 и 26 и походу это индикатор от sony. Но пока победить не удалось. Все прозвонил, распиновка вроде вся правильная. Вывел пин RD, попытался считать ID. Тщетно выдает ерунду.

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

slider, спасибо за библиотеку! Дисплей 8ми битный, но сразу завелся. Разрешение, похоже 480х272. Примеры из библиотеки UTFT работают все, НО! изображение выводится зеркально и со смещением вверх. Пробовал в memorysaver.h все закоментировать и перепробовал все воможные иниты - результат тот же. Что можете посоветовать? Кстати, в то же время последний кадр выводится вроде как по центру, без смещения.

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

Хм... странное дело в библиотеке: инит подтягивается только из папки ili9327_8, поэтому реакции на другие не было. Закоментирование/раскоментирование библиотек в memorysaver.h и изменение в скетче UTFT myGLCD(0-31,38,39,40,41);  ни на что не влияет. Изменения можно увидеть только если закидывать иниты в папку ili9327_8.

Экспериментальным путем: Инит от ILI9486 подошел, изображение отразилось по вертикали и стало правильным (как мне кажется, так как  дисплей "перевернул" вручную на столе :) ) Но смещение осталось, а последняя картинка выводится нормально. Попробую какие-то простые примеры, может будет нормально отображаться.

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

forfrends пишет:

Хм... странное дело в библиотеке: инит подтягивается только из папки ili9327_8, ...

Да , это так, все верно заметили, только то что в папке  ili9327_8. Т.к. в либе вырезано все лишнее.  

1. с тестами можете поиграться выбрав  пример с нужным разрешением (там в скетче математически разворачивается тесты на этом разрешении этого примера) . контроллер тока поставить в вызове 31й:   UTFT myGLCD(31,...

2. предельной границей служит  разрешение в UTFT.cpp, найдете строчки    disp_x_size = ... ;   disp_y_size = ... ; - это для библиотеки. ( примеры разрешений там же    word dsx[] = {  word dsy[] = {   )

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

в initlcd.h   есть 36й регистр попоменяйте в двоичном представлении поочереди все 0 и 1 в  0b01001000   

LCD_Write_COM(0x36);  
LCD_Write_DATA(0b01001000); // было 0x48 0b01001000  , чтобы перевернуть надо  0x88 0b10001000

или попробуйте другие заархивированные иниты что там же в папке.

// попробуйте все 3 варианта . И фотку шлейфа с надписями для народа разместите. распиновку и откуда он.

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

Что-то у меня ничего не получается. Изображение перевернулось, но смещение по Х осталось, примерно -24 пикселя. Из Даташита: контроллер имеет разрешение 320х480. Разрешение дисплея 272х480. Похоже что адреса самого дисплея находтся "по середине" видео памяти котроллера. (320 - 272)/2 = 24 пикселя по краям дисплея... Результаты проб:

1) пробовал все примеры, даже библиотеку Adafruit_TFTLCD - результат тот же  - смещение изображения

2) в UTFT.cpp настроил disp_x_size = 271 ;   disp_y_size = 479 

3) Игры с  36м регистром ничего не дали, повернул на 90 градусов, инверсия цветов, в общем желаемого эфекта нет. Перепробовал все возможные иниты из архивов - подходят почти все, но везде та же ситуация - смещение+зеркальное отображение. Иниты от ili9486 и ili9486_original отображают так же со смещением, но без зеркального.

Читаю даташит. По ходу нужно в Column Address Set (2Ah) и в Page Address Set (2Bh) сместить 0-й адрес на 27 пикселей (страницы 96-98 даташита http://www.displayfuture.com/Display/datasheet/controller/ILI9486L.pdf). Но как это сделать - не понимаю. 

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

Это надо делать не в инициализации, а в функциях. Учитывать разницу в памяти контроллера и разрешении матрицы. Сейчас у вас получается что адрес x=0 и y=0 находится за областью видимости, то есть область памяти полюбому считается с (0,0), а матрица подключена со сдвигом на N пикселей. При ориентации изображения получается что часть его как бы уезжает за край матрицы. Значит надо инициализировать чип как будто он работает с полноценной матрицей и прибовлять/вычитать смещение к координатам в функциях, учитывая ориентацию.  

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

Я понимаю что так было бы проще всего, во время отображения прибавлять эти 24 пикселя, но это не выход, так как это лишняя работа контроллера. Как по мне правильно было бы указать рабочую область памяти для контроллера дисплея и все. Контроллер сам бы изначально 1 раз "сместил" изображение и все. 

В initlcd.h есть настройки для Column Address Set (2Ah) и Page Address Set (2Bh):

LCD_Write_COM(0x2A);		// Column Addess Set
LCD_Write_DATA(0x00);// если не ошибаюсь, это старший байт SC     
LCD_Write_DATA(0x00);// Младший байт SC
LCD_Write_DATA(0x01);// Старший байт EC
LCD_Write_DATA(0xDF);// Младший байт EC

LCD_Write_COM(0x002B);		// Page Address Set
LCD_Write_DATA(0x00);// старший байт SP
LCD_Write_DATA(0x00);// младший байт
LCD_Write_DATA(0x01);// старший байт EP
LCD_Write_DATA(0x3f);// младший байт

И как их менять - не знаю. Еще не понятно что такое SC, ES, SP, EP

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

forfrends пишет:

Я понимаю что так было бы проще всего, во время отображения прибавлять эти 24 пикселя, но это не выход, так как это лишняя работа контроллера. Как по мне правильно было бы указать рабочую область памяти для контроллера дисплея и все. Контроллер сам бы изначально 1 раз "сместил" изображение и все. 

В initlcd.h есть настройки для Column Address Set (2Ah) и Page Address Set (2Bh):

LCD_Write_COM(0x2A);		// Column Addess Set
LCD_Write_DATA(0x00);// если не ошибаюсь, это старший байт SC     
LCD_Write_DATA(0x00);// Младший байт SC
LCD_Write_DATA(0x01);// Старший байт EC
LCD_Write_DATA(0xDF);// Младший байт EC

LCD_Write_COM(0x002B);		// Page Address Set
LCD_Write_DATA(0x00);// старший байт SP
LCD_Write_DATA(0x00);// младший байт
LCD_Write_DATA(0x01);// старший байт EP
LCD_Write_DATA(0x3f);// младший байт

И как их менять - не знаю. Еще не понятно что такое SC, ES, SP, EP

А другого выхода нет. Или каждый раз перезаписывать значеия 2Ah и 2Bh. Или учитывать в процессе обработки в виде смещений. С *C и *P все и так ясно, это колоумн и пэйдж. Первые два байта начало стобца/страницы, вторые две конец столбца/страници. Переведя в десятичный вид получим (0, 0, 319, 479)

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

А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h? А дальше пока программ выполняется они не изменятся. Все равно ведь при инициализации дисплея эти параметры прописываются. Или я что-то не понимаю? Может мы говорим об одном и том же?

Просто я хочу внести эти настройки в initlcd.h и больше к ним не возвращаться. Что бы в скетче не писать Х+24 а просто Х вывести точку в координатах 0,0 дисплея (24,0 - координаты памяти).

Если вариантов нет кроме ка всегда прибавлять +24, то их, я так понимаю, нужно прописать в UTFT.cpp? Где и как?