Дисплей как и прежде: только мигает и меняет уровень яркости. А не может ли быть что бы линия данных и правляющие пины стоят наоборот, перепутаны местами?
Если IM0 и IM1 подключить к "+" то читалка выдает следующее:
forfrends, Ну вот, теперь из фото понятно , почему вычитывается лабуда всегда разная . ! не надо так доверять этим макеткам и проводам. Несколько раз уже попадался на этом. И боюсь спросить , где же RD , и почему на него подана лог1 ? или это RST . И резисторы с цветной маркировкой выглядят как 10к , параллельно , в итоге это 5к - но это мелочи по сравнению с первыми двумя находками. GND от ардуино то хорошо что сдублировали на нижнюю линию макетки , так это тогда не имеет смысла раз верхнюю с нижней линией не сдублировали.
Чтобы замыкать неиспользуемые 8бит шины данных на GND напрямую, надо быть уверенным 1.что вы включили с помощью IM.. именно режим 8бит, и 2.взяли именно правильные 8 бит. Иначе получите КЗ контроллера, при опросе на выходах он будет выдавать иногда лог1 +3.3в , а вы их на землю закоротили. Так нельзя. Если и играетесь бездумно с IM.. , и пытаетесь вычитывать с контроллера, то садите только через резисторы на землю.
И осторожно так с такими макетками для дисплеев , дисплей д.б. жестко закреплен к такой макетке. Порвать иль переломить шлейф за нефиг делать, в вашем случае с натыкиванием проводов. В таких случаях удлините эту макетку и жестко фиксируйте дисп чтоб не повредить шлейф. И не надо его так сильно выгибать наизнанку , это тоже можно сказать прощай дисп, вес то у него приличный. Возможно этот дисп с такими манипуляциями уже не жилец. Посмотрите как croc19 подходит к этому вопросу - вытравливает платы. Посмотрите по теме какие макетки делаю , по времени почти также с паяльником перепаять провод , как и переткнуть провод на вашей макетке. Зато совершенно надежный контакт.. Эмаль провода можно купить или под рукой можно ковырнуть из двигателей старых кассетных магнитофонов,... и разных цветов попадаются. . С трансформаторов не особо пойдет , там они с двойным лаком , просто от нагрева паяльника так просто не лудятся , надо зачищать. Чип резисторы в местных магазах проще купить , 100шт около 10-20руб. Макетки 7x9 и пины с али. Иногда даже так дисп и оставляю на макетке, делаю новую для следующего, так уже штук 10 так и оставил нераспаянными вместе с диспами, на случай проверки перед сотворением какойнить поделки. к примеру вот от vivaz u5 u8:
Доброе утро. Slider у меня собрана платка с делителями стояли 470 ом и 1к напряжение было 3.1 вольта переделал на 10к и 20к как вы писали раньше сейчас 2.8 вольта и стоит для питания дисплея lm1117 выставил напряжение 3 вольта. Да инит ili9488 не пробовал и от сони эрика VIVAZ U5 U8 , вы об этом. Что мне до этого писали пробовал раздвоение картинки так и оставалось.
Вот моя платка. Сегодня попробую эти иниты. Да после перепайки делителя выдала читалка:
Tvicks, согласно прошлым мессагам с 10й страницы, попробуйте дисп от GT-S5230 (их должно быть полно у народа и особо в ремонтах), раз коннектор установлен. Чтот-конечно странно что от GT-S5233 не завелся, в инете тож встречал что они немного разные.
можете разместить инит от GT-S5230 ? глянуть, чтоб долго в сети не искать.
Да меня тоже смущает что он по нормальному не работает, у сотового накрылся процик и мне отдали на запчасти.
/* mbed UniGraphic library - Device specific class
* Copyright (c) 2015 Giuliano Dianda
* Released under the MIT License: http://mbed.org/license/mit
*/
#include "Protocols.h"
#include "S6D04D1.h"
//////////////////////////////////////////////////////////////////////////////////
// display settings ///////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
// put in constructor
//#define LCDSIZE_X 240 // display X pixels, TFTs are usually portrait view
//#define LCDSIZE_Y 400 // display Y pixels
S6D04D1::S6D04D1(proto_t displayproto, PortName port, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const char *name , unsigned int LCDSIZE_X, unsigned int LCDSIZE_Y)
: TFT(displayproto, port, CS, reset, DC, WR, RD, LCDSIZE_X, LCDSIZE_Y, name)
{
hw_reset();
BusEnable(true);
identify(); // will collect tftID, set mipistd flag
init();
auto_gram_read_format();// try to get read gram pixel format, could be 16bit or 18bit, RGB or BGR. Will set flags accordingly
// scrollbugfix=1; // when scrolling 1 line, the last line disappears, set to 1 to fix it, for ili9481 is set automatically in identify()
set_orientation(0);
FastWindow(true); // most but not all controllers support this, even if datasheet tells they should. Give a try
cls();
locate(0,0);
}
S6D04D1::S6D04D1(proto_t displayproto, PinName* buspins, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const char *name , unsigned int LCDSIZE_X, unsigned int LCDSIZE_Y)
: TFT(displayproto, buspins, CS, reset, DC, WR, RD, LCDSIZE_X, LCDSIZE_Y, name)
{
hw_reset();
BusEnable(true);
identify(); // will collect tftID, set mipistd flag
init();
auto_gram_read_format();// try to get read gram pixel format, could be 16bit or 18bit, RGB or BGR. Will set flags accordingly
// scrollbugfix=1; // when scrolling 1 line, the last line disappears, set to 1 to fix it, for ili9481 is set automatically in identify()
set_orientation(0);
FastWindow(true); // most but not all controllers support this, even if datasheet tells they should. Give a try
cls();
locate(0,0);
}
S6D04D1::S6D04D1(proto_t displayproto, int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC, const char *name , unsigned int LCDSIZE_X , unsigned int LCDSIZE_Y )
: TFT(displayproto, Hz, mosi, miso, sclk, CS, reset, DC, LCDSIZE_X, LCDSIZE_Y, name)
{
hw_reset(); //TFT class forwards to Protocol class
BusEnable(true); //TFT class forwards to Protocol class
identify(); // will collect tftID and set mipistd flag
init(); // per display custom init cmd sequence, implemented here
auto_gram_read_format();// try to get read gram pixel format, could be 16bit or 18bit, RGB or BGR. Will set flags accordingly
// scrollbugfix=1; // when scrolling 1 line, the last line disappears, set to 1 to fix it, for ili9481 is set automatically in identify()
set_orientation(0); //TFT class does for MIPI standard and some ILIxxx
FastWindow(true); // most but not all controllers support this, even if datasheet tells they should. Give a try
cls();
locate(0,0);
}
// reset and init the lcd controller
void S6D04D1::init()
{
/**********************************************
TFT1P CODE Initialization of Truly
************************************************
Panel:3.0 240400
Driver IC:S6D04D1X21-BAF8
************************************************/
wr_cmd8(0xE0);
wr_data8(0x01);
wr_cmd8(0x11);
wait_ms(150);
wr_cmd8(0xF3);
wr_data8(0x01);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x0C);//Do not set any higher VCI1 level than VCI -0.15V. 0C 0A
wr_data8(0x03);//VGHе’ЊVGL 01 02VGH=6VCI1,VGL=-4VCI1.
wr_data8(0x75);
wr_data8(0x75);
wr_data8(0x30);
wr_cmd8(0xF4);
wr_data8(0x4C);
wr_data8(0x4C);
wr_data8(0x44);
wr_data8(0x44);
wr_data8(0x22);
wr_cmd8(0xF5);
wr_data8(0x10);
wr_data8(0x22);
wr_data8(0x05);
wr_data8(0xF0);
wr_data8(0x70);
wr_data8(0x1F);
wait_ms(30);
wr_cmd8(0xF3);
wr_data8(0x03);
wait_ms(30);
wr_cmd8(0xF3);
wr_data8(0x07);
wait_ms(30);
wr_cmd8(0xF3);
wr_data8(0x0F);
wait_ms(30);
wr_cmd8(0xF3);
wr_data8(0x1F);
wait_ms(30);
wr_cmd8(0xF3);
wr_data8(0x7F);
wait_ms(30);
wr_cmd8(0xF7);
wr_data8(0x80);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x05);
wr_data8(0x0D);
wr_data8(0x1F);
wr_data8(0x26);
wr_data8(0x2D);
wr_data8(0x14);
wr_data8(0x15);
wr_data8(0x26);
wr_data8(0x20);
wr_data8(0x01);
wr_data8(0x22);
wr_data8(0x22);
wr_cmd8(0xF8);
wr_data8(0x80);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x07);
wr_data8(0x1E);
wr_data8(0x2A);
wr_data8(0x32);
wr_data8(0x10);
wr_data8(0x16);
wr_data8(0x36);
wr_data8(0x3C);
wr_data8(0x3B);
wr_data8(0x22);
wr_data8(0x22);
wr_cmd8(0xF9);
wr_data8(0x80);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x05);
wr_data8(0x0D);
wr_data8(0x1F);
wr_data8(0x26);
wr_data8(0x2D);
wr_data8(0x14);
wr_data8(0x15);
wr_data8(0x26);
wr_data8(0x20);
wr_data8(0x01);
wr_data8(0x22);
wr_data8(0x22);
wr_cmd8(0xFA);
wr_data8(0x80);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x07);
wr_data8(0x1E);
wr_data8(0x2A);
wr_data8(0x32);
wr_data8(0x10);
wr_data8(0x16);
wr_data8(0x36);
wr_data8(0x3C);
wr_data8(0x3B);
wr_data8(0x22);
wr_data8(0x22);
wr_cmd8(0xFB);
wr_data8(0x80);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x05);
wr_data8(0x0D);
wr_data8(0x1F);
wr_data8(0x26);
wr_data8(0x2D);
wr_data8(0x14);
wr_data8(0x15);
wr_data8(0x26);
wr_data8(0x20);
wr_data8(0x01);
wr_data8(0x22);
wr_data8(0x22);
wr_cmd8(0xFC);
wr_data8(0x80);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x07);
wr_data8(0x1E);
wr_data8(0x2A);
wr_data8(0x32);
wr_data8(0x10);
wr_data8(0x16);
wr_data8(0x36);
wr_data8(0x3C);
wr_data8(0x3B);
wr_data8(0x22);
wr_data8(0x22);
//wr_cmd8(0x35);
wr_cmd8(0x34); // tearing effect line off
wr_cmd8(0x36);
wr_data8(0x48);//08
wr_cmd8(0x3A);
wr_data8(0x05);
wr_cmd8(0xF2);
wr_data8(0x17);
wr_data8(0x17);
wr_data8(0x0F);
wr_data8(0x08);
wr_data8(0x08);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x00);
wr_data8(0x13);
wr_data8(0x00);
wr_cmd8(0xF6);
wr_data8(0x00);
wr_data8(0x08);
wr_data8(0x00);
wr_data8(0x00);
wr_cmd8(0xFD);
wr_data8(0x02);
wr_data8(0x01);//240*400
wait_ms(20);
wr_cmd8(0x29); // display on
wait_ms(20);
}
У GT-S5230 и GT-S5233 разные коннекторы, их друг с другом не заменить надо делать под него платку.
На некоторых форумах есть смайлы, та вот здесь их не хватает... хотел поставить смайл "застрелиться"...
Мучился я долго с дисплеем (пост №594)... спаял небольшую плату-переходник с резисторами:
Но все результаты были неутешительными... Как оказалось, я неправиль считал номера пинов данных. У меня просто вылетелоиз головы что пинов 18! а не 16... и я вместо того что бы подключить пины 0-7 подключал пины 2-9... Исправил. Читалка внятно выдала BF = 00 02 04 94 81 FF 00 00. Дисплей завелся на минимальном ините:
Дисплей завелся не корректно, изображение смещено, отзеркалено, и похоже повернуто на 90 градусов. Теперь осталось нормально инит подобрать. Я с Adafruit не работал и совершенно не снаю как ее использовать. Мне было бы не много удобнее с UTFT. Но там нет 8 бит. Надо бы разобраться как и что...
forfrends, о.. ,норм, победили дисп. как и полагалось что-то с подключением напортачено было.
с чип резисторами уже прикольней, красивше и надежней. Лог читалки от ili9481 - хорошо.
откуда вы взяли что в UTFT нет 8бит? есть там всё! в теме много приводил примеров на базе ili9327 turbo. если будет снова какой затык, спрашивайте. Если будете проект собирать на меге, то пользуйте все 16бит (IM.. глянете по даташиту), - чутка пошустрее будет, на стандартном UTFT будет работать. пример UTFT_Demo_480x320 , вызов оставить там тот же UTFT myGLCD(CTE32HR,38,39,40,41); это равно как и UTFT myGLCD(ILI9481,38,39,40,41); , В memorysaver.h лишниих disable раскоментить. И на RD не забудте подать + .
Попробовал инит UTFT myGLCD(HX8352A, - результат тот же. В читалке написал identifier = 0x7575; но и это не помогло.
Стал смотреть распиновку. С IMx что-то не понятное. По даташиту на HX8352A задающие пины (P68, BS2,BS1,BS0) заходят ПЕРЕД Ресетом и пинами D17,D16... Те же контакты, которые я принял за управляющие (Пин 9 и 10) заходят в кристалл после управляющих пинов RS,CS,GND. В кристалл перед Ресетом заходят GND, +, GND.
В общем не понятно возможно ли вообще его перевключить на 8 бит и в каком режиме он работатет сейчас.
Методу предлагал ранее: берете белый светодиод или любой другой но с резистором 300-500ом . анодом на +3.3в , катодом на DB8....DB15..DB17 , и запускаете читалку . Если светодиод будет подмигивать (именно только когда она опрашивает регистры) , значит контроллер дисплея выдает , на опросы читалки, лог.0 и в старшие разряды DB8... DB16... - отсюда можно сделать соответствующий вывод в какой он битности 8/9/16/18 .
и в этом дисплее , пробуете это в разных вариациях пинов 8 и 9 шлейфа дисплея. (только через 10к , а то вдруг это какието выхода, ибо что-то странно, согласно даташиту , IM (BS) находятся с другой стороны)
// подрисуйте на фотке шлейфа, примерно как в ссылках comment-302671 , будет легче сориентироваться где примерно IM (BS) . Фоткать лучше под увеличительным стеклом или цифровиком. Со шлейфа можно немного содрать черного резин. герметика. Только тогда по дорожкам можно будет и проследить.
/////
forfrends пишет:
....
Попробовал инит UTFT myGLCD(HX8352A, - результат тот же.
.....
Ну как-бы HX8352A там как раз по умолчанию 16бит (если там силком не переключать битность на 8 , но для этого и дисп длжен быть в 8бит)
это на крайняк уже, можете подключить полноценно все 16бит на Мегу, и только потом уже использовать пример UTFT .
Может ли быть что синий цвет это не 16 бит а неправильный инит?
при этом 8 и 9 пин комбинировали через резисторы? (напряжение они не засаживают, иначе это выхода)
говорил вам прорисовать на фото дорожек на стекле в шлейф.
Зачем и что правили в UTFT.cpp? (исходя из предположения что дисп 8бит, да и либу надо в 8 ?) ,
вам советовал подключить все 16бит дисплея и запустить некопанный UTFT , вы это сделали? каков результат? ( подключение разрисовано в \Arduino\libraries\UTFT\Documentation\UTFT_Requirements.pdf ) //обычно если в шлейфе выведено 18бит, то он по умолчанию б.д. на эти 16.
синий цвет возможен если дисплей 16бит , а библиотека настроена на 8. (специально так проверил в comment-292783 , но это не для всех контроллеров)
а что в меге пинов не хватает? переназначить проще на любые цельные порты.
так предложил же вам расзрисовать примерно дорожки как в page4page=4_, можно найти эти IM . Если снаровка есть , можно перерезать их иголкой и припаять куда надо.
Если надо меньше железку, то подключайте все 16бит диспа к ардуине нано, мини .
куда см. - \Arduino\libraries\UTFT\Documentation\UTFT_Requirements.pdf .
на не копанной либе , останутся вам свободные аналоговые A6 A7 . для проектов логгеров хватит. (а вот на леонарде пинов не хватат)
и 4 пина в сумме свободных , можно и I2C уже использовать - если выкинуть из либы CS , RESET . (здесь в теме делал такую UTFT 8бит ili9488 comment-192385 , а для 16бит надо ее подправлять) , расширители, регистры (параллельно D0-D7 можно будет подключаться , входа-выхода будут свободные , тоже в теме делал comment-146701) и много чего, было бы желание.
// можете еще попробовать ускорить рисование, выкинуть возможно лишние команды при рисовании пикселей
закоментировав строки в \Arduino\libraries\UTFT\tft_drivers\hx8352a\setxy.h
Мега у меня одна. Ее использую для тестов. Ардуины закончились, остались в наличии только голые камни: Аттини2313, Атмега8 и Атмега32.
По даташиту пины, переключающие режим, выходят из кристала Перед Ресетом, потом идет линия (+). Посмотрел через лупу - все 4 управляющьх пина (P68, BS2,BS1,BS0) сразу возле кристала объеденены, а дальше к GND. Это "16-bit bus interface,80-system, 65K-Color". Для переключения в любой другой режим пины должны быть рассоеденины. А это не возможно. Все фото приводил выше. В общем, только 16 бит. Печально.
Подключить к Меге32 было бы лучше всего. Но UTFT выдает "Unsupported AVR MCU!", Адафруит: "Board type unsupported / not recognized".
По даташиту пины, переключающие режим, выходят из кристала Перед Ресетом, потом идет линия (+). Посмотрел через лупу - все 4 управляющьх пина (P68, BS2,BS1,BS0) сразу возле кристала объеденены, а дальше к GND. Это "16-bit bus interface,80-system, 65K-Color". Для переключения в любой другой режим пины должны быть рассоеденины. А это не возможно.
Тогда, да, невозможно .
forfrends пишет:
Подключить к Меге32 было бы лучше всего. Но UTFT выдает "Unsupported AVR MCU!", Адафруит: "Board type unsupported / not recognized".
ну да, походу трабл с поддержкой леонарды. остается атмега8 , но заносить ее в поддержку UTFT , та еще конитель. Заказывайте ардуинки впрок .
forfrends, конечно попробуйте на I2C , потом покажете. Но это будет трындец по скорости.
потом поставте парочку 74HC595 и сравните, используя аппаратный SPI , скорость должна быть уже приемлемая СК/2 т.е. 8МГц, грубо 32 такта проца потребуется чтобы передать 16бит.
потом попробуйте один параллельный регистр , для раздваивания 8бит .
Может кому и понадобится. Подменял в UTFT ILI9327_8 разрешение 400х240. Работает нормально без раздвоения картинки. Дисплей 5233 и 5230 как писали на других сайтах все таки одинаковые только разница в размерах. Теперь бы в Adafruit надо как то запихать, с UTFT все таки попроще для меня.
Спасибо но как это приделать к UTFT или Adafruit? В программировании я полный ноль, лет 15 назад надо было начинать изучать программирование. Сейчас пытаюсь, но это жалкие потуги.
Slider, инит от Samsung GT-S5233 нашел на сайте : http://vrtp.ru/index.php?showtopic=1120&st=3750 , Сообщение: # 689962. Но пришлось самому маленько подкоректировать, сначала была тоже ерунда. А теперь как полагается вот фото:
Хотел попробовать на нем собрать пультоскоп, но там надо адафруит. Сижу пытаюсь переделать под Adafruit_ILI9341, но пока не удачно.
какой именно Adafruit_ILI9341 ? SPI или 8бит версию? (в пультоскопе вообщето использовалась Adafruit_TFTLCD как и в читалке)
если SPI как в nokia5110, на нем никак не заведете этот дисп, дисп не SPI , а 8битный.
если 8бит , то там можно , киньте ссылку от куда именно либу берете
// ну да читал ранее про S5230 на http://vrtp.ru/ , там в ините S5230 как раз комментировали про 2 экрана
Добрый день. Спасибо ребятам огромное, особенно Mrshilov и Slider , спецы что и говорить. Дисплей от sony ericsson k800i запустился, но картинка не по центру смещено в левую сторону. Вот мой инит переделанный, попробую теперь выставить по центру. Инит еще сырой надо подправлять:
Конечно я наверно что то здесь накуролесил, но он хоть начал показывать. Да уж после долгих попыток так и не получилось выставить картинку по центру, даже не знаю что еще поменять в регистрах.
Он ведь 256х352 и, вполне возможно, видимая область начинается не с нуля и нужно к координате Х прибавлять 8 или 16.
Еще как вариант - регистр 6, там есть настройка размера по ширине, может она как-то влияет на центровку.
Тот экземпляр (китаец), что я тестировал, совсем не работал в режиме "ланшафт". В режиме "портрет" с этим инитом все было нормально. Впрочем, это обычное дело для китайских клонов - они их делают специально для мобил.
Спасибо попробую. А разрешение ставил даже 240х400 все равно картинка смещена. А может быть из за того что я не знал как прописать эти строки и не прописывал их, и картинка сместилась:
Спасибо попробую. А разрешение ставил даже 240х400 все равно картинка смещена. А может быть из за того что я не знал как прописать эти строки и не прописывал их, и картинка сместилась:
write_command(0x0000);
delay(50);
write_command(0x0000);
delay(50);
write_command(0x0000);
delay(50);
теперь то всё норм? дак не надо было викидывать с инита лишнее. В примерах что приводил , там к примеру была одиночная LCD_Write_COM16(0x0202); вот и надо было write_command(0x0000); записать как LCD_Write_COM16(0x0000);
и еще в траслируруемом вами инитом #635 из оригинала #628 , пропущена
072
delay(50);
как собрали на сониэриковском диспе? фотку потом приложте глянуть.
про вкорячивание инитов в адафруит , это естественно возможно , только время надо на это. Есть в сети еще много либ адафруита под разные контроллеры (в темах про TFT 2.4 много), можно подъискать в который очень похож по 16ти битной адресации и легче встроить в него будет. Ну или взять имеющийся адафруит и потратить пару часиков...полдня времени. имея дисп это можно сделать, чтоб тут же проверять.
// на будущее про смещение картинки на хитрож..х диспах, в теме в одном из сообщении собирал список нескольких способов.
//// проведите еще эксперимент , использовать setxy не
01
// ILI9326
02
LCD_Write_COM16_DATA16(0x0200,x1); // GRAM Address Set (Horizontal Address) (R0200h)
03
LCD_Write_COM16_DATA16(0x0201,y1); // GRAM Address Set (Vertical Address) (R0201h)
а что, норм развели и подключили :) , красиво, надежно и компактно :)
фото и симптомы 1 в 1 с #40 решил на первой странице .
самое быстрое решение - это в своем скетче , в операторах вывода приписать к координатам X , число +80 . это оказалось довольно таки просто.
Видимо этот косяк возник или из-за неправильного развода дорожек матрицы к кристаллу, или из-за замены кристалла на не похожий по распиновке. Иль в регистрах что намудрили.
// попробуйте измененный на +80 тестовый скетч , ( только в нем UTFT myGLCD(ITDB32S,38,39,40,41); замените на свой . по UTFT.cpp не припомню что надо disp_x_size =239; disp_y_size =319; иль disp_x_size =239; disp_y_size =399; , пробуйте)
// UTFT_Demo_320x240
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program is a demo of how to use most of the functions
// of the library with a supported display modules.
//
// This demo was made for modules with a screen resolution
// of 320x240 pixels.
//
// This program requires the UTFT library.
//
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB32S,38,39,40,41);
void setup()
{
randomSeed(analogRead(0));
// Setup the LCD
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
}
void loop()
{
int buf[318];
int x, x2;
int y, y2;
int r;
// Clear the screen and draw the frame
myGLCD.clrScr();
myGLCD.setColor(255, 0, 0);
myGLCD.fillRect(0+80, 0, 319+80, 13);
myGLCD.setColor(64, 64, 64);
myGLCD.fillRect(0+80, 226, 319+80, 239);
myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(255, 0, 0);
myGLCD.print("* Universal Color TFT Display Library *", CENTER+40, 1);
myGLCD.setBackColor(64, 64, 64);
myGLCD.setColor(255,255,0);
myGLCD.print("<http://www.RinkyDinkElectronics.com/>", CENTER+40, 227);
myGLCD.setColor(0, 0, 255);
myGLCD.drawRect(0+80, 14, 319+80, 225);
// Draw crosshairs
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 0);
myGLCD.drawLine(159+80, 15, 159+80, 224);
myGLCD.drawLine(1+80, 119, 318+80, 119);
for (int i=9; i<310; i+=10)
myGLCD.drawLine(i+80, 117, i+80, 121);
for (int i=19; i<220; i+=10)
myGLCD.drawLine(157+80, i, 161+80, i);
// Draw sin-, cos- and tan-lines
myGLCD.setColor(0,255,255);
myGLCD.print("Sin", 5+80, 15);
for (int i=1; i<318; i++)
{
myGLCD.drawPixel(i+80,119+(sin(((i*1.13)*3.14)/180)*95));
}
myGLCD.setColor(255,0,0);
myGLCD.print("Cos", 5+80, 27);
for (int i=1; i<318; i++)
{
myGLCD.drawPixel(i+80,119+(cos(((i*1.13)*3.14)/180)*95));
}
myGLCD.setColor(255,255,0);
myGLCD.print("Tan", 5+80, 39);
for (int i=1; i<318; i++)
{
myGLCD.drawPixel(i+80,119+(tan(((i*1.13)*3.14)/180)));
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 0);
myGLCD.drawLine(159+80, 15, 159+80, 224);
myGLCD.drawLine(1+80, 119, 318+80, 119);
// Draw a moving sinewave
x=1;
for (int i=1; i<(318*20); i++)
{
x++;
if (x==319)
x=1;
if (i>319)
{
if ((x==159)||(buf[x-1]==119))
myGLCD.setColor(0,0,255);
else
myGLCD.setColor(0,0,0);
myGLCD.drawPixel(x+80,buf[x-1]);
}
myGLCD.setColor(0,255,255);
y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100)));
myGLCD.drawPixel(x+80,y);
buf[x-1]=y;
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some filled rectangles
for (int i=1; i<6; i++)
{
switch (i)
{
case 1:
myGLCD.setColor(255,0,255);
break;
case 2:
myGLCD.setColor(255,0,0);
break;
case 3:
myGLCD.setColor(0,255,0);
break;
case 4:
myGLCD.setColor(0,0,255);
break;
case 5:
myGLCD.setColor(255,255,0);
break;
}
myGLCD.fillRect(70+(i*20)+80, 30+(i*20), 130+(i*20)+80, 90+(i*20));
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some filled, rounded rectangles
for (int i=1; i<6; i++)
{
switch (i)
{
case 1:
myGLCD.setColor(255,0,255);
break;
case 2:
myGLCD.setColor(255,0,0);
break;
case 3:
myGLCD.setColor(0,255,0);
break;
case 4:
myGLCD.setColor(0,0,255);
break;
case 5:
myGLCD.setColor(255,255,0);
break;
}
myGLCD.fillRoundRect(190+80-(i*20), 30+(i*20), 250+80-(i*20), 90+(i*20));
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some filled circles
for (int i=1; i<6; i++)
{
switch (i)
{
case 1:
myGLCD.setColor(255,0,255);
break;
case 2:
myGLCD.setColor(255,0,0);
break;
case 3:
myGLCD.setColor(0,255,0);
break;
case 4:
myGLCD.setColor(0,0,255);
break;
case 5:
myGLCD.setColor(255,255,0);
break;
}
myGLCD.fillCircle(100+(i*20)+80,60+(i*20), 30);
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some lines in a pattern
myGLCD.setColor (255,0,0);
for (int i=15; i<224; i+=5)
{
myGLCD.drawLine(1+80, i, (i*1.44)-10+80, 224);
}
myGLCD.setColor (255,0,0);
for (int i=224; i>15; i-=5)
{
myGLCD.drawLine(318+80, i, (i*1.44)-11+80, 15);
}
myGLCD.setColor (0,255,255);
for (int i=224; i>15; i-=5)
{
myGLCD.drawLine(1+80, i, 331+80-(i*1.44), 15);
}
myGLCD.setColor (0,255,255);
for (int i=15; i<224; i+=5)
{
myGLCD.drawLine(318+80, i, 330-(i*1.44)+80, 224);
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some random circles
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=32+random(256);
y=45+random(146);
r=random(30);
myGLCD.drawCircle(x+80, y, r);
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some random rectangles
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=2+random(316);
y=16+random(207);
x2=2+random(316);
y2=16+random(207);
myGLCD.drawRect(x+80, y, x2+80, y2);
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
// Draw some random rounded rectangles
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=2+random(316);
y=16+random(207);
x2=2+random(316);
y2=16+random(207);
myGLCD.drawRoundRect(x+80, y, x2+80, y2);
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=2+random(316);
y=16+random(209);
x2=2+random(316);
y2=16+random(209);
myGLCD.drawLine(x+80, y, x2+80, y2);
}
delay(2000);
myGLCD.setColor(0,0,0);
myGLCD.fillRect(1+80,15,318+80,224);
for (int i=0; i<10000; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
myGLCD.drawPixel(2+random(316)+80, 16+random(209));
}
delay(2000);
myGLCD.fillScr(0, 0, 255);
myGLCD.setColor(255, 0, 0);
myGLCD.fillRoundRect(80+80, 70, 239+80, 169);
myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(255, 0, 0);
myGLCD.print("That's it!", CENTER+40, 93);
myGLCD.print("Restarting in a", CENTER+40, 119);
myGLCD.print("few seconds...", CENTER+40, 132);
myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 255);
myGLCD.print("Runtime: (msecs)", CENTER+40, 210);
myGLCD.printNumI(millis(), CENTER+40, 225);
delay (10000);
}
///// по изменениям в setxy.h , имел ввиду не решение сдвига, а решение увеличения скорости , помогает ли.
Спасибо, да с этим скетчем картинка ставится как надо. Но меня смущает что в ините первые 10 регистров не реагируют на изменения вообще ни как. С LCD_Write_COM16_DATA16(0x0010, 0x0012); только начинает реагировать на изменения, меняется цвет. Инит на к800 как я понял взят с прошивки сотового, все один в один. Пробовал подставлять инит от JBT6K71, затыкался вообще, кое как оживил. Пока шарился по интернету нашел список дисплеев и иниты к ним может кому и понадобится,
чтот список не гуглится и местный поиск не находит, видимо список надо писать простым сообщением, мож и новым к тому же и ни разу сообщение не редактировать, чтоб гугл и яндекс внесли инфу в сообщении доверительную для поиска.
вот тож по теме в сети попалось , хорошая весчь :)
продолжение* адафруита , использует графику адафруита , и есть поддержка графики UTFT . Работает быстрее.
Привет искал что нибудь по дисплею KFM529D01-1A он с MP3 плеера Newman R88 и наткнулся на на эти списки дисплеев. Забивай в поиск и выходит много китайских сайтов, списки оттуда. Ну вот несколько кину сайтов:
Всем привет. Ребят помогите распознать дисплейчик. Он из китайского набора разработки на базе 8051, avr, stm. Типа ардуино шилда но с другой распайкой. Блин, не нахожу, как тут картинку прилепить, пишу с телефона. В общем на нам есть надписи. На самом шилде такая TFT-2.4 (R61526), я понял это контроллер. Шлейф 23 пина, надпись на нем TRULY IPS8K5716FPC-B1-E. Кое-что вызвонил 1,2,3,4,5,23-Gnd; 6,21,22-Vcc; Сигнальные не могу понять, идут на резистивные сборки, а после на пины шилда. Несколько вариантов подключения пробовал, не читается. Помогите с распиновкой.
Всем привет. Ребят помогите распознать дисплейчик. Он из китайского набора разработки на базе 8051, avr, stm. Типа ардуино шилда но с другой распайкой. Блин, не нахожу, как тут картинку прилепить, пишу с телефона. В общем на нам есть надписи. На самом шилде такая TFT-2.4 (R61526), я понял это контроллер. Шлейф 23 пина, надпись на нем TRULY IPS8K5716FPC-B1-E. Кое-что вызвонил 1,2,3,4,5,23-Gnd; 6,21,22-Vcc; Сигнальные не могу понять, идут на резистивные сборки, а после на пины шилда. Несколько вариантов подключения пробовал, не читается. Помогите с распиновкой.
Всем привет. Ребят помогите распознать дисплейчик. Он из китайского набора разработки на базе 8051, avr, stm. Типа ардуино шилда но с другой распайкой. Блин, не нахожу, как тут картинку прилепить, пишу с телефона. В общем на нам есть надписи. На самом шилде такая TFT-2.4 (R61526), я понял это контроллер. Шлейф 23 пина, надпись на нем TRULY IPS8K5716FPC-B1-E. Кое-что вызвонил 1,2,3,4,5,23-Gnd; 6,21,22-Vcc; Сигнальные не могу понять, идут на резистивные сборки, а после на пины шилда. Несколько вариантов подключения пробовал, не читается. Помогите с распиновкой.
Вместо одного резистора на 10 кОм у меня стоят 2 по 20 кОм паралельно.
Подключение: IM0:"+", IM1: "-".
D7-D0 22-29.... Только сейчас сообразил что пины инверсно подключены. :( Перевернул, Прочитал читалкой:
Дисплей как и прежде: только мигает и меняет уровень яркости. А не может ли быть что бы линия данных и правляющие пины стоят наоборот, перепутаны местами?
Если IM0 и IM1 подключить к "+" то читалка выдает следующее:
forfrends, Ну вот, теперь из фото понятно , почему вычитывается лабуда всегда разная . ! не надо так доверять этим макеткам и проводам. Несколько раз уже попадался на этом. И боюсь спросить , где же RD , и почему на него подана лог1 ? или это RST . И резисторы с цветной маркировкой выглядят как 10к , параллельно , в итоге это 5к - но это мелочи по сравнению с первыми двумя находками. GND от ардуино то хорошо что сдублировали на нижнюю линию макетки , так это тогда не имеет смысла раз верхнюю с нижней линией не сдублировали.
Чтобы замыкать неиспользуемые 8бит шины данных на GND напрямую, надо быть уверенным 1.что вы включили с помощью IM.. именно режим 8бит, и 2.взяли именно правильные 8 бит. Иначе получите КЗ контроллера, при опросе на выходах он будет выдавать иногда лог1 +3.3в , а вы их на землю закоротили. Так нельзя. Если и играетесь бездумно с IM.. , и пытаетесь вычитывать с контроллера, то садите только через резисторы на землю.
И осторожно так с такими макетками для дисплеев , дисплей д.б. жестко закреплен к такой макетке. Порвать иль переломить шлейф за нефиг делать, в вашем случае с натыкиванием проводов. В таких случаях удлините эту макетку и жестко фиксируйте дисп чтоб не повредить шлейф. И не надо его так сильно выгибать наизнанку , это тоже можно сказать прощай дисп, вес то у него приличный. Возможно этот дисп с такими манипуляциями уже не жилец. Посмотрите как croc19 подходит к этому вопросу - вытравливает платы. Посмотрите по теме какие макетки делаю , по времени почти также с паяльником перепаять провод , как и переткнуть провод на вашей макетке. Зато совершенно надежный контакт.. Эмаль провода можно купить или под рукой можно ковырнуть из двигателей старых кассетных магнитофонов,... и разных цветов попадаются. . С трансформаторов не особо пойдет , там они с двойным лаком , просто от нагрева паяльника так просто не лудятся , надо зачищать. Чип резисторы в местных магазах проще купить , 100шт около 10-20руб. Макетки 7x9 и пины с али. Иногда даже так дисп и оставляю на макетке, делаю новую для следующего, так уже штук 10 так и оставил нераспаянными вместе с диспами, на случай проверки перед сотворением какойнить поделки. к примеру вот от vivaz u5 u8:
Доброе утро. Slider у меня собрана платка с делителями стояли 470 ом и 1к напряжение было 3.1 вольта переделал на 10к и 20к как вы писали раньше сейчас 2.8 вольта и стоит для питания дисплея lm1117 выставил напряжение 3 вольта. Да инит ili9488 не пробовал и от сони эрика VIVAZ U5 U8 , вы об этом. Что мне до этого писали пробовал раздвоение картинки так и оставалось.
Вот моя платка. Сегодня попробую эти иниты. Да после перепайки делителя выдала читалка:
Tvicks, согласно прошлым мессагам с 10й страницы, попробуйте дисп от GT-S5230 (их должно быть полно у народа и особо в ремонтах), раз коннектор установлен. Чтот-конечно странно что от GT-S5233 не завелся, в инете тож встречал что они немного разные.
можете разместить инит от GT-S5230 ? глянуть, чтоб долго в сети не искать.
Да меня тоже смущает что он по нормальному не работает, у сотового накрылся процик и мне отдали на запчасти.
У GT-S5230 и GT-S5233 разные коннекторы, их друг с другом не заменить надо делать под него платку.
Да чуть не забыл, есть онлайн калькулятор для делителей напряжения, сопротивления можно подбирать там, вот ссылка: http://www.joyta.ru/7328-delitel-napryazheniya-na-rezistorax-raschet-onlajn/
Инит под ili 9488 побовал все так же и осталось. Ссылка на дисплей s5230: https://developer.mbed.org/teams/GraphicsDisplay/code/UniGraphic/docs/tip/S6D04D1_8cpp_source.html
Да меня тоже смущает что он по нормальному не работает, у сотового накрылся процик и мне отдали на запчасти.
хочу спросить?
вот есть матрица от ниссана с 30пиновым штекером
как подключить?

Если к ардуино, то лучше не подключать. Жутко хлопотно и работать будет очень медленно.
На некоторых форумах есть смайлы, та вот здесь их не хватает... хотел поставить смайл "застрелиться"...
Мучился я долго с дисплеем (пост №594)... спаял небольшую плату-переходник с резисторами:
Но все результаты были неутешительными... Как оказалось, я неправиль считал номера пинов данных. У меня просто вылетелоиз головы что пинов 18! а не 16... и я вместо того что бы подключить пины 0-7 подключал пины 2-9... Исправил. Читалка внятно выдала BF = 00 02 04 94 81 FF 00 00. Дисплей завелся на минимальном ините:
Лог читалки:
Дисплей завелся не корректно, изображение смещено, отзеркалено, и похоже повернуто на 90 градусов. Теперь осталось нормально инит подобрать. Я с Adafruit не работал и совершенно не снаю как ее использовать. Мне было бы не много удобнее с UTFT. Но там нет 8 бит. Надо бы разобраться как и что...
forfrends, о.. ,норм, победили дисп. как и полагалось что-то с подключением напортачено было.
с чип резисторами уже прикольней, красивше и надежней. Лог читалки от ili9481 - хорошо.
откуда вы взяли что в UTFT нет 8бит? есть там всё! в теме много приводил примеров на базе ili9327 turbo. если будет снова какой затык, спрашивайте. Если будете проект собирать на меге, то пользуйте все 16бит (IM.. глянете по даташиту), - чутка пошустрее будет, на стандартном UTFT будет работать. пример UTFT_Demo_480x320 , вызов оставить там тот же UTFT myGLCD(CTE32HR,38,39,40,41); это равно как и UTFT myGLCD(ILI9481,38,39,40,41); , В memorysaver.h лишниих disable раскоментить. И на RD не забудте подать + .
либу UTFT 8бит _ ардуина мега _ PORTA(пины22-29) _ ili9488 для подобных инитов давал здесь http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256 , чтотолько вам нужно , это в файле UTFT\tft_drivers\ili9327_8\initlcd.h
все стереть и забросить инит от ili9481
У адафруита тоже есть ILI9481 , достаточно загуглить adafruit ili9481 .
Спасибо, дисплей нормально инициировался. Немного позже выложу подробное описание.
-=-=-=-=-=
Продолжая тему по предыдущему дисплею:
Подключал так:
Читалка выдала следующее:
Но дисплей никак не откликнулся.
Попробовал инит UTFT myGLCD(HX8352A, - результат тот же. В читалке написал identifier = 0x7575; но и это не помогло.
Стал смотреть распиновку. С IMx что-то не понятное. По даташиту на HX8352A задающие пины (P68, BS2,BS1,BS0) заходят ПЕРЕД Ресетом и пинами D17,D16... Те же контакты, которые я принял за управляющие (Пин 9 и 10) заходят в кристалл после управляющих пинов RS,CS,GND. В кристалл перед Ресетом заходят GND, +, GND.
В общем не понятно возможно ли вообще его перевключить на 8 бит и в каком режиме он работатет сейчас.
forfrends, в каком режиме?
Методу предлагал ранее: берете белый светодиод или любой другой но с резистором 300-500ом . анодом на +3.3в , катодом на DB8....DB15..DB17 , и запускаете читалку . Если светодиод будет подмигивать (именно только когда она опрашивает регистры) , значит контроллер дисплея выдает , на опросы читалки, лог.0 и в старшие разряды DB8... DB16... - отсюда можно сделать соответствующий вывод в какой он битности 8/9/16/18 .
и в этом дисплее , пробуете это в разных вариациях пинов 8 и 9 шлейфа дисплея. (только через 10к , а то вдруг это какието выхода, ибо что-то странно, согласно даташиту , IM (BS) находятся с другой стороны)
// подрисуйте на фотке шлейфа, примерно как в ссылках comment-302671 , будет легче сориентироваться где примерно IM (BS) . Фоткать лучше под увеличительным стеклом или цифровиком. Со шлейфа можно немного содрать черного резин. герметика. Только тогда по дорожкам можно будет и проследить.
/////
....
Попробовал инит UTFT myGLCD(HX8352A, - результат тот же.
.....
Ну как-бы HX8352A там как раз по умолчанию 16бит (если там силком не переключать битность на 8 , но для этого и дисп длжен быть в 8бит)
это на крайняк уже, можете подключить полноценно все 16бит на Мегу, и только потом уже использовать пример UTFT .
Метод научного ты... в смыле светодиода показал что дисплей работает в 8-мибитном режиме (D0-D7)
Но тест UTFT (подправил UTFT.cpp) выдает нечто другое:
Может ли быть что синий цвет это не 16 бит а неправильный инит?
..... (подправил UTFT.cpp) ....
Может ли быть что синий цвет это не 16 бит а неправильный инит?
при этом 8 и 9 пин комбинировали через резисторы? (напряжение они не засаживают, иначе это выхода)
говорил вам прорисовать на фото дорожек на стекле в шлейф.
Зачем и что правили в UTFT.cpp? (исходя из предположения что дисп 8бит, да и либу надо в 8 ?) ,
вам советовал подключить все 16бит дисплея и запустить некопанный UTFT , вы это сделали? каков результат? ( подключение разрисовано в \Arduino\libraries\UTFT\Documentation\UTFT_Requirements.pdf ) //обычно если в шлейфе выведено 18бит, то он по умолчанию б.д. на эти 16.
синий цвет возможен если дисплей 16бит , а библиотека настроена на 8. (специально так проверил в comment-292783 , но это не для всех контроллеров)
В наличии есть Атмега32 вот бы к ней подключить по 16 битам, но как пины перекинуть?
а что в меге пинов не хватает? переназначить проще на любые цельные порты.
так предложил же вам расзрисовать примерно дорожки как в page4 page=4_, можно найти эти IM . Если снаровка есть , можно перерезать их иголкой и припаять куда надо.
Если надо меньше железку, то подключайте все 16бит диспа к ардуине нано, мини .
куда см. - \Arduino\libraries\UTFT\Documentation\UTFT_Requirements.pdf .
на не копанной либе , останутся вам свободные аналоговые A6 A7 . для проектов логгеров хватит. (а вот на леонарде пинов не хватат)
и 4 пина в сумме свободных , можно и I2C уже использовать - если выкинуть из либы CS , RESET . (здесь в теме делал такую UTFT 8бит ili9488 comment-192385 , а для 16бит надо ее подправлять) , расширители, регистры (параллельно D0-D7 можно будет подключаться , входа-выхода будут свободные , тоже в теме делал comment-146701 ) и много чего, было бы желание.
// можете еще попробовать ускорить рисование, выкинуть возможно лишние команды при рисовании пикселей
закоментировав строки в \Arduino\libraries\UTFT\tft_drivers\hx8352a\setxy.h
01
case
HX8352A:
02
// LCD_Write_COM_DATA(0x02,x1>>8); //
03
LCD_Write_COM_DATA(0x03,x1);
04
// LCD_Write_COM_DATA(0x04,x2>>8); //
05
LCD_Write_COM_DATA(0x05,x2);
06
07
LCD_Write_COM_DATA(0x06,y1>>8);
08
LCD_Write_COM_DATA(0x07,y1);
09
// LCD_Write_COM_DATA(0x08,y2>>8); //
10
// LCD_Write_COM_DATA(0x09,y2); //
11
LCD_Write_COM(0x22);
12
break
;
comment-93736
Мега у меня одна. Ее использую для тестов. Ардуины закончились, остались в наличии только голые камни: Аттини2313, Атмега8 и Атмега32.
По даташиту пины, переключающие режим, выходят из кристала Перед Ресетом, потом идет линия (+). Посмотрел через лупу - все 4 управляющьх пина (P68, BS2,BS1,BS0) сразу возле кристала объеденены, а дальше к GND. Это "16-bit bus interface,80-system, 65K-Color". Для переключения в любой другой режим пины должны быть рассоеденины. А это не возможно. Все фото приводил выше. В общем, только 16 бит. Печально.
Подключить к Меге32 было бы лучше всего. Но UTFT выдает "Unsupported AVR MCU!", Адафруит: "Board type unsupported / not recognized".
Мега у меня одна. Ее использую для тестов. Ардуины закончились, остались в наличии только голые камни: Аттини2313, Атмега8 и Атмега32.
пока будете чтото другое делать, иль диспы другие разгадывать с возможностью 8бит, уже и ардуины подоспеют.
\\ себе такие нанки для поделок заказал по 10шт, на ооочень долго хватит. https://ru.aliexpress.com/item/Freeshipping-10PCS-LOT-Nano-3-0-controller-compatible-with-arduino-nano-NO-CABLE/1511622386.html
и с жирными стабилизаторами https://ru.aliexpress.com/item/20-pcs-FREE-SHIPPING-with-tracking-Nano-V3-ATmega328-CH340G-Micro-USB-pin-NOT-soldered-Compatible/32751845925.html (жаль по 10шт не торгует прод.)
По даташиту пины, переключающие режим, выходят из кристала Перед Ресетом, потом идет линия (+). Посмотрел через лупу - все 4 управляющьх пина (P68, BS2,BS1,BS0) сразу возле кристала объеденены, а дальше к GND. Это "16-bit bus interface,80-system, 65K-Color". Для переключения в любой другой режим пины должны быть рассоеденины. А это не возможно.
Тогда, да, невозможно .
Подключить к Меге32 было бы лучше всего. Но UTFT выдает "Unsupported AVR MCU!", Адафруит: "Board type unsupported / not recognized".
ну да, походу трабл с поддержкой леонарды. остается атмега8 , но заносить ее в поддержку UTFT , та еще конитель. Заказывайте ардуинки впрок .
Интересно, а возможно ли подключить дисплей через IIC/I2C переходник. Вот такой, на пример: http://ali.pub/1tdylm
Молодец forfrends.
Подключить можно, но в несколько раз упадет скорость вывода. А начать програмировать АВР без ардуины
не хочешь попробывать. Напрямую к меге32 подключить.
Спасибо. croc19, да вот знаний не хватает для того что бы подключить на прямую, без Ардуино ИДЕ.
Есть ли где-то информация как сделать подключение через переходник? Скорость не играет роли.
Ардуино имеет библиотеку для работы с этим переходником. Подключаешь два таких переходника к ардуине по IC2.
Выходы переходника соединяешь с шиной данных дисплея. D0-D15. Шину управления дисплеем напрямую к ардуине.
Загоняешь данные в переходник на выход и командуешь дисплеем по шине управления.
Информации по этому переходник море. Возможно есть и подключение к TFT. Хотя обычно его к 1602 подключают.
Но разницы никакой.
forfrends, конечно попробуйте на I2C , потом покажете. Но это будет трындец по скорости.
потом поставте парочку 74HC595 и сравните, используя аппаратный SPI , скорость должна быть уже приемлемая СК/2 т.е. 8МГц, грубо 32 такта проца потребуется чтобы передать 16бит.
потом попробуйте один параллельный регистр , для раздваивания 8бит .
А самое правильное начать изучать СИ на примере связки атмеги32 и дисплея.
Добрый день ребята. Все я добил дисплей от Samsung GT-S5233, заработал как надо.Спасибо всем кто помогал. Вот инит :
Может кому и понадобится. Подменял в UTFT ILI9327_8 разрешение 400х240. Работает нормально без раздвоения картинки. Дисплей 5233 и 5230 как писали на других сайтах все таки одинаковые только разница в размерах. Теперь бы в Adafruit надо как то запихать, с UTFT все таки попроще для меня.
Добрый день. Вчера принесли сотовый на запчасти sony ericsson k800. Собрал платку для поключения к ардуино. Распиновка:
Питание дисплея 3,24-2,8в , 4-1,8в. Читалка ничего не дала:
Дисплеи одинаковые от k790, k800,k810. Два контроллера используется R63400A1 и Cyndi - Toshiba JBT6K71. Нашел только прошивку сотового:
При замене других инитов ничего не дало, светится только подсветка. Может кто подскажет что может оживить дисплей.
SE-K790, K800, K810, K830:
Спасибо но как это приделать к UTFT или Adafruit? В программировании я полный ноль, лет 15 назад надо было начинать изучать программирование. Сейчас пытаюсь, но это жалкие потуги.
Tvicks, пока просто запустите данный скетч. и где нашли инит от Samsung GT-S5233 ? сделали какой проектик на нем, фотку?
по UTFT и адафруит , гляньте тему , частенько подменял найденные иниты из под STM32 на ардуину. не раз писал что и как делать .
1. в кратце по UTFT - искать в папках UTFT\tft_drivers setxy.h , чтоб рисовалось через те же регистры
256
write_command(0x0201);
257
write_data(row);
258
write_command(0x0200);
259
write_data(col);
260
261
write_command(0x0202);
соттветственно используете вызов с этим контроллером UTFT myGLCD(.....
И вот еще делал по китайской нокиа через command(0x0201); command(0x0200); command(0x0202); :
#comment-90767
#comment-92532
но в коце концов можно еще упростить. попробуйте проверить и на этих инитах, и подмнить их проще всего на тот что дал Mrshilov .
2. В адафруите в Adafruit_TFTLCD.cpp , тож где-то встречал рисование через похожие 16ти разрядные регистры.
можете подсунуть на базе ILI932X
вместо названия регистров вставляете то что в
write_command(....); ,
вместо последующих данных вставляете то что в
write_data(....);
и поподменять адреса в строках
ну и принудительно включите что у вас uint16_t identifier = 0x9325; // tft.readID();
мож еще что-то , адафруит под рисование через подобные регистры 0200 0201 0210 0211 0212 0213 не переделывал.
Slider, инит от Samsung GT-S5233 нашел на сайте : http://vrtp.ru/index.php?showtopic=1120&st=3750 , Сообщение: # 689962. Но пришлось самому маленько подкоректировать, сначала была тоже ерунда. А теперь как полагается вот фото:
Хотел попробовать на нем собрать пультоскоп, но там надо адафруит. Сижу пытаюсь переделать под Adafruit_ILI9341, но пока не удачно.
какой именно Adafruit_ILI9341 ? SPI или 8бит версию? (в пультоскопе вообщето использовалась Adafruit_TFTLCD как и в читалке)
если SPI как в nokia5110, на нем никак не заведете этот дисп, дисп не SPI , а 8битный.
если 8бит , то там можно , киньте ссылку от куда именно либу берете
// ну да читал ранее про S5230 на http://vrtp.ru/ , там в ините S5230 как раз комментировали про 2 экрана
значит от S5230 подошёл ? изменили только в регистрах 0x3A и 0x36 .
чтото цвета у вас неправильно , бит BGR надо вернуть на место в регистре 0x36
.
Ну поторопился да поменял в регистре 0х36 вот теперь все в норме.
Да хотел 8 битную версию попробовать сделать, тормознул не увидел что на ILI9341 SPI. Хотел попробовать собрать версию пультоскопа : http://arduino.ru/forum/proekty/pultoskop-na-arduino-27mgts . Схемное решение понравилось : https://sites.google.com/site/cvssav/avr/mini-oscillograf-atxmega32a4-display-s5230 , но так как пока нет микросхем попробую собрать что попроще. Я как понимаю под пультоскоп на инит SPFD5408 Adafruit мой инит не переделать?
Добрый день. Спасибо ребятам огромное, особенно Mrshilov и Slider , спецы что и говорить. Дисплей от sony ericsson k800i запустился, но картинка не по центру смещено в левую сторону. Вот мой инит переделанный, попробую теперь выставить по центру. Инит еще сырой надо подправлять:
Конечно я наверно что то здесь накуролесил, но он хоть начал показывать. Да уж после долгих попыток так и не получилось выставить картинку по центру, даже не знаю что еще поменять в регистрах.
Вот даташит на JBT6K71 - http://rgho.st/7p7xQ5X77
Он ведь 256х352 и, вполне возможно, видимая область начинается не с нуля и нужно к координате Х прибавлять 8 или 16.
Еще как вариант - регистр 6, там есть настройка размера по ширине, может она как-то влияет на центровку.
Тот экземпляр (китаец), что я тестировал, совсем не работал в режиме "ланшафт". В режиме "портрет" с этим инитом все было нормально. Впрочем, это обычное дело для китайских клонов - они их делают специально для мобил.
Спасибо попробую. А разрешение ставил даже 240х400 все равно картинка смещена. А может быть из за того что я не знал как прописать эти строки и не прописывал их, и картинка сместилась:
Спасибо попробую. А разрешение ставил даже 240х400 все равно картинка смещена. А может быть из за того что я не знал как прописать эти строки и не прописывал их, и картинка сместилась:
теперь то всё норм? дак не надо было викидывать с инита лишнее. В примерах что приводил , там к примеру была одиночная LCD_Write_COM16(0x0202); вот и надо было write_command(0x0000); записать как LCD_Write_COM16(0x0000);
и еще в траслируруемом вами инитом #635 из оригинала #628 , пропущена
072
delay(50);
как собрали на сониэриковском диспе? фотку потом приложте глянуть.
про вкорячивание инитов в адафруит , это естественно возможно , только время надо на это. Есть в сети еще много либ адафруита под разные контроллеры (в темах про TFT 2.4 много), можно подъискать в который очень похож по 16ти битной адресации и легче встроить в него будет. Ну или взять имеющийся адафруит и потратить пару часиков...полдня времени. имея дисп это можно сделать, чтоб тут же проверять.
// на будущее про смещение картинки на хитрож..х диспах, в теме в одном из сообщении собирал список нескольких способов.
//// проведите еще эксперимент , использовать setxy не
01
// ILI9326
02
LCD_Write_COM16_DATA16(0x0200,x1);
// GRAM Address Set (Horizontal Address) (R0200h)
03
LCD_Write_COM16_DATA16(0x0201,y1);
// GRAM Address Set (Vertical Address) (R0201h)
04
05
LCD_Write_COM16_DATA16(0x0210,x1);
// Window Horizontal RAM Address Start (R210h)
06
LCD_Write_COM16_DATA16(0x0212,y1);
// Window Vertical RAM Address Start (R212h)
07
LCD_Write_COM16_DATA16(0x0211,x2);
// Window Horziontal RAM Address End (R211h)
08
LCD_Write_COM16_DATA16(0x0213,y2);
// Window Vertical RAM Address End (R213h)
09
10
LCD_Write_COM16(0x0202);
а на основе ориг. инита
256
write_command(0x0201);
257
write_data(row);
258
write_command(0x0200);
259
write_data(col);
260
261
write_command(0x0202);
т.е. без 0210,0212,0211,0213 , получается очередность:
LCD_Write_COM16_DATA16(0x0201,y1);
LCD_Write_COM16_DATA16(0x0200,x1); LCD_Write_COM16(0x0202);и еще так попробуйте:
LCD_Write_COM16_DATA16(0x0200,x1);
LCD_Write_COM16_DATA16(0x0201,y1); LCD_Write_COM16(0x0202);
Если заработает, то естественно вырастет скорость рисования без "лишних" команд.
Спасибо проглядел delay(50), да теперь все прописал в ините, но толку нет. Поэксперементировал с setxy ничего не дало. Разрешение 240х320
Разрешение 240х400
И плата с раъемом и двумя LM1117 и повышайки на MC34063 для подсветки.
Пока эксперименты с регистрами не дали толку. Буду дерзать дальше.
Тут, видимо, выравнивание по другому краю - сдвиг примерно 32 пикселя. Попробуйте развернуть на 180° - т.е. реверс по Х и Y.
А вообще, я предупреждал, "китайцы" в режиме "ландшафт", как правило, глючат.
а что, норм развели и подключили :) , красиво, надежно и компактно :)
фото и симптомы 1 в 1 с #40 решил на первой странице .
самое быстрое решение - это в своем скетче , в операторах вывода приписать к координатам X , число +80 . это оказалось довольно таки просто.
Видимо этот косяк возник или из-за неправильного развода дорожек матрицы к кристаллу, или из-за замены кристалла на не похожий по распиновке. Иль в регистрах что намудрили.
// попробуйте измененный на +80 тестовый скетч , ( только в нем UTFT myGLCD(ITDB32S,38,39,40,41); замените на свой . по UTFT.cpp не припомню что надо disp_x_size = 239; disp_y_size = 319; иль disp_x_size = 239; disp_y_size = 399; , пробуйте)
///// по изменениям в setxy.h , имел ввиду не решение сдвига, а решение увеличения скорости , помогает ли.
Спасибо, да с этим скетчем картинка ставится как надо. Но меня смущает что в ините первые 10 регистров не реагируют на изменения вообще ни как. С LCD_Write_COM16_DATA16(0x0010, 0x0012); только начинает реагировать на изменения, меняется цвет. Инит на к800 как я понял взят с прошивки сотового, все один в один. Пробовал подставлять инит от JBT6K71, затыкался вообще, кое как оживил. Пока шарился по интернету нашел список дисплеев и иниты к ним может кому и понадобится,
чтот список не гуглится и местный поиск не находит, видимо список надо писать простым сообщением, мож и новым к тому же и ни разу сообщение не редактировать, чтоб гугл и яндекс внесли инфу в сообщении доверительную для поиска.
вот тож по теме в сети попалось , хорошая весчь :)
продолжение* адафруита , использует графику адафруита , и есть поддержка графики UTFT . Работает быстрее.
MCUFRIEND_kbv Library for Uno 2.4, 2.8, 3.5, 3.6, 3.95 inch mcufriend Shields
на гитхабе https://github.com/prenticedavid/MCUFRIEND_kbv
списочек поддерживаемых контроллеров , инитов
Tvicks,там есть SPFD5420 240x400 ID=0x5420 #define SUPPORT_9326_5420
можете попробовать на своем нокиевском диспе , операторы графики теже GFX .
Привет искал что нибудь по дисплею KFM529D01-1A он с MP3 плеера Newman R88 и наткнулся на на эти списки дисплеев. Забивай в поиск и выходит много китайских сайтов, списки оттуда. Ну вот несколько кину сайтов:
http://www.mydigit.cn/simple/?t125387.html , http://bbs.mydigit.cn/read.php?tid=125387 , https://wenku.baidu.com/view/75c20eea172ded630b1cb602.html , http://www.gujianba.com/read-htm-tid-6427.html , http://wk.baidu.com.cn/view/ec1e2424aaea998fcc220ecd?pn=5&pu=#3
Там еще десяток сайтов , но мне не помогло искал распиновку. В поиск забивай KFM529D01-1A. Спасибо Slider попробую.
Всем привет. Ребят помогите распознать дисплейчик. Он из китайского набора разработки на базе 8051, avr, stm. Типа ардуино шилда но с другой распайкой. Блин, не нахожу, как тут картинку прилепить, пишу с телефона. В общем на нам есть надписи. На самом шилде такая TFT-2.4 (R61526), я понял это контроллер. Шлейф 23 пина, надпись на нем TRULY IPS8K5716FPC-B1-E. Кое-что вызвонил 1,2,3,4,5,23-Gnd; 6,21,22-Vcc; Сигнальные не могу понять, идут на резистивные сборки, а после на пины шилда. Несколько вариантов подключения пробовал, не читается. Помогите с распиновкой.
Фото дисплея выложи, чтоб определить где какие выводы.
Перенесено на следующую страницу ---->