3.5" TFT LCD красный меговский + mega 2560 R3 . РЕШЕНО ! + как решить другие !
- Войдите на сайт для отправки комментариев
Вс, 29/11/2015 - 18:41
эта тема задумывалась как решение в запуске этого шилда тем кто приобрел этот дисплей и закинул его в дальний угол. Чтоб могли его запустить.
И как методика , чтобы сами могли разобраться в похожих случаях.
Дабы эта проделанная работа не затерялась среди тысячи сообщений соседней ветки, создал новую тему.
Форумчанин с этого форума попросил помочь и прислал мне для изучения и запуска этого шилда TFT LCD shield 3.5" arduino mega ili9488 480x320. дисплей FPC-A35242N01QI-A
Дисплей выдавал такую вот билиберду, каракули , на всевозможных инициализациях :

по опыту могу сказать что это из-за неправильной битности или цветности. //опыт в своей ветке http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov

пересылка транспортной компанией на удивление составила всего то около 100руб (против почтой в 250р). Никто видимо так и не захотел уделять времени и сил, хотя, что и как, всё было до нельзя разжёвано и посоветовано. Просто это требовало много времени для реализации. Пришлось делать что советовал, самому.
1. первое что надо выяснить - это модель контроллера. (мало ли, закончились одни дисплеи, китайцы сунули другие, и нифига не проверили). Нагреваем феном низ шилда, отклеиваем аккуратно экран. Сначала был изучен предполагаемый даташит и провода от кристалла(контроллера) в шлейф. 27стр. PDF:

Рисуем распиновку:


Выводим RD (он оказался не разведен на шилде)
оказался под шлейфом подключен на +3.3в, режем доржку (пометил синим крестиком), и через резистор 10ком на 42пин ардуины. Чтоб в будущих скетчах не выводить лог1 на 42пин, а просто его не использовать, добавим ещё 10ком от +5в на 42пин ардуины.

пишем и оттачиваем скетч подачи управляющих сигналов и считывания командой 3Dh , ID дисплея согласно его даташиту стр.42:

