ничего с ним не сделаете, в смысле напрямую не подключите к 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
Списывался с составителем подобного проекта, - переходника lvds (мониторных , ноутбучных матриц), он написал что это не возможно купить, и неизвестно когда. (мож это просто была дипломная работа, авось кого из производителей заинтересует, а в малом количестве производить невыгодно)
// Ещё дело если у вас микроконтроллер как в планшетнике, в нём всё это уже внутри. И у вас есть их описание , возможно написать типа своей оболочки ардуино IDE, это вам тоже не по силам, раз задаёте такой вопрос.
Зачем вам это? Какая цель интереса? У вас есть десяток этих очень маленьких дисплеев? Зачем такие малипусенькие? . Чтобы их пытаться законнектить для дела, непохоже, невериться. Тогда не имеет смысла и пытаться . У меня тож есть RGB маленькие и большие дисплеи. Для них нужен отдельный очень быстрый контроллер с видеопамятью, чтоб они не были нагрузкой для ардуины. Даже и мысли не возникало на маленькие тратить время. У вас оно есть? Тогда потратьте - подключите. Пдф на nt7753e в сети есть, что вы указали пдф (судя по нему это простой диспл со своей видеопамятью,) , там есть распиновка и инит. Все есть, подключай нехочу! Мне непонятен ваш интерес, у вас есть много этих дисплеев? Тогда подключайте, все уже разжовано. На крайняк есть рядом стоящие контроллеры, на них можно все поискать.
Есть куда большие дисплеи - стоят копейки. Если вам надо создать большое количество устройств, то на алиэкспресс есть бо'льшие дисплели 2.2" , стоят около 100р , покупайте хоть 1 хоть 1000 ( будет вообще невероятно дешево, поищите) . - на них продавцы дают распиновку и широкораспространенный контроллер. По вашему желанию поставят другой в теже деньги.
это вам не случаи где нет распиновки , пдф , инита - и то это решаемо, опыт тому выше. Все так просто, даже не приходится прибегать к сканеру, чтобы он со сканировал общение дисплея и устройства, дабы получить инит и команды вывода. Иниты можно подбирать из тех что есть, много похожих, зачастую хватает 2-3 команды (вывод из сна, включение, запись ), все остальное уточнения и украшательства.
Если нужен самый дешевый так они есть почти в любом магазе по запчастям к сотовым, новые 50-100р ( к примеру нокиа 1616 и очень много от других моделей - изучен, цветной, мало выводов, легко паябелен ) . Есть и большие изученные. Дорога до магаза дороже чем сам дисплей, смешно.
Если нужен срочно и большой, так в городе всяко есть кто барыжит ардуинной электроникой, в1,5-2 раза дороже, зато не ждать месяц с Али.
Buzzer2010, Можно попробовать из такого дисплея "10" сделать небольшой телик и много другое в общем испоьзовать как монитор, при этом уйдет всего 15-20 долларов на LCD контролер... вот пример https://www.youtube.com/watch?v=KE0nH3l8kVU поищите еще информации на эту тематику и я думаю вы найдете применение своему дисплею... а может и не повезет! но будем надеяться на лучшее :))))
2 slider: Цель интереса: смотря что называть делом. Сейчас у меня только одно дело: получше разобраться в аппаратной и програмной частях ардуино. А тут - все средства хороши. Ну и конечно - валяется такой дисплей рядом с айпадовским. Так что это вопрос больше учебный, нежели практический. С 1602 всё и так понятно. С 5110 - тоже. Почему бы не потренироваться на чем-то нестандартном? Тем более что и практически он раз в пять больше дисплея на панели приборов у моего авто. Так что планы на него у меня, как раз, есть. И спасибо за то что укрепили мою уверенность в собственных силах после прочтения пдф-а.
2 Lelick: Отличный контроллер! Это такой универсальный контроллер, к которому можно подключать разные дисплеи? Надо поинтересоваться, а то я, признаться, первый раз о таком услышал. Интересно можно ли такой приобрести не забредая в Китай?
Уже и нашёл. Называется "Универсальный скалер", стоит 10 долларов, и никакого Китая... Благодарю за инфу!
Расскажите, какая существенная разница между HX8352A и HX8352B? Заказал на свою голову на али дисплей, продавец скинул доку, где указано что внутри установлен HX8352B. На этот контроллер я так и не смог найти даташит, везде есть только на "А" версию. В интеренете практически нет инициализации этого экрана, кроме как тут на главной странице. Китаец какой-то несговорчивый в этом плане. Инит от А не проходит, а тот что на первой странице хоть как-то показывает что не всё потеряно - экран заполняется цветным шумом, а рисование происходит через пиксел. Экран точно не битый, потому как у меня их три и ведут они себя одинаково.
Может у кого-то есть обьяснение и инициализация этого экрана на таком контроллере? 16битная шина. Я хоть и подключаю его к stm32 через fsmc, но суть думаю должна быть одна.
..... На этот контроллер я так и не смог найти даташит, везде есть только на "А" версию. В интеренете практически нет инициализации этого экрана, кроме как тут на главной странице. .......
// ко любым микроконтроллерам инициализация таже, хоть 51 хоть STM. Разве что, если другая цветность, переворачивание картинки, кодирование цветности, .... передача не по 8/9/16/18 бит или SPI, а по RGB , то да, надо прочитав даташит подкорректировать ответственные за это регистры.
Еще раз, для этого в ней НИЧЕГО МЕНЯТЬ НЕ НАДО ! (ненужно) . она одинакова для 8 и 16ть бит и др. битностей. и метод цветности однаков для UTFT , Adafruit, и других. Изучите же наконец даташит, все вопросы отпадут.
Есть предположение что и в 2.8" ALCATEL OT-891 OT-908 OT-910 OT-980 применяются теже контроллеры. (только этих дисплеев почти нет в моем городе) и шлейф поудобней паять чем OT-905 OT-890 .
//это сообщениене не цитировать, и не отвечать,инфу буду дополнять по мере свободного времени и наличия этих дисплеев
защита с завода стандартная частота обновления экрана вроде 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 понадобиться Мега и проводки мама-папа. (адафруитская читалка не все регистры читает)
////// лички здесь нет . и зачем вы нажали на последнее сообщение "Ответить"? предупреждал же что этого не надо делать. Теперь я немогу его отредактировать. Внизу страницы для ответа уже есть окно ввода текста "Отправить комментарий", и ниже кнопка "Сохранить".
Никак, упущен еще модуль видеоОЗУ к этому дисплею, возможно на ssd1963, RA8875. Дешевле выбрать другой дисплей, в соседней теме про 3.5" их полно всяких.
На 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
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 получалась непонятка, читалка выдала:
т.е. в 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
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
я не знаю как там с портами на ДУЭ
ТЫ точно не забыл нигде скобку закрыть, а то похоже
Открываете либу адафруита в любом редакторе, или правой кнопкой и "изменить" , нажимаете ctrl+F (поиск) , вбиваете B1 , находите где он или во что переименовывается(в разных либах адафруита сделано по разному). Следующее за его вызовом - это его данные(параматры), их и изменяете согласно даташиту. Виндовский калькулятор 'Вид'-'Программист' легко переводит двоичный код из даташита в шестнадцатеричный. Можно и в двоичном оставить , (пример 0x05=0b00000101 ) .
как ни странно нашёл быстро ))
slider пишет:
// в даташите искать по слову frame или frequency . Или как уже нашли B1h (если это ili9341 ili9488 ,... ).
на самом деле ничего путного так не нашёл или вообще ничего, поэтому выбрал частоту 50Гц, резульат хороший, мерцания нет, а то аж мигал ))
Спасибо ))
А нет в библиотеке чегото вроде Буфера кадра? Чтобы не весь дисплей перерисовывать или очищать то что нарисовал, а именно объекты стирать (линии и прочее)
А нет в библиотеке чегото вроде Буфера кадра? Чтобы не весь дисплей перерисовывать или очищать то что нарисовал, а именно объекты стирать (линии и прочее)
В библиотеках нет. (устройства Nextion не рассматриваем). Такие дела решается в скетче:
Если кривая линия из точек (или мелкие объекты) , то создать массив x,y для её запоминания и последующего стирания по этому массиву. (если к примеру осциллограф - то в цикл стирания можно добавить ещё условия, что если x,y такие.. ,то потом восстановитиь координатную сетку - изменением цвета затирающего пикселя на цвет координатной сетки). //для экономии оперативной памяти, если размах объектов не превышает 255 пикселей , то лучше в массиве вместо типа переменных int применять тип byte .
Если это емкие объекты , то можно их выделить в функции , и изменять цвет перед их вызовом, т.о. рисовать их или закрашивать.
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 - "-" подсветки
Вы насколько я понял, занимались дисплеями на данном контроллере. Может что то подобное встречалось?
vlad1451, можно было фото с другой стороны для интереса, там могут быть надписи на шлёйфе и железке. Судя по taobao.com на китайские i9500 ставят разные дисплеи. Попробуйте даташит HX8357-B , там есть распиновка кристалла на 15 - 16 стр. ,или сравните с даташитом ILI9488 , там тоже есть распиновка.
Да и как показала практика, можно распиновку приблизительно определить самому, как вы и сделали, если что неизвестные поменять местами, так читалкой ID в большинстве случаев можно вычитать модель контроллера.
Таки в чём проблема? или припаиваете по предполагаемой вами распиновке и скармливаете иниты пока не заведется.скорее всего подойдёт от HX8357-D , ili9488 , ....
Помогите подобрать дисплей, для разработки, по параметрам подходит http://www.artronic.com.pl/o_produkcie.php?id=1152, но такой не могу найти за вменяемые деньги.
Параметры: FSTN
COG
240X160
с подсветкой.
Помогите подобрать дисплей, для разработки, по параметрам подходит http://www.artronic.com.pl/o_produkcie.php?id=1152, но такой не могу найти за вменяемые деньги.
Параметры: FSTN
COG
240X160
с подсветкой.
Здравствуйте, дорогие форумчане. Подскажите плиз. Есть у меня три дисплейчика 1) NOKIA 6131 2) Sony Erricsson K750i 3) Sony Xperia X10 и железка arduino DUE. Тут почитал вроде все понятно, но есть одно но, ни где не могу нарыть разъемчики под 1 и 3 дисплеи, хочу шильдики развести под них. Ну ума не приложу где взять.. старых материнских плат от телефонов уже нет - невыпаяешь.. У китайцев серии BTB 2x13pin Все какие-то большие ни один не подошел.. Видимо специальные раземы блин и шлейф ни как не разрежешь подпаять, там на 1мм 10 дорожек.. Покупадь доноров не хочется, может что посоветуете. А за такую тему респект и уважуха, прога на DUE правда не заливается, но чувствую это поправимо))
в любой сервисной компании по ремонту сотовых(второго третьего сотра ) можно поковыряться и найти шлейф, залудить, и последнее, развести плату через лаят под свои параметры
Парни, засада. Пришел шилд ну опустим что разбит тач. К слову сказать продовец попался приличный, получив фото поврежденного шилда уже выслал новый. Но дело совсем не в этом. Впервые немогу завести его. Шлейф FPC2398A-V0 50 пин. Прозвонил все выводы приходят туда куда надо. Но вот загружаю скетч и вижу секунд 30 белый экран, потом мерцающие серые полутона. Так как шилд на 16 бит пробовал все возможные и имеющиеся в распоряжении иниты библиотеки UTFT. Тщетно. Утверждается что это R61581, но инит от него не прокатывает. Может кто сталкивался с индикатором с таким шлейфом и подскажет что за сердце у этой штуковины.
Походу добил я этот TFT. Завелся, только вот сколько не подключал разных шилдов с R61581 на борту ни один не завелся с инитом от UTFT. При этом прекрасно работает с инитом от ili 9481 и ili 9488. Что я могу сказать. Китайцы!!!!!!
Привет, вот и пришло время печали. Получил шилд. Раньше с таким вариантом не встречался. Самое интересное что он инициализируется, но потом глухо серенький экран, если его инициализировать как ili9327 8 бит. Если инициализировать как il932x то появляется еле заметное изображение. Шлейф cdx350-29 v1.1, в интернете нашел только с 19 и 26 и походу это индикатор от sony. Но пока победить не удалось. Все прозвонил, распиновка вроде вся правильная. Вывел пин RD, попытался считать ID. Тщетно выдает ерунду.
slider, спасибо за библиотеку! Дисплей 8ми битный, но сразу завелся. Разрешение, похоже 480х272. Примеры из библиотеки UTFT работают все, НО! изображение выводится зеркально и со смещением вверх. Пробовал в memorysaver.h все закоментировать и перепробовал все воможные иниты - результат тот же. Что можете посоветовать? Кстати, в то же время последний кадр выводится вроде как по центру, без смещения.
Хм... странное дело в библиотеке: инит подтягивается только из папки ili9327_8, поэтому реакции на другие не было. Закоментирование/раскоментирование библиотек в memorysaver.h и изменение в скетче UTFT myGLCD(0-31,38,39,40,41); ни на что не влияет. Изменения можно увидеть только если закидывать иниты в папку ili9327_8.
Экспериментальным путем: Инит от ILI9486 подошел, изображение отразилось по вертикали и стало правильным (как мне кажется, так как дисплей "перевернул" вручную на столе :) ) Но смещение осталось, а последняя картинка выводится нормально. Попробую какие-то простые примеры, может будет нормально отображаться.
Хм... странное дело в библиотеке: инит подтягивается только из папки ili9327_8, ...
Да , это так, все верно заметили, только то что в папке ili9327_8. Т.к. в либе вырезано все лишнее.
1. с тестами можете поиграться выбрав пример с нужным разрешением (там в скетче математически разворачивается тесты на этом разрешении этого примера) . контроллер тока поставить в вызове 31й: UTFT myGLCD(31,...
2. предельной границей служит разрешение в UTFT.cpp, найдете строчки disp_x_size =... ; disp_y_size =... ; - это для библиотеки. ( примеры разрешений там же worddsx[] = { worddsy[] = { )
3. попробуйте отзеркалить по вертикали и горизонтали (регистры описаны в даташите, и в некоторых инитах в папке ili9327_8 их прокоментировал ) . смещение исчезнет (оно возникает когда контроллер может больше пикселей чем матрица на которой он установлен , - в вашем случае ещё и этим может решиться , т.е. зеркалированием).
в initlcd.h есть 36й регистр попоменяйте в двоичном представлении поочереди все 0 и 1 в 0b01001000
LCD_Write_COM(0x36);
LCD_Write_DATA(0b01001000); // было 0x48 0b01001000 , чтобы перевернуть надо 0x88 0b10001000
или попробуйте другие заархивированные иниты что там же в папке.
// попробуйте все 3 варианта . И фотку шлейфа с надписями для народа разместите. распиновку и откуда он.
Что-то у меня ничего не получается. Изображение перевернулось, но смещение по Х осталось, примерно -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 отображают так же со смещением, но без зеркального.
Это надо делать не в инициализации, а в функциях. Учитывать разницу в памяти контроллера и разрешении матрицы. Сейчас у вас получается что адрес x=0 и y=0 находится за областью видимости, то есть область памяти полюбому считается с (0,0), а матрица подключена со сдвигом на N пикселей. При ориентации изображения получается что часть его как бы уезжает за край матрицы. Значит надо инициализировать чип как будто он работает с полноценной матрицей и прибовлять/вычитать смещение к координатам в функциях, учитывая ориентацию.
Я понимаю что так было бы проще всего, во время отображения прибавлять эти 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
Я понимаю что так было бы проще всего, во время отображения прибавлять эти 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)
А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h? А дальше пока программ выполняется они не изменятся. Все равно ведь при инициализации дисплея эти параметры прописываются. Или я что-то не понимаю? Может мы говорим об одном и том же?
Просто я хочу внести эти настройки в initlcd.h и больше к ним не возвращаться. Что бы в скетче не писать Х+24 а просто Х вывести точку в координатах 0,0 дисплея (24,0 - координаты памяти).
Если вариантов нет кроме ка всегда прибавлять +24, то их, я так понимаю, нужно прописать в UTFT.cpp? Где и как?
Добрый день всем!
Вопрос, немного, не по теме, но всё же: возможно ли подключить к arduino дисплей от iPAD 2 ?
Такой хороший дисплей, 10", и жаль просто выбросить, а валяется без дела.
Добрый день всем!
Вопрос, немного, не по теме, но всё же: возможно ли подключить к arduino дисплей от iPAD 2 ?
Такой хороший дисплей, 10", и жаль просто выбросить, а валяется без дела.
у меня меньше пинов, 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, это вам тоже не по силам, раз задаёте такой вопрос.
Спасибо за ответ. Значит не буду и голову морочить.
Вот встречал другую интересную тему у вас, которая почти подходит под топик:
http://arduino.ru/forum/programmirovanie/biblioteka-dlya-lcd-tft-module
Кто-нибудь, с тех пор, пытался приконнектить этот дисплей к ардуино?
Вот его даташит: http://www.cec-mc.ru/data/files/File/PDF/EDMMRG2KAS.pdf
Зачем вам это? Какая цель интереса? У вас есть десяток этих очень маленьких дисплеев? Зачем такие малипусенькие? . Чтобы их пытаться законнектить для дела, непохоже, невериться. Тогда не имеет смысла и пытаться . У меня тож есть RGB маленькие и большие дисплеи. Для них нужен отдельный очень быстрый контроллер с видеопамятью, чтоб они не были нагрузкой для ардуины. Даже и мысли не возникало на маленькие тратить время. У вас оно есть? Тогда потратьте - подключите. Пдф на nt7753e в сети есть, что вы указали пдф (судя по нему это простой диспл со своей видеопамятью,) , там есть распиновка и инит. Все есть, подключай нехочу! Мне непонятен ваш интерес, у вас есть много этих дисплеев? Тогда подключайте, все уже разжовано. На крайняк есть рядом стоящие контроллеры, на них можно все поискать.
Есть куда большие дисплеи - стоят копейки. Если вам надо создать большое количество устройств, то на алиэкспресс есть бо'льшие дисплели 2.2" , стоят около 100р , покупайте хоть 1 хоть 1000 ( будет вообще невероятно дешево, поищите) . - на них продавцы дают распиновку и широкораспространенный контроллер. По вашему желанию поставят другой в теже деньги.
это вам не случаи где нет распиновки , пдф , инита - и то это решаемо, опыт тому выше. Все так просто, даже не приходится прибегать к сканеру, чтобы он со сканировал общение дисплея и устройства, дабы получить инит и команды вывода. Иниты можно подбирать из тех что есть, много похожих, зачастую хватает 2-3 команды (вывод из сна, включение, запись ), все остальное уточнения и украшательства.
Если нужен самый дешевый так они есть почти в любом магазе по запчастям к сотовым, новые 50-100р ( к примеру нокиа 1616 и очень много от других моделей - изучен, цветной, мало выводов, легко паябелен ) . Есть и большие изученные. Дорога до магаза дороже чем сам дисплей, смешно.
Если нужен срочно и большой, так в городе всяко есть кто барыжит ардуинной электроникой, в1,5-2 раза дороже, зато не ждать месяц с Али.
Buzzer2010, Можно попробовать из такого дисплея "10" сделать небольшой телик и много другое в общем испоьзовать как монитор, при этом уйдет всего 15-20 долларов на LCD контролер... вот пример https://www.youtube.com/watch?v=KE0nH3l8kVU поищите еще информации на эту тематику и я думаю вы найдете применение своему дисплею... а может и не повезет! но будем надеяться на лучшее :))))
2 slider: Цель интереса: смотря что называть делом. Сейчас у меня только одно дело: получше разобраться в аппаратной и програмной частях ардуино. А тут - все средства хороши. Ну и конечно - валяется такой дисплей рядом с айпадовским. Так что это вопрос больше учебный, нежели практический. С 1602 всё и так понятно. С 5110 - тоже. Почему бы не потренироваться на чем-то нестандартном? Тем более что и практически он раз в пять больше дисплея на панели приборов у моего авто. Так что планы на него у меня, как раз, есть. И спасибо за то что укрепили мою уверенность в собственных силах после прочтения пдф-а.
2 Lelick: Отличный контроллер! Это такой универсальный контроллер, к которому можно подключать разные дисплеи? Надо поинтересоваться, а то я, признаться, первый раз о таком услышал. Интересно можно ли такой приобрести не забредая в Китай?
Уже и нашёл. Называется "Универсальный скалер", стоит 10 долларов, и никакого Китая... Благодарю за инфу!
Всем привет.
Расскажите, какая существенная разница между HX8352A и HX8352B? Заказал на свою голову на али дисплей, продавец скинул доку, где указано что внутри установлен HX8352B. На этот контроллер я так и не смог найти даташит, везде есть только на "А" версию. В интеренете практически нет инициализации этого экрана, кроме как тут на главной странице. Китаец какой-то несговорчивый в этом плане. Инит от А не проходит, а тот что на первой странице хоть как-то показывает что не всё потеряно - экран заполняется цветным шумом, а рисование происходит через пиксел. Экран точно не битый, потому как у меня их три и ведут они себя одинаково.
Может у кого-то есть обьяснение и инициализация этого экрана на таком контроллере? 16битная шина. Я хоть и подключаю его к stm32 через fsmc, но суть думаю должна быть одна.
Спасибо.
..... На этот контроллер я так и не смог найти даташит, везде есть только на "А" версию. В интеренете практически нет инициализации этого экрана, кроме как тут на главной странице. .......
как нет в инете даташита? вроде не бот.
вот поиск в яндексе 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
2Slider:
Подключение дисплея и настройка переферии контроллера не проблема. Проблема как раз в ините.
Может кто-нибудь подскажет что именно в ините менять под 16бит шину и цвет?
только что же об этом написал.
Еще раз, для этого в ней НИЧЕГО МЕНЯТЬ НЕ НАДО ! (ненужно) . она одинакова для 8 и 16ть бит и др. битностей. и метод цветности однаков для UTFT , Adafruit, и других. Изучите же наконец даташит, все вопросы отпадут.
// неинформативные сообщения не пишите.
библиотеки и даташиты , заготовлены, те что и в предыдущем исследовании http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-175988 .
№17
Есть предположение что и в 2.8" ALCATEL OT-891 OT-908 OT-910 OT-980 применяются теже контроллеры. (только этих дисплеев почти нет в моем городе) и шлейф поудобней паять чем OT-905 OT-890 .
//это сообщениене не цитировать, и не отвечать, инфу буду дополнять по мере свободного времени и наличия этих дисплеев
Привет! Чуть офтоп. Непонял как писать Пользователям ЛС
Гдето на форуме видел вскользь что на Ардуиновких дисплеях такого рода http://zelectro.cc/tft_lcd_arduino
защита с завода стандартная частота обновления экрана вроде 60Гц и её как то можно увеличить программно. Не знаешь как?
найти не могу, вот как не надо было нашёл, а как надо )))
Смотрите в даташит настройки регистра FRAME CONTROL (в ILI9341 это B1).
Привет! Чуть офтоп. Непонял как писать Пользователям ЛС
Гдето на форуме видел вскользь что на Ардуиновких дисплеях такого рода 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 понадобиться Мега и проводки мама-папа. (адафруитская читалка не все регистры читает)
////// лички здесь нет . и зачем вы нажали на последнее сообщение "Ответить"? предупреждал же что этого не надо делать. Теперь я немогу его отредактировать. Внизу страницы для ответа уже есть окно ввода текста "Отправить комментарий", и ниже кнопка "Сохранить".
День добрый, подскажите как подключить к 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
День добрый, подскажите как подключить к 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" их полно всяких.
setxy:
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 получалась непонятка, читалка выдала:
т.е. в 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
При попытке прошить ДУЕ выдает ошибку:
компилятор тебе говорит что нет у тебя
я не знаю как там с портами на ДУЭ
ТЫ точно не забыл нигде скобку закрыть, а то похоже
На DUE стоит ARM. Там нет никаких DDR и PORT, там совсем другие регистры и другая работа с портами (GPIO).
Открываете либу адафруита в любом редакторе, или правой кнопкой и "изменить" , нажимаете ctrl+F (поиск) , вбиваете B1 , находите где он или во что переименовывается(в разных либах адафруита сделано по разному). Следующее за его вызовом - это его данные(параматры), их и изменяете согласно даташиту. Виндовский калькулятор 'Вид'-'Программист' легко переводит двоичный код из даташита в шестнадцатеричный. Можно и в двоичном оставить , (пример 0x05=0b00000101 ) .
как ни странно нашёл быстро ))
// в даташите искать по слову frame или frequency . Или как уже нашли B1h (если это ili9341 ili9488 ,... ).
Спасибо ))
А нет в библиотеке чегото вроде Буфера кадра? Чтобы не весь дисплей перерисовывать или очищать то что нарисовал, а именно объекты стирать (линии и прочее)
.....
Спасибо ))
А нет в библиотеке чегото вроде Буфера кадра? Чтобы не весь дисплей перерисовывать или очищать то что нарисовал, а именно объекты стирать (линии и прочее)
В библиотеках нет. (устройства Nextion не рассматриваем). Такие дела решается в скетче:
Если кривая линия из точек (или мелкие объекты) , то создать массив x,y для её запоминания и последующего стирания по этому массиву. (если к примеру осциллограф - то в цикл стирания можно добавить ещё условия, что если x,y такие.. ,то потом восстановитиь координатную сетку - изменением цвета затирающего пикселя на цвет координатной сетки). //для экономии оперативной памяти, если размах объектов не превышает 255 пикселей , то лучше в массиве вместо типа переменных int применять тип byte .
Если это емкие объекты , то можно их выделить в функции , и изменять цвет перед их вызовом, т.о. рисовать их или закрашивать.
slider, С Вами можно связаться по email или по skype?
slider, С Вами можно связаться по email или по skype?
Да, пока ещё можно,
////Чтоб ветку не засорять, можете на емайл написать sеgun @ яндekс . ру (не копироавать, а переписать все буквы латиницей)
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 - "-" подсветки
Вы насколько я понял, занимались дисплеями на данном контроллере. Может что то подобное встречалось?
Помогите подобрать дисплей, для разработки, по параметрам подходит http://www.artronic.com.pl/o_produkcie.php?id=1152, но такой не могу найти за вменяемые деньги.
Параметры:
FSTN
COG
240X160
с подсветкой.
Помогите подобрать дисплей, для разработки, по параметрам подходит 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
Что касается надписей, есть только эта: HF-F46084VA
шлейф 33 pin.
Народ! А есть гарантия того, что если я здесь спрошу что-то про дисплей не от сотика, меня не забуцают?
Вопрос...
Жалко нет у меня меги, на дуе я так понял не удалось запустить.
В арсенале есть старый сотик моторолла V535 там два дисплея.
Внутренний цветной 7287949Y01 может кто уже подключал к ардуине?
Интересная тема и что то затихла. Не уж то нет старых телефонов ни у кого.
Погуглили малость нашел схему здесь http://bascom.at.ua/publ/biblioteki_dlja_motorola_c115_v180int_v180ext_siemens_ax75/1-1-0-111 , пишут что эта схема подходит к дисплею в V535 буду разламыватьи делать ))
.
Интересная тема и что то затихла. Не уж то нет старых телефонов ни у кого.
Погуглили малость нашел схему здесь http://bascom.at.ua/publ/biblioteki_dlja_motorola_c115_v180int_v180ext_siemens_ax75/1-1-0-111 , пишут что эта схема подходит к дисплею в V535 буду разламыватьи делать ))
Походу умерла тема. Я бы тоже раскуделил парочку моторолл 500 и 535
Кудесте. Всё уже расписано вдоль и поперёк. примеры даны, делайте. и делитесь что открыли нового, чего небыло ещё в инете.
Не умерла. Дай бог времени, выложу для народа ещё несколько уже изученных дисп, и передеоланные либы под них.
Здравствуйте, дорогие форумчане. Подскажите плиз. Есть у меня три дисплейчика 1) NOKIA 6131 2) Sony Erricsson K750i 3) Sony Xperia X10 и железка arduino DUE. Тут почитал вроде все понятно, но есть одно но, ни где не могу нарыть разъемчики под 1 и 3 дисплеи, хочу шильдики развести под них. Ну ума не приложу где взять.. старых материнских плат от телефонов уже нет - невыпаяешь.. У китайцев серии BTB 2x13pin Все какие-то большие ни один не подошел.. Видимо специальные раземы блин и шлейф ни как не разрежешь подпаять, там на 1мм 10 дорожек.. Покупадь доноров не хочется, может что посоветуете. А за такую тему респект и уважуха, прога на DUE правда не заливается, но чувствую это поправимо))
в любой сервисной компании по ремонту сотовых(второго третьего сотра ) можно поковыряться и найти шлейф, залудить, и последнее, развести плату через лаят под свои параметры
Парни, засада. Пришел шилд ну опустим что разбит тач. К слову сказать продовец попался приличный, получив фото поврежденного шилда уже выслал новый. Но дело совсем не в этом. Впервые немогу завести его. Шлейф FPC2398A-V0 50 пин. Прозвонил все выводы приходят туда куда надо. Но вот загружаю скетч и вижу секунд 30 белый экран, потом мерцающие серые полутона. Так как шилд на 16 бит пробовал все возможные и имеющиеся в распоряжении иниты библиотеки UTFT. Тщетно. Утверждается что это R61581, но инит от него не прокатывает. Может кто сталкивался с индикатором с таким шлейфом и подскажет что за сердце у этой штуковины.
Походу добил я этот TFT. Завелся, только вот сколько не подключал разных шилдов с R61581 на борту ни один не завелся с инитом от UTFT. При этом прекрасно работает с инитом от ili 9481 и ili 9488. Что я могу сказать. Китайцы!!!!!!
slider, добрый день! Пробую определить дисплей, что за контроллер стоит. Читалки выдают такой результат:
Можете подсказать что за контроллер и какая инициализация?
slider, добрый день! ....
Можете подсказать что за контроллер и какая инициализация?
Добрый., там видно с аналогией 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
Привет, вот и пришло время печали. Получил шилд. Раньше с таким вариантом не встречался. Самое интересное что он инициализируется, но потом глухо серенький экран, если его инициализировать как ili9327 8 бит. Если инициализировать как il932x то появляется еле заметное изображение. Шлейф cdx350-29 v1.1, в интернете нашел только с 19 и 26 и походу это индикатор от sony. Но пока победить не удалось. Все прозвонил, распиновка вроде вся правильная. Вывел пин RD, попытался считать ID. Тщетно выдает ерунду.
slider, спасибо за библиотеку! Дисплей 8ми битный, но сразу завелся. Разрешение, похоже 480х272. Примеры из библиотеки UTFT работают все, НО! изображение выводится зеркально и со смещением вверх. Пробовал в memorysaver.h все закоментировать и перепробовал все воможные иниты - результат тот же. Что можете посоветовать? Кстати, в то же время последний кадр выводится вроде как по центру, без смещения.
Хм... странное дело в библиотеке: инит подтягивается только из папки ili9327_8, поэтому реакции на другие не было. Закоментирование/раскоментирование библиотек в memorysaver.h и изменение в скетче UTFT myGLCD(0-31,38,39,40,41); ни на что не влияет. Изменения можно увидеть только если закидывать иниты в папку ili9327_8.
Экспериментальным путем: Инит от ILI9486 подошел, изображение отразилось по вертикали и стало правильным (как мне кажется, так как дисплей "перевернул" вручную на столе :) ) Но смещение осталось, а последняя картинка выводится нормально. Попробую какие-то простые примеры, может будет нормально отображаться.
Хм... странное дело в библиотеке: инит подтягивается только из папки 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
или попробуйте другие заархивированные иниты что там же в папке.
// попробуйте все 3 варианта . И фотку шлейфа с надписями для народа разместите. распиновку и откуда он.
Что-то у меня ничего не получается. Изображение перевернулось, но смещение по Х осталось, примерно -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). Но как это сделать - не понимаю.
Это надо делать не в инициализации, а в функциях. Учитывать разницу в памяти контроллера и разрешении матрицы. Сейчас у вас получается что адрес x=0 и y=0 находится за областью видимости, то есть область памяти полюбому считается с (0,0), а матрица подключена со сдвигом на N пикселей. При ориентации изображения получается что часть его как бы уезжает за край матрицы. Значит надо инициализировать чип как будто он работает с полноценной матрицей и прибовлять/вычитать смещение к координатам в функциях, учитывая ориентацию.
Я понимаю что так было бы проще всего, во время отображения прибавлять эти 24 пикселя, но это не выход, так как это лишняя работа контроллера. Как по мне правильно было бы указать рабочую область памяти для контроллера дисплея и все. Контроллер сам бы изначально 1 раз "сместил" изображение и все.
В initlcd.h есть настройки для Column Address Set (2Ah) и Page Address Set (2Bh):
И как их менять - не знаю. Еще не понятно что такое SC, ES, SP, EP
Я понимаю что так было бы проще всего, во время отображения прибавлять эти 24 пикселя, но это не выход, так как это лишняя работа контроллера. Как по мне правильно было бы указать рабочую область памяти для контроллера дисплея и все. Контроллер сам бы изначально 1 раз "сместил" изображение и все.
В initlcd.h есть настройки для Column Address Set (2Ah) и Page Address Set (2Bh):
И как их менять - не знаю. Еще не понятно что такое SC, ES, SP, EP
А другого выхода нет. Или каждый раз перезаписывать значеия 2Ah и 2Bh. Или учитывать в процессе обработки в виде смещений. С *C и *P все и так ясно, это колоумн и пэйдж. Первые два байта начало стобца/страницы, вторые две конец столбца/страници. Переведя в десятичный вид получим (0, 0, 319, 479)
А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h? А дальше пока программ выполняется они не изменятся. Все равно ведь при инициализации дисплея эти параметры прописываются. Или я что-то не понимаю? Может мы говорим об одном и том же?
Просто я хочу внести эти настройки в initlcd.h и больше к ним не возвращаться. Что бы в скетче не писать Х+24 а просто Х вывести точку в координатах 0,0 дисплея (24,0 - координаты памяти).
Если вариантов нет кроме ка всегда прибавлять +24, то их, я так понимаю, нужно прописать в UTFT.cpp? Где и как?