Скетч с примером 400х240 выполняется красиво, без проблем. Даже исправлять ничего не надо. (У меня видео -контроллер ILI9327_8, так что 31 - в самый раз. (Плата UNO)).
Но в тесте не используется тач-скрин, а как их совместить я не знаю. А с нуля, все полностью сочинять не хочется. В посте №580 я уже это описывал эту проблему.
Я уже заказал на "Али" другой экран с процессором ILI9488. Может с ним будет проще.
Да нормально на крайняк графика по UTFT и тачскрин по Adafruit дружаться. пробовал с #include "TouchScreen.h"
только после вызова TSPoint p = ts.getPoint(); надо вернуть порты наместо:
pinMode(6, OUTPUT); digitalWrite(6,LOW );
pinMode(7, OUTPUT); digitalWrite(7, LOW);
pinMode(A1, OUTPUT); digitalWrite(A1,LOW );
pinMode(A2, OUTPUT); digitalWrite(A2, LOW);
видимо родная ворачивалка в функции не полноценна для используемых портов UTFT.
Я уже заказал на "Али" другой экран с процессором ILI9488. Может с ним будет проще.
( Ага, как раз тот случай. Думал: поскачет и помчится - фигушки ! )
Купил вот такой комплект:
Mega 2560 + TFT 3,95", на плате TFT явно краской напечатано ili9488.
Загружаю тест "UTFT_Demo_400x240.ino" , в нем меняю строку инициализации на: UTFT myGLCD(ILI9327,38,39,40,41);
Изображение видно, но оно какое то бледно-синее и мерцающее в правом верхнем углу (чуть больше, чем на пол экрана).
Посоветуйте пожалуйста: как с этим нужно бороться ? Именно такой видео-процессор нигде в "Среде разработки" не нашел. (Может не там искал, версия "Arduino 1.6.5")
Может нужен какой то код/драйвер инициализации ? Куда его вписывать ?
Получаю четкое цветное изображение, но повернутое зеркально. Пробовал другие типы видео-контроллеров: ILI9486, CTE35IPS, CTE40 - получаю белый экран и очень, очень бледные мерцания.
То есть R61581 все таки единственно подходит, но как изображение зеркально повернуть ?
Есть описание этих видео-процессоров и R61581 иILI9488 (на английском) пробовал искать что то похожее на "mirror" , но не нашел.
Заменил в файле initlcd.h R61581 и получил красивую, правильную картинку теста. Почему так сделал не могу сказать. По логике вещей должно быть наооборот. Ведь эта команда "включает зеркало" и ее рекомендовано было закоментить.
Может это еще где то боком вылезет. Так как и цвета тоже поменялись на правильные. В "зеркале" вместо красного был синий, а вместо синего - красный.
Курите PDF по данному кристалу. Вообще все зависит от многих регистров. К примеру можно записывать RGB, а можно BGR. Заметили разницу, R и B поменялись местами. Не помню пост, но суть его была такова. Мерцает экран. Смотрим настройку частоты кадров, по умолчанию во всех инициализациях берут заводскую установку 60 или 70 Гц. Пробуем установить 100 Гц и о чудо мерцание проподает. Так что читайте документацию на контроллер и пробуйте настройки. Сам кристал не сожгете, в худшем случае что то будет работать не совсем правильно, ну или совсем не будет работать. Возвращаем исходные параметры и все опять работает. Как то так.....
Не правильный выбор, ili9488 это по всем регистрам и режимам полный аналог ili9341. только надо повысить частоту фрейма до 100 Гц. Это избавит от мерцания изображения. Одна беда в убогой UTFT поддерживается только 3-write и 4-write. Эта проблемма тоже решаема. Я к примеру перенес библиотеку Adafruit шына 8bit с платформы AVR на ARM32 шина 16bit. При этом используется FSMC шина что значитеьно ускоряет работу программы. Сейчас жду STM32f429 там есть такая вкусняшка как ускоритель для управления TFT LCD и это при том что его тактовая частота 178 МГц.
Либа подойет, только у меня файл pinmagic от старой версии Adafruit. Там ноги как на Uno сдесь же шина данных на порту "a" процессора. так что надо заменить этот файл с учетом расположения ног на шилде.
Если на шилде стоит 38 пин двух рядный разъем, то используется новая версия pin_magic. Попробую найти в своих скачках и выложить в отдельную папку. Все что надо будет сделать = это заменить файл в папке Adafruit_TFTLCD библиотеки. Вот попробуй, удаляем два файла Mag UNO и mag MEGA, заменяем на pin_magic.h.
Старые файлы отцепил и убрал из папки либы? Что пишет Serial.print?
Посмотрел pdf на r61581. Есть ньюанс. Регистр D3 в ili9488 возврвщвет при чтени сигнатуру чипа, у r61581 совсем другое назначение. Похоже это несовместимые чипы.
Для тех у кого 3.5" китайский дисплей на ili9481 (инициализируется с помощью UTFT myGLCD(CTE32HR,38,39,40,41);) и зеркальное изображение, в файле initlcd.h замените
LCD_Write_COM(0x36); // Set address mode
LCD_Write_DATA(0x0A);
на
LCD_Write_COM(0x36); // Set address mode
LCD_Write_DATA(0x1A);
Ну или вообще, поэксперементируйте с битами в этой конманде (можно повернуть на 90° например).
P.S. не думал что due c дисплеем будут заметно греться (платы еле тепленькие), возможно это греется ams1117 voltage regulator, чтобы это не значило.
Другой дисплей на ili9488 у меня завелся только на uno, мигает страшно, а заказчику хочется именно его (размер 3.95" подходящий), если заставлю работать на due/mega/nucleo - напишу позже.
ili9488 - это продолжение линейки ili9341. Файл инициализации надо брать от него. Что бы исключить мерцание надо повысить частоту обновления фрейма, регистор 0хB1 = 0x0013 (100 Hz). Все это справедливо если в шилде действительно установлен ili9488. Могу выложить для STM32 проект, писал уже что работает и не только в режиме ногодрыга, а с использованием шины FSMC. На подходе stm32f4-discaveri c 429 чипом. Тут еще интереснее передача идет через DMA в FSMC на уровне железа. Все и так летало, а в данном случае думаю и видео потянет в режиме покадровой отрисовки. Остается одна задача прикрутить DDR RAM.
Хех, спасибо за помощь, код проверю.Для СТМ не надо, СТМки пока ещё только едут...а с ними и ст-линк где-то в пути...чиорт...с дма и фсмс интересно...кидайте) в кокосе писали?
Распиновку разъема LCD покажите. А лучше фото с двух сторон. И еще, шина 8 или 16 bit. Я писал под 16 bit. но переделать под 8 не составит труда. Писал в CooCox, пока на C. Надаво разобался как эту соФтину заставить работать на C++, переделываю. Про DMA и FSMC есть ньюанс, надо что бы у LCD были выведены наружу V-SINC и H-SINC т.е. можно было бы работать в режиме RGB, тогда можно использовать драйвер 429 камня. А так можно SDRAM+DMA+FSMC. записываем страници в RAM а оттуда в через DMA в LCD. Думаю должно сработать, ведь в таком случае будет грузиться готовый фрэйм без учета функций обработки примитивов.
Для этих экранов подойдёт либа дигер67, у меня такой же...но либы нету...
А нужна именно библиотека "Адафрут" ?
Ведь, если такой же TFT-экран и на "Меге", то "UTFT- не правленная" работает без проблем, меняеш строку инициализации и "зеркалирование". Глянь в моих постах №№605, 607.
myGLCD(R61581,38,39,40,41);
И "UTouch" тоже работает, но надо будет запускать калибровку и потом перезаписать коэфициенты.
UTouch myTouch( 6, 5, 4, 3, 2);
и указать максимальную точность, иначе не четко попадает:
Пришла посылка из Китая, а там два китайца :) UNO и шилд с TFT 3.95
Да, тот самый с ILI9488. Второй день не могу запустить, лишь белй экран. Скачивал разные варианты библиотек и примеров, результат никакой. Дисплей определяется с id 0xC0C0. Спасибо этой теме, скачал скетч определения id (LCD_ID_Reader). Запустил и получил тот же результат. Взял другую UNO, результат чуть изменился, но не в лучшую сторону. Выдает 0x0000.
Взял другую UNO, результат чуть изменился, но не в лучшую сторону. Выдает 0x0000.
Подскажите, куда копать? Или шилд пришел убитым?
Для начала на разных uno результат должен совпадать, иначе дело в контактах / лишней переферии / кварце (не перепаивал на 20МГц?) / загрузчике / фьюзах / плате или самом чипе (бывают битыми, да).
Для due вместо DELAY7; нужно delayMicroseconds(1);
Это позволяет одному коду работать на всех платах, менять пины, и код очень простой. Хотя и чуть медленее, но на глаз не заметно, при этом такой код работает на много быстрее на due чем хардкорный на uno. (И можно сделать файл короче на порядок, но мне лень, разовая работа, дальше в плане отпаять экран от платы-шилдта и подключить напрямую к due)
В бибилиотеках это не единственные изменение, и у меня там путаница, если кто-то хочет попробовать на моих измененных бибилиотеках запустить свой ili9488 c uno/mega/due (на остальных не пробовал, не все изменил) https://dropmefiles.com/tWfXh (мои документы -> arduino -> library - сначала все свое переместите в другое место, потом распакуйте мое. Перезапустите "arduino ide", файл -> образцы -> Adafruit1 -> Adafruit_TFTLCD-> rotationtest )
P.S. экран похоже не оч - черный фон сильно полосит, белый менее заметно, возможно смена частоты поможет, как говорили выше. (пока не нуждаюсь в этом, заказчик хочет сменить дисплей)
Похоже здесь все писатели. Ну читайте вы pdf к чипам lcd. Сравнивайте назначение одинаковых по адресу регистров в разных lcd. Все савподение R61581 и ili9488 заканчивается на регистрах slip, on/off и регистра записи в память ram lcd. То что вы подобрали частично подходящую инициализацию методом научного тыка еще не очем не говорит. На Duo любой индикатор работае немного быстрее, но не значительно. Глаз всеравно замечает мерцание при смене фрейма. Единственное решение это 32 разрядный микроконтроллер, желательно с хардовой поддержкой вывода во внешнюю память и ДМА.
Ну теперь для меня все стало очевидным. Упустил распиновку. На данном шилде нет вывода RD, что делает совершенно бесполезным данный шилд. Становится невозможным алгоритм, чтение - модификация - запись, да и проверить что стоит на борту становится обсолютно невозможно. Шилд кастрированный на 2/3. Если хочешь избавиться от гемороя вот ссылка, там реально ili9488 около 600 руб. А с этим по ходу разберешься.
Так китайцы и написали на каком LCD чипе, конечно пробуешь все либы подряд пока не заработает наиболее подходящим образом, а потом уже можно читать даташит, а не pdf. Где этот чип вообще сидит? Не вижу совсем.
На uno видео вообще показательное, правда телефон взял его и повернул..
28 поворотов за 16 секунд (1.75) и 19 поворотов за 25 секунд (0.76) что в 2.3 раза быстрее. (Если сравнить частоты то еще обидно что так мало окажется) Код один и тот же, только на due задержка при чтении больше, разгребать, до просмотра что там происходит, лапшу библиотек не хочется ради поста на форуме, и так разницу видно.
Тут форум ардуинщиков, ест-но оперируют такими понятиями как библиотеки, а не даташиты.
Я не плакал по поводу скорости, мне нужно картинку вывести раз и числа менять, подобрать правильную ориентацию и на uno будет замечательно.
Я такой же брал. В ссылке указано 3,5 дюйма. А на странице описание 3,95 дюйма.
Заметил одну особенность. У меня IDE 1.6.5 и при запуске некоторых скетчей с этим шилдом происходит следующее. Запускаю вначале пример с графикой, все работает нормально. Затем запускаю пример с touch screen, но без установленной библиотеки. Естественно идет ошибка компиляции. После этого снова загружаю в IDE пример с графикой, он компилируется, загружается в UNO, но экран остается белым. Хотя никаких изменений никуда не вносил. Лечится лишь переустановкой IDE.
Ответ в Вашем сообщении проблема в софте. Железо работает стабильно. Софт, если в нем не ковыряться бездумно так же работает стабильно. Пробовал и на Win7, и на Win8, и на Win10.
Мне как правило продавец не только реальный чип озвучивает, но и файлы примеров предоставляет, правда зачастую это примеры для 51 процов. Но главное это сам алгоритм. Ну а что куда в конкретном случае это уже на уровне знания кишок камня. PDF - это и есть даташит. По поводу частот. У DOE как я помню что то от 20МГц у STM32 от 78МГц до 180МГц. Идеология та же. Инициализация перефирии, т.е. тактирование, описание пинов, частота переключения, в случае SPI, USART и.т.д. еще добавляются полярность сигналов и включение альтернативной функции. При этом цена значительно интересней. Скажем Due на али стоит от 2500 р, STM32F3 от 1300р, STM32F4 от 1500р. Вот и думайте. Что касается использования софта Arduino, то парни из Америки прикрутили уже поддержку STM в среде разработки и активно адаптируют часто используемые библиотеки.
Ответ в Вашем сообщении проблема в софте. Железо работает стабильно. Софт, если в нем не ковыряться бездумно так же работает стабильно. Пробовал и на Win7, и на Win8, и на Win10.
Похоже, Вы невнимательно читали мое сообщение. Я там по-русски написал, что НИКАКИХ изменений в код скетчей не вносил. Скетчи из примеров к библиотеке. Дисплей работает при запуске корректного скетча. Потом запускаем другой скетч с ошибкой компиляции. Дисплей естественно не работает. Потом снова запускаем первый скетч, который работал. Но он уже не запускает дисплей. Перезапуск IDE, перезагрузка компа и сброс UNO не помогают. Лечится лишь преустановкой IDE. Поэтому и спрашиваю, кто-то с подобным сталкивался? Если не сталкивались, то лучше промолчите.
история похожая с вашей один к одному только в файле initlcd.h R61581 не нашел этих строк, пробовал менять другие похожие но бессистемно, менялись цвета
Ответ в Вашем сообщении проблема в софте. Железо работает стабильно. Софт, если в нем не ковыряться бездумно так же работает стабильно. Пробовал и на Win7, и на Win8, и на Win10.
Похоже, Вы невнимательно читали мое сообщение. Я там по-русски написал, что НИКАКИХ изменений в код скетчей не вносил. Скетчи из примеров к библиотеке. Дисплей работает при запуске корректного скетча. Потом запускаем другой скетч с ошибкой компиляции. Дисплей естественно не работает. Потом снова запускаем первый скетч, который работал. Но он уже не запускает дисплей. Перезапуск IDE, перезагрузка компа и сброс UNO не помогают. Лечится лишь преустановкой IDE. Поэтому и спрашиваю, кто-то с подобным сталкивался? Если не сталкивались, то лучше промолчите.
Ну глюк, что тут такого. надо быть всегда к этому готовым. Для этого держу у себя на компе несколько установленных IDE , (не установщиком, а zip файлами (есть на официальном сайте), иначе могут отказаться устанавливаться, даже переименовав папки в C/ProgramFiles/ , ну и мож права админа где обойти.
например IDE 165 163 158 не запускает некоторые графические скетчи с tft экранами (некоторые на скетчи ругаются), а IDE 155 работает. бывает и на оборот. Бывает еще и в общей папке в моих документах\Arduino\libraries мусор и неразбериха, так можно несколько папочек иметь и подсовывать их. Каким-то IDE нормально, а какие-то ругаются, иногда критично. Просто помню для себя какие скетчи в каких IDE хорошо работают. Так-что ничего страшного.
slider, искал распиновку tft панели 3.95 ili9488. Нашел, только там указаны все пины для цифрового режима, есть белые пятна 4 необозначенные пина. Может встречались похожие распиновки. Очень хочу запустить tft в режиме RGB на stm32f429. Известные контакты нашел здесь
история похожая с вашей один к одному только в файле initlcd.h R61581 не нашел этих строк, пробовал менять другие похожие но бессистемно, менялись цвета
В гугле вбиваешь название чипа и datasheet
Открываешь, обычно, первый попавшийся pdf файл, и если с английским дружишь, листаешь ближе к середине, ищешь таблицы, там будут описание команды (байт) и параметров (может быть несколько), если повезет то легко поймешь что где (я нашел команду bla-bla and rotate, но ничего связанного с поворотом небыло, в таком случае надо искать дальше или просто перебрать все биты параметра). Обычно все нормально находится, но бывает.
там на них всех что есть в продаже, выложены фото, схемы, и документация .
надож было тогда для народа фотки своего шлейфа выложить.
Да уж, отчаянно эти дисплеи на RGB запускать :))) (могут im0-... нужные не выведены, но в некоторых контроллерах можно через регистр задавать режим работы) , ну раз железо STM позволяет... Мож тогда на эранах от планшетников и плееров попрактиковаться, они 4" и больше, там уж точно RGB, и дешевле, т.к. контроллера с видеопамятью нет . (только им всякие питания надо организовать). Или тоже как вариант LVDS, если железо позволяет, у меня с десяток дисплеев от айфонов 3х валяется, могу поделиться. Так мож и канут совсем в небытье не задействаваные. Они вроде еще дешевле чем RGB, и используемых пинов хрен да маленько.
а..., ток заметил ниже распиновку по ссылке , я для своих дисплеев примерно прикидывал по дорожкам в шлейфе и распиновке кристалла , для ili9488 его пдф 27я стр. Большинство конечно не выведены, зато очередность соблюдается вывода с кристалла в шлейф.
Такто здорово что на http://taobao.com выкладывают инициализации и распиновки, спс, напомнил.
Скетч с примером 400х240 выполняется красиво, без проблем. Даже исправлять ничего не надо. (У меня видео -контроллер ILI9327_8, так что 31 - в самый раз. (Плата UNO)).
Но в тесте не используется тач-скрин, а как их совместить я не знаю. А с нуля, все полностью сочинять не хочется. В посте №580 я уже это описывал эту проблему.
Я уже заказал на "Али" другой экран с процессором ILI9488. Может с ним будет проще.
Да нормально на крайняк графика по UTFT и тачскрин по Adafruit дружаться. пробовал с #include "TouchScreen.h"
только после вызова TSPoint p = ts.getPoint(); надо вернуть порты наместо:
Товарищи!Пожалуйста, выложите либу ув. diger67 на файлообменник! Дисплей завести хОчу! Заранее спасибо!
Я уже заказал на "Али" другой экран с процессором ILI9488. Может с ним будет проще.
( Ага, как раз тот случай. Думал: поскачет и помчится - фигушки ! )
Купил вот такой комплект:
Mega 2560 + TFT 3,95", на плате TFT явно краской напечатано ili9488.
Загружаю тест "UTFT_Demo_400x240.ino" , в нем меняю строку инициализации на: UTFT myGLCD(ILI9327,38,39,40,41);
Изображение видно, но оно какое то бледно-синее и мерцающее в правом верхнем углу (чуть больше, чем на пол экрана).
Посоветуйте пожалуйста: как с этим нужно бороться ? Именно такой видео-процессор нигде в "Среде разработки" не нашел. (Может не там искал, версия "Arduino 1.6.5")
Может нужен какой то код/драйвер инициализации ? Куда его вписывать ?
Для этих экранов подойдёт либа дигер67, у меня такой же...но либы нету...
Загружаю тест "UTFT_Demo_400x240.ino" , в нем меняю строку инициализации на: UTFT myGLCD(ILI9327,38,39,40,41);
Изображение видно, но оно какое то бледно-синее и мерцающее в правом верхнем углу (чуть больше, чем на пол экрана).
Сделал вывод, что у меня (у дисплея) разрешение 480 х 320. Поскольку ILI9488 в UTFT нет, то выбрал похожий на него R61581 пробую:
загружаю UTFT_Demo_480x320.ino, меняю строку инициализации
myGLCD(R61581,38,39,40,41);
Получаю четкое цветное изображение, но повернутое зеркально. Пробовал другие типы видео-контроллеров: ILI9486, CTE35IPS, CTE40 - получаю белый экран и очень, очень бледные мерцания.
То есть R61581 все таки единственно подходит, но как изображение зеркально повернуть ?
Есть описание этих видео-процессоров и R61581 и ILI9488 (на английском) пробовал искать что то похожее на "mirror" , но не нашел.
Поиском нашел решение подобной проблемы. http://arduino.ru/forum/apparatnye-voprosy/tft-35-i-arduino?page=5#comment-87748
Но там был ili9327 в 8 битном режиме. Можно попробовать по аналогии.
Спасибо.
В посте №298 нашел очень интересную информацию:
Если вам не по душе кривые "зеркала", комментим следующие строки в файле initlcd.h:
Заменил в файле initlcd.h R61581 и получил красивую, правильную картинку теста. Почему так сделал не могу сказать. По логике вещей должно быть наооборот. Ведь эта команда "включает зеркало" и ее рекомендовано было закоментить.
Может это еще где то боком вылезет. Так как и цвета тоже поменялись на правильные. В "зеркале" вместо красного был синий, а вместо синего - красный.
Курите PDF по данному кристалу. Вообще все зависит от многих регистров. К примеру можно записывать RGB, а можно BGR. Заметили разницу, R и B поменялись местами. Не помню пост, но суть его была такова. Мерцает экран. Смотрим настройку частоты кадров, по умолчанию во всех инициализациях берут заводскую установку 60 или 70 Гц. Пробуем установить 100 Гц и о чудо мерцание проподает. Так что читайте документацию на контроллер и пробуйте настройки. Сам кристал не сожгете, в худшем случае что то будет работать не совсем правильно, ну или совсем не будет работать. Возвращаем исходные параметры и все опять работает. Как то так.....
Не правильный выбор, ili9488 это по всем регистрам и режимам полный аналог ili9341. только надо повысить частоту фрейма до 100 Гц. Это избавит от мерцания изображения. Одна беда в убогой UTFT поддерживается только 3-write и 4-write. Эта проблемма тоже решаема. Я к примеру перенес библиотеку Adafruit шына 8bit с платформы AVR на ARM32 шина 16bit. При этом используется FSMC шина что значитеьно ускоряет работу программы. Сейчас жду STM32f429 там есть такая вкусняшка как ускоритель для управления TFT LCD и это при том что его тактовая частота 178 МГц.
Либа подойет, только у меня файл pinmagic от старой версии Adafruit. Там ноги как на Uno сдесь же шина данных на порту "a" процессора. так что надо заменить этот файл с учетом расположения ног на шилде.
Приношу свои извенения. Долго небыло дома. Видимо отключали свет и UPS сдох, потому и сервер отвалился. Исправил, теперь все доступно.
diger67, пробую вашу либу, дисплей 3.95" ILI9488. Белый экран. Что не так?
Если на шилде стоит 38 пин двух рядный разъем, то используется новая версия pin_magic. Попробую найти в своих скачках и выложить в отдельную папку. Все что надо будет сделать = это заменить файл в папке Adafruit_TFTLCD библиотеки. Вот попробуй, удаляем два файла Mag UNO и mag MEGA, заменяем на pin_magic.h.
http://178.130.34.198/adafruit/pinmagic/
Заменил, в .cpp проинклюдил его, всё равно не работает.
Старые файлы отцепил и убрал из папки либы? Что пишет Serial.print?
Посмотрел pdf на r61581. Есть ньюанс. Регистр D3 в ili9488 возврвщвет при чтени сигнатуру чипа, у r61581 совсем другое назначение. Похоже это несовместимые чипы.
Отцепил. Сериал пишет рН и напругу;)
Для тех у кого 3.5" китайский дисплей на ili9481 (инициализируется с помощью UTFT myGLCD(CTE32HR,38,39,40,41);) и зеркальное изображение, в файле initlcd.h замените
на
Ну или вообще, поэксперементируйте с битами в этой конманде (можно повернуть на 90° например).
P.S. не думал что due c дисплеем будут заметно греться (платы еле тепленькие), возможно это греется ams1117 voltage regulator, чтобы это не значило.
______________________________________________________
Другой дисплей на ili9488 у меня завелся только на uno, мигает страшно, а заказчику хочется именно его (размер 3.95" подходящий), если заставлю работать на due/mega/nucleo - напишу позже.
Успеху с ili9488) эта тема и меня задевает)
Запусти скетч. Посмотри что выдаст терминал. Если 0x1581 то останется добавить инициализацию и этот индикатор будет работать с Adafruit.
ili9488 - это продолжение линейки ili9341. Файл инициализации надо брать от него. Что бы исключить мерцание надо повысить частоту обновления фрейма, регистор 0хB1 = 0x0013 (100 Hz). Все это справедливо если в шилде действительно установлен ili9488. Могу выложить для STM32 проект, писал уже что работает и не только в режиме ногодрыга, а с использованием шины FSMC. На подходе stm32f4-discaveri c 429 чипом. Тут еще интереснее передача идет через DMA в FSMC на уровне железа. Все и так летало, а в данном случае думаю и видео потянет в режиме покадровой отрисовки. Остается одна задача прикрутить DDR RAM.
Хех, спасибо за помощь, код проверю.Для СТМ не надо, СТМки пока ещё только едут...а с ними и ст-линк где-то в пути...чиорт...с дма и фсмс интересно...кидайте) в кокосе писали?
Вся проблема с распиновкой. У меня дисплей аналоговых входов не касается вообще...
Распиновку разъема LCD покажите. А лучше фото с двух сторон. И еще, шина 8 или 16 bit. Я писал под 16 bit. но переделать под 8 не составит труда. Писал в CooCox, пока на C. Надаво разобался как эту соФтину заставить работать на C++, переделываю. Про DMA и FSMC есть ньюанс, надо что бы у LCD были выведены наружу V-SINC и H-SINC т.е. можно было бы работать в режиме RGB, тогда можно использовать драйвер 429 камня. А так можно SDRAM+DMA+FSMC. записываем страници в RAM а оттуда в через DMA в LCD. Думаю должно сработать, ведь в таком случае будет грузиться готовый фрэйм без учета функций обработки примитивов.
Для этих экранов подойдёт либа дигер67, у меня такой же...но либы нету...
А нужна именно библиотека "Адафрут" ?
Ведь, если такой же TFT-экран и на "Меге", то "UTFT- не правленная" работает без проблем, меняеш строку инициализации и "зеркалирование". Глянь в моих постах №№605, 607.
myGLCD(R61581,38,39,40,41);
И "UTouch" тоже работает, но надо будет запускать калибровку и потом перезаписать коэфициенты.
UTouch myTouch( 6, 5, 4, 3, 2);
и указать максимальную точность, иначе не четко попадает:
myTouch.setPrecision(PREC_EXTREME);
Распиновку разъема LCD покажите...
В постах №№158, 159 - картинки, там разговор о 3,5" экране, но контакты те же для "Меги".
Добрый день,
Пришла посылка из Китая, а там два китайца :) UNO и шилд с TFT 3.95
Да, тот самый с ILI9488. Второй день не могу запустить, лишь белй экран. Скачивал разные варианты библиотек и примеров, результат никакой. Дисплей определяется с id 0xC0C0. Спасибо этой теме, скачал скетч определения id (LCD_ID_Reader). Запустил и получил тот же результат. Взял другую UNO, результат чуть изменился, но не в лучшую сторону. Выдает 0x0000.
Подскажите, куда копать? Или шилд пришел убитым?
Это с R61581...
Подскажите, куда копать? Или шилд пришел убитым?
Наконец заработал 3.95" 320х480 на ili9488 с arduino mega и due.
Для этого в файле pin_magic.h заменил захаркореные макросы
на arduino-style:
Для due вместо DELAY7; нужно delayMicroseconds(1);
Это позволяет одному коду работать на всех платах, менять пины, и код очень простой. Хотя и чуть медленее, но на глаз не заметно, при этом такой код работает на много быстрее на due чем хардкорный на uno. (И можно сделать файл короче на порядок, но мне лень, разовая работа, дальше в плане отпаять экран от платы-шилдта и подключить напрямую к due)
В бибилиотеках это не единственные изменение, и у меня там путаница, если кто-то хочет попробовать на моих измененных бибилиотеках запустить свой ili9488 c uno/mega/due (на остальных не пробовал, не все изменил) https://dropmefiles.com/tWfXh (мои документы -> arduino -> library - сначала все свое переместите в другое место, потом распакуйте мое. Перезапустите "arduino ide", файл -> образцы -> Adafruit1 -> Adafruit_TFTLCD-> rotationtest )
P.S. экран похоже не оч - черный фон сильно полосит, белый менее заметно, возможно смена частоты поможет, как говорили выше. (пока не нуждаюсь в этом, заказчик хочет сменить дисплей)
Удалось побороть проблему 0xC0C0 для экрана с ili9488. Помогла рекомендация отсюда
https://github.com/adafruit/TFTLCD-Library/issues/18
Китайцы такие китайцы, у меня нету там delay, но при этом на due, который, на порядок быстрее, работает. Как такое можно делать...
Если бы распиновочку для большого меговского экранчика...
Если бы распиновочку для большого меговского экранчика...
Похоже здесь все писатели. Ну читайте вы pdf к чипам lcd. Сравнивайте назначение одинаковых по адресу регистров в разных lcd. Все савподение R61581 и ili9488 заканчивается на регистрах slip, on/off и регистра записи в память ram lcd. То что вы подобрали частично подходящую инициализацию методом научного тыка еще не очем не говорит. На Duo любой индикатор работае немного быстрее, но не значительно. Глаз всеравно замечает мерцание при смене фрейма. Единственное решение это 32 разрядный микроконтроллер, желательно с хардовой поддержкой вывода во внешнюю память и ДМА.
Ну теперь для меня все стало очевидным. Упустил распиновку. На данном шилде нет вывода RD, что делает совершенно бесполезным данный шилд. Становится невозможным алгоритм, чтение - модификация - запись, да и проверить что стоит на борту становится обсолютно невозможно. Шилд кастрированный на 2/3. Если хочешь избавиться от гемороя вот ссылка, там реально ili9488 около 600 руб. А с этим по ходу разберешься.
http://ru.aliexpress.com/item/Free-shipping-LCD-Display-Module-TFT-3-5-inch-TFT-LCD-screen-for-Arduino-UNO-R3/1883183749.html
Так китайцы и написали на каком LCD чипе, конечно пробуешь все либы подряд пока не заработает наиболее подходящим образом, а потом уже можно читать даташит, а не pdf. Где этот чип вообще сидит? Не вижу совсем.
Не значительно быстрее? Так, ок, на видео: https://youtu.be/j7RcK7i9cno и https://youtu.be/5P5phDBn_g8
На uno видео вообще показательное, правда телефон взял его и повернул..
28 поворотов за 16 секунд (1.75) и 19 поворотов за 25 секунд (0.76) что в 2.3 раза быстрее. (Если сравнить частоты то еще обидно что так мало окажется) Код один и тот же, только на due задержка при чтении больше, разгребать, до просмотра что там происходит, лапшу библиотек не хочется ради поста на форуме, и так разницу видно.
Тут форум ардуинщиков, ест-но оперируют такими понятиями как библиотеки, а не даташиты.
Я не плакал по поводу скорости, мне нужно картинку вывести раз и числа менять, подобрать правильную ориентацию и на uno будет замечательно.
Если хочешь избавиться от гемороя вот ссылка, там реально ili9488 около 600 руб. А с этим по ходу разберешься.
http://ru.aliexpress.com/item/Free-shipping-LCD-Display-Module-TFT-3-5-inch-TFT-LCD-screen-for-Arduino-UNO-R3/1883183749.html
Я такой же брал. В ссылке указано 3,5 дюйма. А на странице описание 3,95 дюйма.
Заметил одну особенность. У меня IDE 1.6.5 и при запуске некоторых скетчей с этим шилдом происходит следующее. Запускаю вначале пример с графикой, все работает нормально. Затем запускаю пример с touch screen, но без установленной библиотеки. Естественно идет ошибка компиляции. После этого снова загружаю в IDE пример с графикой, он компилируется, загружается в UNO, но экран остается белым. Хотя никаких изменений никуда не вносил. Лечится лишь переустановкой IDE.
В чем глюк может быть?
Ответ в Вашем сообщении проблема в софте. Железо работает стабильно. Софт, если в нем не ковыряться бездумно так же работает стабильно. Пробовал и на Win7, и на Win8, и на Win10.
Мне как правило продавец не только реальный чип озвучивает, но и файлы примеров предоставляет, правда зачастую это примеры для 51 процов. Но главное это сам алгоритм. Ну а что куда в конкретном случае это уже на уровне знания кишок камня. PDF - это и есть даташит. По поводу частот. У DOE как я помню что то от 20МГц у STM32 от 78МГц до 180МГц. Идеология та же. Инициализация перефирии, т.е. тактирование, описание пинов, частота переключения, в случае SPI, USART и.т.д. еще добавляются полярность сигналов и включение альтернативной функции. При этом цена значительно интересней. Скажем Due на али стоит от 2500 р, STM32F3 от 1300р, STM32F4 от 1500р. Вот и думайте. Что касается использования софта Arduino, то парни из Америки прикрутили уже поддержку STM в среде разработки и активно адаптируют часто используемые библиотеки.
Вот ссылочка на форум.
http://www.stm32duino.com/index.php?sid=9963b1af22ce60c27c171dab3e19a7bd
не путайте народ) DUE пашет на ARMовском ядре на тех же 78МГц, и стоит она от 800 руб(клик).
Ответ в Вашем сообщении проблема в софте. Железо работает стабильно. Софт, если в нем не ковыряться бездумно так же работает стабильно. Пробовал и на Win7, и на Win8, и на Win10.
Похоже, Вы невнимательно читали мое сообщение. Я там по-русски написал, что НИКАКИХ изменений в код скетчей не вносил. Скетчи из примеров к библиотеке. Дисплей работает при запуске корректного скетча. Потом запускаем другой скетч с ошибкой компиляции. Дисплей естественно не работает. Потом снова запускаем первый скетч, который работал. Но он уже не запускает дисплей. Перезапуск IDE, перезагрузка компа и сброс UNO не помогают. Лечится лишь преустановкой IDE. Поэтому и спрашиваю, кто-то с подобным сталкивался? Если не сталкивались, то лучше промолчите.
Упс. Попутал малость с XMEGA. Что до цены оч может быть.
история похожая с вашей один к одному только в файле initlcd.h R61581 не нашел этих строк, пробовал менять другие похожие но бессистемно, менялись цвета
Ответ в Вашем сообщении проблема в софте. Железо работает стабильно. Софт, если в нем не ковыряться бездумно так же работает стабильно. Пробовал и на Win7, и на Win8, и на Win10.
Похоже, Вы невнимательно читали мое сообщение. Я там по-русски написал, что НИКАКИХ изменений в код скетчей не вносил. Скетчи из примеров к библиотеке. Дисплей работает при запуске корректного скетча. Потом запускаем другой скетч с ошибкой компиляции. Дисплей естественно не работает. Потом снова запускаем первый скетч, который работал. Но он уже не запускает дисплей. Перезапуск IDE, перезагрузка компа и сброс UNO не помогают. Лечится лишь преустановкой IDE. Поэтому и спрашиваю, кто-то с подобным сталкивался? Если не сталкивались, то лучше промолчите.
Ну глюк, что тут такого. надо быть всегда к этому готовым. Для этого держу у себя на компе несколько установленных IDE , (не установщиком, а zip файлами (есть на официальном сайте), иначе могут отказаться устанавливаться, даже переименовав папки в C/ProgramFiles/ , ну и мож права админа где обойти.
например IDE 165 163 158 не запускает некоторые графические скетчи с tft экранами (некоторые на скетчи ругаются), а IDE 155 работает. бывает и на оборот. Бывает еще и в общей папке в моих документах\Arduino\libraries мусор и неразбериха, так можно несколько папочек иметь и подсовывать их. Каким-то IDE нормально, а какие-то ругаются, иногда критично. Просто помню для себя какие скетчи в каких IDE хорошо работают. Так-что ничего страшного.
slider, искал распиновку tft панели 3.95 ili9488. Нашел, только там указаны все пины для цифрового режима, есть белые пятна 4 необозначенные пина. Может встречались похожие распиновки. Очень хочу запустить tft в режиме RGB на stm32f429. Известные контакты нашел здесь
http://world.taobao.com/item/38705369324.htm?fromSite=main&spm=a312a.7700824.w4023-12223268633.12.UHXjZl
история похожая с вашей один к одному только в файле initlcd.h R61581 не нашел этих строк, пробовал менять другие похожие но бессистемно, менялись цвета
Открываешь, обычно, первый попавшийся pdf файл, и если с английским дружишь, листаешь ближе к середине, ищешь таблицы, там будут описание команды (байт) и параметров (может быть несколько), если повезет то легко поймешь что где (я нашел команду bla-bla and rotate, но ничего связанного с поворотом небыло, в таком случае надо искать дальше или просто перебрать все биты параметра). Обычно все нормально находится, но бывает.
.
diger67 , ili9488 и на http://www.wayengineer.com/ неподошло ? если у них в поиске забить его.
http://www.wayengineer.com/index.php?main_page=advanced_search_result&search_in_description=1&keyword=ILI9488
там на них всех что есть в продаже, выложены фото, схемы, и документация .
надож было тогда для народа фотки своего шлейфа выложить.
Да уж, отчаянно эти дисплеи на RGB запускать :))) (могут im0-... нужные не выведены, но в некоторых контроллерах можно через регистр задавать режим работы) , ну раз железо STM позволяет... Мож тогда на эранах от планшетников и плееров попрактиковаться, они 4" и больше, там уж точно RGB, и дешевле, т.к. контроллера с видеопамятью нет . (только им всякие питания надо организовать). Или тоже как вариант LVDS, если железо позволяет, у меня с десяток дисплеев от айфонов 3х валяется, могу поделиться. Так мож и канут совсем в небытье не задействаваные. Они вроде еще дешевле чем RGB, и используемых пинов хрен да маленько.
а..., ток заметил ниже распиновку по ссылке , я для своих дисплеев примерно прикидывал по дорожкам в шлейфе и распиновке кристалла , для ili9488 его пдф 27я стр. Большинство конечно не выведены, зато очередность соблюдается вывода с кристалла в шлейф.
Такто здорово что на http://taobao.com выкладывают инициализации и распиновки, спс, напомнил.
Помогите пожалуйста начинающему самоучке как подключить данный дисплей к Arduino Mega 2560