Reset - сброс дисплея (лог1-сброс , лог0-нормальная работа)
CS - ChipSelect - выбор кристалла (лог1-отключение выводов, 0-включение), отключать желательно на случай переходных процессов чтения-записи, чтоб лог.0и1 с дисплея не упирались в лог.1и0 ардуино. Или на случай подключения параллельно несколько дисплеев. Если дисплей один, и всегда как принимающий данные (на RD всегда лог1) , то в принципе можно отказаться от этого вывода, подав на него лог.0 . К тому же благодаря последовательно 10ком резисторам, если встретятся сильные сигналы с дисплея и ардуины. то ничто не выйдет из строя.
RD - Read (чтение данных дисплеем, лог1-дисплей считывает, лог0-передает данные) , можно отказаться от этого вывода, если с дисплея ничего считывать не надо, а только отсылать ему команды и данные, подав на него лог.1 , что и делают производители в многих шилдах.
CD (RS) - Command (CommandData) - КомандаДанные - лог1-когда передаем команду(или адрес регистра в памяти) , лог.0 когда данные (данные в регистре памяти)
WR - Write - Запись лог1-строб записи в дисплей.
скетч для считывания ID дисплеев был составлен и отстроен на нескольких шилдах и дисплеях, выложил здесь:
скетч выдал ID=9488 это и есть ili9488
Замечу что у большинства дисплеев ID лежит по нулевому адресу. и может не иметь числа схожие с названием контроллера. Есть некоторые дисплеи у которых ID в ______ адресах(регистрах), всё это смотрится в предполагаемых даташитах.
Проще всего было подменить в UTFT инициализацию от ILI9486, в папке ...\libraries\UTFT\tft_drivers\ili9486\initlcd.h , он в UTFT такого же разрешения 320х480 .
В файле UTFT.cpp 28 место из 31го , разрешение 319х 479
word dsx[] = {............., 319, 799, 127, 127};
word dsy[] = {............., 479, 479, 159, 159};
В файле UTFT.h под номером 28 ILI9486 , оставляем закоментированным только его
//#define ILI9486 28
в скетче пишем
UTFT myGLCD(ILI9486,38,39,40,41); или UTFT myGLCD(28,38,39,40,41);
Скармливая разные инициализации и переработанные под UTFT от ili9488 , дисплей не завёлся, и предположив что по ошибке производителей шилда он 8 битный, для этого в UTFT.cpp меняем битность на 8 (UTFT будет передавать 16бит двумя 8битными с дополнительным сигналом WR )
было
byte dtm[] = {......., 16, 16, SERIAL_5PIN, SERIAL_5PIN};
стало
byte dtm[] = {......., 8, 16, SERIAL_5PIN, SERIAL_5PIN};
и пробуем в \Arduino\libraries\UTFT\hardware\avr\HW_ATmega1280.h
заменить выдачу младшего байта в портС , ведь во многих дисплеях включенных на 8 бит шина данных с DB8-DB15 для этого и заточен UTFT, приходит на пины ардуины 22-29, а в ili 9488 при 8-бит используются DB0-7 которые скомутированы 30-37пины ардуины (PORTC микроконтроллера)
для этого меняем в UTFT портА на портС
было:
#else
PORTA = VH;
pulse_low(P_WR, B_WR);
PORTA = VL;
pulse_low(P_WR, B_WR);
стало:
#else
PORTC= VH;
pulse_low(P_WR, B_WR);
PORTC = VL;
pulse_low(P_WR, B_WR);
белый экран, дисплей не завелся, значит он не 8 бит, возвращаем всё на место.
2. второе что надо выяснить - его настоящую битность.
значит конкретно с ней напутано. Исследуем дальше... согласно схеме выводов кристалла и выходов со стекла в шлейф , предположительно IM2,1 - следующие от вывода RESX замкнуты на GND . вывод IM0 выведен в шлейф. (на фотках выше) Также доказывает это вывод всех 18бит в шлейфе, (а не как обычно 16), что значит один режим это точно 18бит, а второй видимо 9 бит. Также доказывает то, что если остановить скетч на выдаче данных (порт сконфить на вход. включить подтягив. резисторы), на выходе шлейфа с DB0-DB8 дисплей пересиливает слабые сигналы с 10ком резисторов, четко видны уровни лог0 и лог1 от дисплея,.а DB9-DB17 в Z-состоянии. - значит дисплей был настроен на 9 бит. поэтому UTFT и не справлялись с ним.
! IM0 (пин2) на шилде идёт на +3,3в (пин3) прям под шлейфом. Чтобы перерезать дорожку, надо хотябы половину шлейфа отпаять. Поэтому простое решение паяльник и наточенная плоско и остро зубочистка под пин IM0 , воткнутая с обратной стороны под прогретый вывод паяльником. Проверяем чтоб он потерял контакт с 3им пином. И замыкаем на рядом GND (пин1):
Решение:

Теперь при считывании данных , лог0 и 1 наблюдаются на всех 18бит шлейфа. 16битный режим и 18битный немного схожи при определенной передачи цветности. (не буду загружать картинками из даташита, кто хочет может сам глянуть со стр.123) Запускаем UTFT на 16бит как было и о чудо !!! Переворачиваем в регистре 36h

получаем в итоге УРА !!!
UTFT\examples\Arduino (AVR)\UTFT_Demo_480x320

