ничего с ним не сделаете, в смысле напрямую не подключите к 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:
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
При попытке прошить ДУЕ выдает ошибку:
компилятор тебе говорит что нет у тебя
я не знаю как там с портами на ДУЭ
ТЫ точно не забыл нигде скобку закрыть, а то похоже
На 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, добрый день! Пробую определить дисплей, что за контроллер стоит. Читалки выдают такой результат:
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, добрый день! ....
Можете подсказать что за контроллер и какая инициализация?
Добрый., там видно с аналогией 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? Где и как?