проверяем цветность
#include <UTFT.h>
int i;
UTFT myGLCD(28,38,39,40,41);
void setup() {
myGLCD.InitLCD();
myGLCD.clrScr();
for (i=0; i<255; i++)
{
myGLCD.setColor(i,0,0);
myGLCD.drawLine(i,0 ,i,50);
myGLCD.setColor(0,i,0);
myGLCD.drawLine(i,50 ,i,100);
myGLCD.setColor(0,0,i);
myGLCD.drawLine(i,100 ,i,150); // белый
myGLCD.setColor(i,i,i);
myGLCD.drawLine(i,150 ,i,200);
myGLCD.setColor(i,i,0);
myGLCD.drawLine(i,200 ,i,210);
myGLCD.setColor(i,0,i);
myGLCD.drawLine(i,210 ,i,220);
myGLCD.setColor(0,i,i);
myGLCD.drawLine(i,220 ,i,230);
}
}
void loop()
{
// put your main code here, to run repeatedly:
}
сравнение с зененым шилдом для УНО 400х240 ili9327
Все цвета присутствуют. значит 18битный режим ili9488 в нужной цветности подошёл для 16ти битного режима адресации в UTFT .
Тач кстати то работал, то нет (перелом шлейфа в месте пайки), пришлось оторвать его шлейф от платы, зачистить и снова припаять.
UTouch\examples\Arduino\UTouch_QuickDraw
видно, что нажатия по периметру стремятся отобразиться к правее центра, значит там тач немного продавлен. Но ничего страшного , при хороших нажатиях, библиотека UTouch более менее справляется
UTouch\examples\Arduino\UTouch_QuickPaint :
собственно это всё.
Пожалуйста. Шилд был отправлен обратно его хозяину.
"Спасибо" благодарность за проделанные исследования, сил и время можно отправить на карту Сбербанка 4276 4500 1754 7783 или скинуть на тлф. 8-951-ЧОЧ-71O9 или на яндекс кошелек 410013695938113 .
архив UTFT 2.79 c подмененой (добавленной) инициализацией для ILI9488 , +разные найденные инициализации init code ili9488 в папке \UTFT\tft_drivers\ili9486 +проверенный тач (изменен в юстировке portrait на ladscape, отюстированные данные подставлены), т.е. готово к использованию:



В примерах уже подставлены 28 или ili9486 ( UTFT myGLCD(ILI9486,38,39,40,41); ) - это всё для этого шилда ili9488 (смотрим внимательней на первые фото, шилды ili9488 бывают не такие же). Ещё раз!, в своих в скетчах пишем
Для новичков, надо стереть предыдущие библиотеки utft и utouch из C:\Users\...\Documents\Arduino\libraries и заменить этими. Чтобы старый мусор от них не мешал.
Тех кто хочет считать ID с него (или пользоваться его видеопамятью) - надо задействовать RD, можно обойтись теми резисторами что на нём есть.
1. режем дорожку как говорил ранее (или также плоско наточенной зубочисткой поднимаем 32й пин дисплея )
2. подключаем так
10к на +5v с U2 , необходимо чтоб в скетчах не конфить 42й пин на выход и уст. лог.1 ( pinMode(42,OUTPUT); digitalWrite(42,HIGH); ). . А просто не использовать его. Тогда он по умолчанию будет как вход, и через 10к, на нём будет лог1, которая и будет включать дисплей в ваших скетчах на приём команд и данных от Ардуино.
Проверить, такого дисплея у меня нет. проверяйте. (я заводил с лицевой части шилда отдельным резистором 42й пин с Ардуино и 32й пин дисплея)
//П.С. поправка, в первом сообщении правильней: Reset - сброс дисплея (лог0-сброс , лог1-нормальная работа).
На других ранних шилдах где питание к дисплею бралось с +3,3в ардуины, а со стабилизатора только на подсветку, этой лог1 на RESET и лог. уровней с других выводов хватало для запитки дисплея с лихвой. Можно было обойтись без +3,3в с ардуино. И довольно таки с лихвой, что питание дисплея пересиливалось лог.1 уровнями (с ардуино) и было аж выше 4в (а дисплею максимум можно 3,3в) , поэтому и придумали китайцы соеденить вместе +3,3в и подсветку. Белые светодиоды в ней выступают в роли стабилитронов, и не дают напряженю питания дисплея подняться выше +3...+3,2 вольт. Такое решение имеет и "-", на который можно не особо обращать внимания. Это если стоят вместо резисторов , 2х сторонние "преобразователи уровней" , то лог.1 +5в с Ардуино, через ""преобразователи уровней"" (внутренние диоды от входа на питание) упирается в +3в , тес самым Ардуинка напрягается, ну и больше кушает.
Уважаемый Slider. Как старый электронщик, с интересом прочитал эту заметку. Просто поразительно, отличное знание темы. Но вот вопрос. У меня подобная же игрушка из китайского интернет магазина. Подобная, но не один в один. 3,95", но вообщем всё тоже самое, ни один драйвер не подходит.
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
И вот чудо с вашим драйвером выробляе як и трэба. Великий дякуй вам паважаны Slider.
Мой 3,95'' (ili 9488) завёлся тоже не сразу, пришлось искать и ковырять библиотеку, чтоб избавиться от зеркальности изображения ( the display is mirror inverted, if there is made no correction in initlcd.h (COM(0x36): DATA(0x8A) instead of DATA(0x0A).), чтоб синхронизировать LCD и Touch (сейчас точно не вспомню, но вроде в том же initlcd.h менял значения с portrait на landscape то ли в строке LCD то ли в Touch). Завёлся с библиотекой UTFT и строками инициализации:
UTFT myGLCD(CTE32HR,38,39,40,41);
UTouch myTouch( 6, 5, 4, 3, 2);
Возни и поисков было на три дня, но... результат есть и он вполне приемлимый. С этим скетчем всё работает:
Мой 3,95'' (ili 9488) завёлся тоже не сразу, пришлось искать и ковырять библиотеку, чтоб избавиться от зеркальности изображения ( the display is mirror inverted, if there is made no correction in initlcd.h (COM(0x36): DATA(0x8A) instead of DATA(0x0A).)
Здравствуйте pankotskiy! Скажите, какой именно надо менять initlcd.h, у меня их много в libraries\UTFT\tft_drivers\, я не знаю какой точно используется.
В первую очередь пробовал:
c:\Arduino\libraries\UTFT\tft_drivers\r61581\
c:\Arduino\libraries\UTFT\tft_drivers\ili9486\
и т.п.
И можно ли исправляемую строку привести? Железо анологичное что и у вас.
Пробовал по совету slider, перебирал много, не нашел решение...
PS. Колеги, снимаю вопрос! Благодаря супер профессионалу slider, с его супер постами что выше, ответил на свой вопрос!
Добавлю сюда про ещё один меговский шилд , любезно предоставленный СанСанычем
надпись на плате 3.95" TFT LCD for arduino mega 2560(ili9488) , на дисплее FW-TFT040-V08A
По результатам решения сразу скажу что контроллер диспа действительно ili9488 , что на адафруите не хотел запускаться потому как автоматом там не определялся, на UTFT не запускался потому как шина дисплея 8бит и к тому же заведена на PORTA (по умолчанию в либе всё с точностью наоборот).
А теперь всё по порядку:
Плюсы этого шилда что самый дешёвый из 480x320 3.95" , свободен портС (пины 30-37 ) . И для тача стоит спецмикруха XPT2046 , шина SPI но подключена как софтовый , либа сродни УТФТ - UTouch , инит стандартный UTouch myTouch( 6, 5, 4, 3, 2); . Скорость вывода общей инфы на дисп, не кардинально отличается от 16бит ili9488 ибо команды по пересылке теже 8бит, разве что цветность передается в 2 шага, но это не долго в сравнении с другими процессами. // можете сравнить у кого есть меговский 16битный ili9488 480x320 на UTFT и черкнуть сюда за сколько времени стандартный тест выполнился. Время теста данного шилда(8бит ili9488 480x320 ) - 47,5сек ! - это достаточно быстро из-за доработанной либы turbo. Полагаю что время 16бит гдето совсем рядом, так что эти 8бит шилды можно брать.
для чтения ID вывел RD, вам нечего паять не нужно. Картинки кликабельны.
читалка портаА ID_display_read_to_serial_monitor_universal_v3_1_PORTA выдала
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 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 00 08 00 00 00 00 00 00 register 0B 00 00 00 00 00 00 00 00 register 0C 00 06 00 00 00 00 00 00 register 0D 00 00 00 00 00 00 00 00 register 0E 00 00 00 00 00 00 00 00 register 0F 00 00 00 00 00 00 00 00 register 10 00 00 00 00 00 00 00 00 register 11 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 54 54 54 54 54 54 54 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 54 54 54 54 54 54 54 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 93 30 93 30 FF FF FF 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 FF FF 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 A0 11 11 11 11 11 11 register B2 00 00 11 11 11 11 11 11 register B3 00 00 11 11 11 11 11 11 register B4 00 02 02 02 02 02 02 02 register B5 00 02 02 0A 04 04 04 04 register B6 00 02 02 3B 3B 3B 3B 3B register B7 00 06 06 06 06 06 06 06 register B8 00 00 00 02 02 02 02 02 register B9 00 04 04 04 04 04 04 04 register BA 00 04 04 04 04 04 04 04 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 20 00 00 00 00 00 register BF 00 00 00 00 00 00 00 00 *** register C0 00 0E 0E 0E 0E 0E 0E 0E register C1 00 44 08 08 08 08 08 08 register C2 00 33 33 33 33 33 33 33 register C3 00 33 33 33 33 33 33 33 register C4 00 33 33 33 33 33 33 33 register C5 00 00 40 00 40 40 40 40 register C6 00 E0 01 01 01 01 01 01 register C7 00 00 00 00 00 00 00 00 register C8 00 B0 B0 B0 B0 B0 B0 B0 register C9 00 BB BB BB BB BB BB BB register CA 00 0B 0B 0B 0B 0B 0B 0B register CB 00 A8 A8 A8 A8 A8 A8 A8 register CC 00 03 03 03 03 03 03 03 register CD 00 43 43 43 43 43 43 43 register CE 00 02 02 02 02 02 02 02 register CF 00 F8 F8 F8 F8 F8 F8 F8 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 09 40 00 00 register D3 00 00 94 88 88 88 88 88 *** register D4 00 97 00 00 00 00 00 00 register D5 00 0C 00 00 00 00 00 00 register D6 00 00 00 00 00 00 00 00 register D7 00 03 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 54 00 00 00 00 00 00 *** register DB 00 80 00 00 00 00 00 00 *** register DC 00 66 00 00 00 00 00 00 *** register DD 00 02 00 00 00 00 00 00 register DE 00 01 00 04 08 0C 0D 0E register DF 00 00 00 00 00 00 00 00 register E0 00 00 07 0C 05 13 09 36 register E1 00 00 20 23 04 10 06 37 register E2 00 00 00 00 00 00 00 00 register E3 00 00 00 00 00 00 00 00 register E4 00 03 03 03 03 03 03 03 register E5 00 74 74 74 74 74 74 74 register E6 00 00 00 00 00 00 00 00 register E7 00 4C 4C 4C 4C 4C 4C 4C register E8 00 44 44 44 44 44 44 44 register E9 00 00 00 00 00 00 00 00 register EA 00 14 14 14 14 14 14 14 register EB 00 40 80 03 00 00 00 00 register EC 00 00 02 03 78 FF FF 04 register ED 00 00 00 00 00 00 00 00 register EE 00 2A 2A 2A 2A 2A 2A 2A register EF 00 00 00 00 00 00 00 00 *** register F0 00 01 13 13 13 13 13 13 register F1 00 36 04 00 3C 0F 64 15 register F2 00 58 04 12 02 22 22 FF register F3 00 02 20 00 AA 01 01 01 register F4 00 00 00 08 91 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 A9 51 2C 82 48 00 09 register F8 00 21 04 82 00 00 00 00 register F9 00 00 00 00 00 00 00 00 register FA 00 00 00 00 20 00 00 00 register FB 00 00 0F FF 90 FF FF FF register FC 00 00 05 0E 20 07 00 05 register FD 00 00 00 00 00 00 00 00 register FE 00 00 00 00 00 00 00 00 register FF 00 42 30 34 06 06 06 06Решающие D3h 00 00 94 88 , остальные 04h 00 54 80 66 00 00 00 00 , DA - 00 54 , DB - 00 80 , DC - 00 66
И так, в архиве всё собрано и настроено к пользованию, опишу что уже там сделал и что к чему, распаковать всё в мои документы ...\Arduino\libraries , похожих либ что в архиве там не должно быть , иначе IDE будет ругаться на повторные библиотеки. Сопротивление тача 700 и 240 Ом (отклеился 2й пин шлейфа от стекла, помог прогрев , через скользкую бумагу, его на стекле и удержание пару сек чтоб остыл и прикрепился)
1. на основе библиотек henningkarlsen
- графика UTFT . за основу взят UTFT_v2.77b2_uno_ili9327_8bit_turbo , 1. добавил много разных инитов на ili9488 в UTFT\tft_drivers\ili9327_8 и не стесняйтесь заглядывать в их initlcd.h там закоментированы переворачивания и т.д.; 2. в либе заменил разрешение на disp_x_size = 319; disp_y_size = 479; display_transfer_mode = 8; и заменил _delay_ms на delay; переписал LCD_Write_DATA(char VH,char VL) для тработы tinyFAT 3. в примере UTFT\examples\Arduino (AVR)\UTFT_Demo_480x320 заменил вызов на №31 ; 4. в UTFT\hardware\avr\HW_ATmega1280.h заменил портС на портА , и также регистр DDRC на DDRA .
используем пример UTFT_Demo_480x320
- тач UTouch на базе UTouch v1.30.zip , изменил вызовы в примерах, PORTRAIT на LANDSCAPE в калибровке , сделал калибровку и записал ее данные в файл библиотеки. Напомню , функция myTouch.setPrecision(...); позволяет установить точность нажатия.
- tinyFAT с UTFT_tinyFAT работа с microSD . изменен тип экрана на №31 . флэшка 2 или 4 Gb форматировать на FAT (16), пример UTFT_tinyFAT\examples\Demo_Landscape , картинки на флэху закинуть из папки UTFT_tinyFAT\Image-files . Качество и красочность картинок порадуют. Если свои фотки , то в UTFT\Tools есть конвертер в RAW - ImageConverter565.exe . // 10ком резисторы на меньшие не перепаивал, и так всё считывало, ибо либа использует софтовый SPI.
2. на основе Adafruit
графика Adafruit ( либы Adafruit_TFTLCD + Adafruit_GFX ) либа одна из последних, где присутствуют много всяких контроллеров. в примерах включил принудительно ili9488 , изменил распиновку на
Попытаюсь воскресить тему!
Кто-нибудь загружал скетч во всеми "вкраплениями" размером больше 90 К? Всё работает?
конкретней.
на atmega2560 , atmega128 ограничение памяти progmem 65кбайт , иначе глюк
http://arduino.ru/forum/programmirovanie/avr-ogranichenie-na-obem-dannykh-razmeshchennykh-v-flash-pamyati-programy
,
ежели речь о файле с микросд , то максимум не пробовал. В инете должно полно инфы на это.
Все понимают что не работает но никто не понимает почему.
Я ничего не путаю?
В меге 2560 и 1280 - 256К и 128К соответственно, можно использовать только 64?
Только мне кажеться что тут что то не то?
привет товарищ
У меня также есть FPC-A35242N01QI-A, я хочу управлять им с помощью stm32, но я не знаю определения контакта,Каково определение контакта?
Все понимают что не работает но никто не понимает почему.
Я ничего не путаю?
В меге 2560 и 1280 - 256К и 128К соответственно, можно использовать только 64?
Только мне кажеться что тут что то не то?
Для адресации за пределами 64К нужны far-указатели.