Arduino и дисплеи от сотиков мобильных телефонов
- Войдите на сайт для отправки комментариев
Сподвигнули меня на подборки дисплея разбитый шилд 3,5" для ардуино уно, и интерес запуска почти дармовых дисплеев. // странно, на шилде стабилизатор 3,3v использовался напрямую для подсветки. (тогда уж можно было запитать подсветку через резистор от 5v). Сам дисплей и микросхемы преобразователи уровней питались от 3,3v что шли с ардуины! , тогда по идее нафиг не нужен был стабилизатор на шилде.
В магазе по запчастям от сотиков http://www.la-bora.ru/categories/15 нашёл похожие дислеи 3,2" по смешной цене 39руб :) , называется "Дисплей для china iphone тип 2 " (как удалось потом запустить , забрал ещё парочку) , дисплеи поменьше, идут уже с тачем . //(потом там же куплены для опытов 3,0" 320x240 и 400x240, есть ещё много подобных дешёвых магазов www.megaopt.ru , ... ) . На шлейфе ничего не написано, неизвесто название и распиновка. Попрозванивал, примерно прикинул что где может быт, распиновка 37пин - одна из стандартных,. зелёный шилд пришлось закинуть, ибо там через микросхемы согласователи иногда лупят в дисплей 4,5v , как-то не надёжно. Подключал через резисторы 10к, в итоге питание дисплея свыше 4v ибо пересиливается через входа . В итоге пришёл к резистивным делителям 10к-22к, просто и безопасно для дисплея и ардуины.
Подключил к меге , UTFT v2.77 (в v2.79 убрана поддержка ili9320 , в связи с тем что производители шилдов не захотели башлять бабосы за использование UTFT ) . и тупо перебирал все виды дисплеев от 0 до 32 (потом пришлось DB0-DB15 перевернуть, потому как в разных распиновках поразному) , пока экран качественно не запустился на UTFT myGLCD(22,38,39,40,41); ( это CTE28) .
потом уже потратил ещё несколько дней на написание проги по считыванию ID дисплея
Подключение дисплея 1602
// программа для определения ID контроллера дисплея, подключать все 16бит
// (эт чтоб найти старшие биты , ибо в большинстве случаев именно они используются для 8ми битного режима)
//
// в верхней строчке покажет 16 бит ответа с дисплея , начиная со старшего бита
// в нижней строчке в HEX коде старший и младший байты. (для ILI контроллеров это будет 9325, 9320, 9327,...)
// при угадывании правильного подключения шины данных дисплея должно получиться к примеру:
// 1я строчка: 1001 0011 0010 0101
// 2я строчка: 9 3 2 5 ,т.е. это контроллер ILI9325
// подсветку дисплея через ом~20-30 к +5v, питание дисплея от ардуиновских 3.3v (если надо то занизить стабилитроном
// или стабилизатором до 2.8v - т.к. иногда инициализации дисплеев приводятся для 2.8v - там константы напряжений
// для правильной работы ЖК матрицы)
//
// выводы дисплея желательно подключать через резист. делители к примеру 10к+22к , на крайняк тупо через 10к,
// но тогда на питание диспл. посадить стабилитрон 3,0-3,1v и запитывать через резист. ом~20-30 от +3,3v,
// иначе дисплей запитается через выводы и ~4-5v пересилят ардуиновские +3,3v
//
// выводы подключать стандартно UTFT на arduino mega RS(CD),WR, CS, RST
// 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
//
//выводы ардуино меги 22-29 к предполагаемым выводам дисплея DB8-DB15
//выводы ардуино меги 30-37 к предполагаемым выводам дисплея DB8-DB0
// и дополнительно, для получения ответа от дисплея, необходимо
// к выв. ардуино меги 42 подключить вывод RD дисплея. (по умолчанию на шилдах он кинут на +3.3v)
// Дисплей 1602, выводы VSS, VDD, RS, E, D4, D5, D6, D7
// к выводам ардуино меги GND, +5v, 13, 12, 11, 10, 9, 8
// помним на дисплее поставить резистор 3,3к между VO и VSS(+) , RW замкнуть на VSS(+), подключить A и K к VSS(+) и VDD
#include <LiquidCrystal.h>
#define CD_Pin 38 // (RS)
#define WR_Pin 39
#define CS_Pin 40
#define RST_Pin 41
#define RD_Pin 42
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int i;
byte byteH;
byte byteL;
void setup()
{
lcd.begin(16, 2);
digitalWrite(CS_Pin, 1); // деактивация диспл. (отключение его шины данных DB0..DB15)
digitalWrite(RST_Pin, 0); // сброс дисплея
//for (i=22; i<=42;i++) { digitalWrite(i, 0); } // всё лог.0
for (i=22; i<=42;i++) { pinMode(i, OUTPUT); } // конфиг всех пинов на выход + управляющие пины
digitalWrite(RST_Pin, 1); // вывод дисплея из сброса
// запишем команду
digitalWrite(RD_Pin, 1); // уст. порта дисплея на приём (ввод данных в дисплей)
digitalWrite(CD_Pin, 0); // будем работать 0-команда 1-данные
digitalWrite(CS_Pin, 0); // выбор дисплея (активация)
PORTA=0x00; PORTC=0x00; // это команда для считывания ID дисплея =0x00
digitalWrite(WR_Pin, 1); // дёргаем WR
digitalWrite(WR_Pin, 0);
digitalWrite(CS_Pin, 1); // деактивация диспл. (отключение его шины данных DB0..DB15)
//чтение данных
DDRA=0x00; DDRC=0x00; // или for (i=22; i<=37;i++) { pinMode(i, INPUT); } // конфиг всех пинов на вход
digitalWrite(RD_Pin, 0); // уст. порта дисплея на передачу (вывод данных с дисплея)
digitalWrite(CD_Pin, 1); // будем работать с 0-команда 1-данные
digitalWrite(CS_Pin, 0); // выбор дисплея (активация )
digitalWrite(WR_Pin, 1); // дёргаем WR
digitalWrite(WR_Pin, 0);
lcd.setCursor(0, 0);
byteH=0;
if ( digitalRead(29) ) { byteH=byteH+128; lcd.print(1); } else lcd.print(0);
if ( digitalRead(28) ) { byteH=byteH+64; lcd.print(1); } else lcd.print(0);
if ( digitalRead(27) ) { byteH=byteH+32; lcd.print(1); } else lcd.print(0);
if ( digitalRead(26) ) { byteH=byteH+16; lcd.print(1); } else lcd.print(0);
if ( digitalRead(25) ) { byteH=byteH+8; lcd.print(1); } else lcd.print(0);
if ( digitalRead(24) ) { byteH=byteH+4; lcd.print(1); } else lcd.print(0);
if ( digitalRead(23) ) { byteH=byteH+2; lcd.print(1); } else lcd.print(0);
if ( digitalRead(22) ) { byteH=byteH+1; lcd.print(1); } else lcd.print(0);
byteL=0;
if ( digitalRead(30) ) { byteL=byteL+128; lcd.print(1); } else lcd.print(0);
if ( digitalRead(31) ) { byteL=byteL+64; lcd.print(1); } else lcd.print(0);
if ( digitalRead(32) ) { byteL=byteL+32; lcd.print(1); } else lcd.print(0);
if ( digitalRead(33) ) { byteL=byteL+16; lcd.print(1); } else lcd.print(0);
if ( digitalRead(34) ) { byteL=byteL+8; lcd.print(1); } else lcd.print(0);
if ( digitalRead(35) ) { byteL=byteL+4; lcd.print(1); } else lcd.print(0);
if ( digitalRead(36) ) { byteL=byteL+2; lcd.print(1); } else lcd.print(0);
if ( digitalRead(37) ) { byteL=byteL+1; lcd.print(1); } else lcd.print(0);
lcd.setCursor(0, 1);
lcd.print("ID display: ");
lcd.print(byteH, HEX);lcd.print(byteL, HEX);
digitalWrite(CS_Pin, 1); // деактивация диспл. (отключение шины данных DB0..DB15)
DDRA=0xFF; DDRC=0xFF; // или for (i=22; i<=37;i++) { pinMode(i, OUTPUT); } // конф. шины данных ARDUINO на выход
digitalWrite(RD_Pin, 1); // уст. порта дисплея на приём (ввод данных в дисплей)
//digitalWrite(RST_Pin, 1);
// вставка для UTFT
// pinMode(42, OUTPUT); // конф.ардуино для RD на выход
// digitalWrite(42, 1); // уст. RD=1 - чтобы порт дисплея был на приём (ввод данных в дисплей)
//delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
}
Именно на этом шлейфе дисплея не оказалось перемычек R1 R2....(для SPI или 8 бит режима) , шлейфом железно он на 16 бит. Разве что дорожки резать, ну нафиг, буду эти дисплеи использовать на mini pro или UNO c A6 и A7, для построения графиков по входному АЦП, ног хватит. , А т.к. шина данных дисплея отключается по CS , то можно и все цифровые пины использовать.
Приобрёл также по 39-79руб 2,8"-3,0" TFT8K1465 и TFT8K1465 400x240 вроде там ili9326 и R61509V (на их шлейфах есть R1-R4 для перевода в 8 бит и SPI) , после долгих поисков нашёл много разной инициализации на них, но незнаю как их вкорячить в UTFT хотябы взамен похожих, henningkarlsen.com ответил что работает только с изготовителями шилдов или консультация за деньги.
Также можно дисплеи поискать у от FLY , там много китайчины TFT8K... . Не советую увлекатьсям долгим поиском названий, в китае много фирмочек делают дисплеи, ставят какие угодно контроллеры, разнообразные шлейфы придумывая свои названия что по ним нереально найти что либо. Можно ещё прикидывать по самим контроллерам, что примерно в шлейф от них куда идёт.
Распиновки, если надо, кину позже , как соберу их до кучи со всех компов.
!!!!!!! remark к началу темы
на август 2017 последняя верия читалки v5.3 comment-290976
Подсветка дисплея 15-20 Ом от 5v. Питание дисплея 5v через 100 Ом, стабилитрон 3.0v, кондёр 10мкф (хотя думаю на свой страх и риск можно и параллельно светодиодам подсветки запитаться, они как раз 3.0-3.3v стабилизируют , в надежде надёжных светодиодов) . Вот такая вот платка получилась не заграждающая многочисленные пины меги.
после долгих поисков нашёл много разной инициализации на них, но незнаю как их вкорячить в UTFT хотябы взамен похожих
Свяжитесь со мной по почте ers-oleg ГАВ yandex.ru Попробую помочь с UTFT, а Вы мне)
UPD: куда-то Вы пропали. skype не пользуюсь. Потому для связи почта
3.0" 400x240 8K1465 TFT8K1465FPC-A1-E TRULY-C ( nokia china 5800 , X6 ) и arduino
- следующий осиленный дисплейчик.
идёт вместе с тачем, по нулевому адресу вычитывается контроллер SPFD5420A
Распиновка 37pin :
Места для резисторов R1, R2, R3 выполняет какую-то непонятную функцию (R1 паралелен кондёру, R2 и R3 образуют среднюю точку), т.е. это не похоже на IM0-3 для перевода в 8бит, и SPI режим. Можно посмотреть даташит на контроллер, кому надо, где примерно должны выйти эти пины в шлейф. (похоже на 1,2,3 или 5,6 тонкие дорожки)
Лепил на базе последних IDE 1.5.8 и UTFT v.2.79
чтобы запустить этот дисплейчик на UTFT пришлось долго повозиться с его файлами для упрощенного и быстрого использования инициализаций, без их переделки с 16ти на 8H+8L. Во первых адресация к регистрам 16ти битная. В других дисплеях к примеру посылали 8ми битный адрес регистра, а затем м.б. несколько последовательно 8 (16) битные параметров для его конфигурации. В данном дисплее (и последующем) надо посылать 16ти битный адрес регистра, затем 16ти битный параметр. (и не важно как используется шина 16,8бит ,SPI 4p или SPI 5p). Во вторых другая адресация X и Y.
делал добавление 16ти битных фукций в UTFT.h , UTFT.cpp и подменой драйвера ILI9327 на разные драйвера добытые в просторах инета.
Добавка в UTFT.cpp :
ну и соответсвенно их надо объявить в UTFT.h :
Возможно что-то переборщил, ну да ладно, главное - заработало.
Одна из нескольких рабочих инициализаций initlcd.h :
3.0" 400x240 8K1465 TFT8K1465FPC-A1-E TRULY-C ( nokia china 5800 , X6 ) и arduino
М О Л О Д Е Ц!!!
Каков размер активной области экрана?
Это и есть активный (примерно 3,0" . точнее я бы сказал 2,9" , диагональ всего дисплея около 3,5" ).
инет говорит о аналогах F30NCX-11_V1.0, FPC-FTM300D03Z-00, BX FPC 30003 , CT028WQT001 V1
//для первого дисплея аналоги подправил выше
К примеру у зелёного шилда 3,5" (точнее я бы сказал 3,4" активная, диагональ всего около 3,8" ).
Дисплейчик 400x240 8K1463 TFT8K1463FPC-A1-E TRULY-C (ili9326) -позиционизируется как 2,8" (точнее я бы сказал 2,75 , диагональ всего дисплея около 3,3" ).
Возможно позже расположу опыты и инфу на него, он смог переключиться в 8ми битный режим, перестановкой перемычки R1 R2 на шлейфе. Шёл без тачскрина. ппереваривает инициализации от spfd5420a
//так уж завелось , что на ebay и aliexpress дисплеи пишутся в дюймах активной области а не в мм. По поиску названий дисплеев в инете многие магазы указывают внешний размер дисплея. На aliexpress зачастую выкладывают картинки и PDF с точными размерами и распиновкой.
(разм. внешние - вместе с белой удерживающей рамкой, с её ушками)
!!!!!!! remark к началу темы
на март 2021 :
варианты подключения LVDS , MIPI , RGB дисплеев (и др. также не имеющих своей видеопамяти):
#102 , #211 , #234 , #764 , #1804 , ( #529 - #553 , #753 ) , с видеоплатой,тогда tv-out #663 , #2736 , почему не получиться с LVDS #2980 - #2984 , RGB #3198 - #3200 ,
макетные платы :
#178 ,
как надо фотографировать шлейфы дисплеев (чтобы чётко прослеживалась каждая дорожка на общем плане) :
#160 , #163 , #594 , #1385 , #1386 , #3408 ( и как не надо #607 , #881 , #889 , #1045 , #1074 , #1159 , #1354 , #2741 ) ,
Варианты минимизаций поделок на дисплеях:
#15 , #40 , #53 , #930 #936 ,
Подключение 8/16ти битных по SPI :
#162 , #878 #884 (но надо было Reset на отдельный пин) , #3362 ( список 7ми! проверенных библиотек ) ,
Большой размерчик :
5.6" #2022 -... , 5" 480x272 #2468 , общее #2709 , 5.6" #3033-...
640x360 #265 - #269
800x480 #2611 #2612 ,
Необычные экземпляры:
без деталей на шлейфе #511 #2458 #2664,
Описание даташита дисплея на русском, с русскими картинками, на примере ILI9325
http://microsin.net/programming/avr/tft-lcd-controller-ili9325.html
8/16 бит библиотеки
#3408
SPI библиотеки
#3362
я имел ввиду в мм)) Не люблю эти дюймы..
а может кто то подскажет как подключить к ардуинке дисплей от нокии 3510?
а может кто то подскажет как подключить к ардуинке дисплей от нокии 3510?
а может для начала спросить у яндекса или гугл ? " дисплей nokia avr " " дисплей nokia atmega " " дисплей nokia arduino " и не надо здесь спамить, и засирать ветку. И если только нигде нет инфы, то попробовать самому исследовать и выложить здесь. Есть более большие дисплеи nokia чем ваш , и по "копеечной" цене.
Тут выкладываю то, что готового не нашёл в инете после долгих поисков. Что собрал в одно, исследовал, разжевал .
ух, сколько злости. ладно схема подключения есть, но раз ты такой умный то покажи где взять библиотеку для данного дисплея под ардуину? и то ч то есть куча дешовых дисплеев еще не значит что они у меня есть, хочу попробовать подключить то что есть.
slider, скажите пожалуйста, а что вы думаете относительно 7" дисплеев 800х480 от электронных книг. На свалке в Юлмарте можно купить книгу с TFT за смешные деньги? У меня, кстати, пришел из Китая треснутый дисплей на 3.5" , китайцы выслали замену, а можно переходник от него подружить с таким дисплеем - чисто теоретически? Или может чего в Питере поискать, в магазине по вашей ссылке смотрел, конкретно таких как ваш уже нет.
7" экраны новые находил там за 700руб, да и у самого с электронных валяется. На сколько я знаю, в 7" экране нет видео ОЗУ (т.е. там тупо RGB мутиплексор), поэтому ему обязательно нужна плата с контроллером, к примеру на распространённой SSD1963. + микросхемки питания. Теоретически можно, но соединять это всё вместе врят ли получиться дешевле китайцев.
У Лаборы, оказывается склад в Омске, поэтому самое большое кол-во было там. Дисплеев у них было по 1-3шт. поэтому позаканчивались. Можно под заказ, но говорят это уже после нов.года. Вообще маркировок дисплеев огромное количество, контроллеры зачастую часто встречающиеся, распиновки в большинстве случаев стандартные, особенно для 37 пин. Можно почти любой приляпать. На зелёный шилд уже прилепил дисплейчик 400x240 взамен также треснутого при транспортировке, в след. посте черкну. (чтобы не трескались в пути, у китайцев надо 2 и больше заказывать, они в картонной коробке тогда шлют, заранее с ними ещё можно обговорить) .
Благодарю за ответ. У меня плата красная. А треснул (скорее всего) из-за неправильной упаковки. Перетянули сильно вдоль упаковочной лентой (был слегка даже изогнут, при этом малые стороны были без умягчителя). И в самолете от мороза его и крякнуло. Я, кстати, еще выписал малину попробовать. Там на плате разъемчик под дисплей - может туда 7" сгодится. А то я уж Ритмикс за 320 р. купил. Не удержался.
3. третий распознанный дисплейчик, купленный почти даром, за 29руб
2,8" 400x240 8K1463 TFT8K1463FPC-A1-E TRULY-C (ILI9326) , china mobile K599
распиновка как у предыдущего
По нулевому адресу вычитывается 9326 .Порывшись в инете нашёл несколько инициализаций, адаптировал с UTFT , приложил в архив, на случай если кто озаботиться подбором лучшей для коррекции цветов, яркости, или мож быстрым выводом на экран. На шлейфе переставил резистор с места R2 на R1, и дисплейчик переключился на 8 бит (используются грубо говоря с DB9-DB15). Вкорячил на известный зелёный шилд. Напряжение питания 3,3в оказалось аж 3,7в ( прёт в дисплей через микросхемы согласователей уровней, они в свою очередь и поднимают их питающее +3,3в из-за 5ти вольтовых уровней с ардуины) Добавил параллельно +3,3в стабилитрон на 3,0в, питающее снизилось до 3,5в.
После правки (спасибо разработчикам Notepad++, удобная замена Wordpad-у ) библиотеки UTFT (т.к. в ILI9326 16ти битная адресация к регистрам), и инициализаций всё запустилось . Для зелёного шилда брал за основу UTFT_v2.77b2_uno_ili9327_8bit_turbo (спасибо PhOSTU ), т.к. там уже лишнее удалено , и переделан вывод на дисплей через 2-9 цифровые пины , а не 0-7(для быстрой прямой записи в порт) как в стандарте UTFT. Что конечно замедляет скорость вывода на экран, но зато высвобождает аппаратные RХ TX .
Сделанные 4ре поправки в v.2.77b2 (можно примерно также и в любой версии UTFT):
1. в UTFT.h добавлено рядом с подобными функциями
2.в UTFT.cpp добавлено рядом с подобными функциями (для 8битной передачи , а для 16ти передавать надо через 2 порта, как в примере выше)
(зачем правда такая тавтология x1 y1 , мож в других инициализациях от неё можно избавиться? а то тест - 51сек )
В UTFT.cpp , в функции инициализации портов добавил ещё
т.к. вывел вывод RD с дисплея, согласно шилду. на RD надо подать лог.1, при передаче данных в экран. Если хотите что прочитать с дисплея, к примеру ID, то лог.0. В большинстве ардуиновских шилдов он не выводится на общий разъём, дабы не тратить пин, и на самом шилде он замкнут на 3,3в.
Вызывать скетч также как для зелёного шилда в UTFT2.77b : Файл-Образцы-UTFT-Arduino(AVR)-UTFT_Demo_400x240 , по умолчанию там уже стоит UTFT myGLCD(31,A2,A1,A3,A4); .
Вот и заработало на зелёном шилде:
Архив с найденными инициализациями ILI9326 по инету: https://yadi.sk/d/7YDCfi14ddJhC , с переделками их под UTFT 2.79, даташиты ili9326 и данный опыт - уже заточенная UTFT2.77c - если заменить на зелёном шилде ili9327 на ili9326 (используемая IDE1.5.8).
p.s. к StrangerM, ссылку подредактировал (почему-то пробел в конце неё затисался)
Ссылка не работает.
№4
3,2" 400x240 R14037150 FPC8578A-V0 T320S04A-FPC-V1 ( HX8352 HX8352A ) 45pin , china phone
распиновка подошла от R61581 TFT LCD screen 320*480 45pin , BTL353248-L472L
(pinout нашел на aliexpress перебирая поиски 400x240 , 240x400 , 45pin . http://www.wayengineer.com/35-r61581-tft-lcd-screen-320480-super-bright-hd-45pin-p-7636.html#.VK4RLNKsU0E , тамже у них можно много распиновок подсмотреть)
по нулевому адресу вычитывается 0x52 , что характерно для HX8352A (пины DB0-DB17 для 16бит используются DB0-15, для 8бит - DB0-DB7 , замечу что у других контроллеров бывает совершенно по другому используются пины DB0-DB17в разных режимах)
При проверке на UTFT получилась инверсия цветов tft lcd - синус рисуется на белом фоне вместо черного , (видимо поляризационная плёнка повёрнута), решил изучив даташит HX8352A, выключил бит INVON в 0x01 регистре . (в initlcd.h поправил
Потом исправил неправильную цветопередачу, устанавливается выводами IM0-IM3 (цветность 65К 262K + битность шины контроллера) . Для 16 бит сразу неудалось бодиться правильной цветопередачи, поэтому переключил на 8бит для своего устройства, для этого подавал на IM0,IM1,IM2 соответственно лог. 0,0,1 . На RD лог 0. Далее питание, подсветка, шина данных и управляющие вывода res, wr, dc(rs), cs . остальные нетрогаются.
Шлейф не быстро тяп-ляп паябелен - но оказывается аккуратно возможно, раъемов на шаг 0,3mm 45pin не нашлось ( FH26-45S-0.3SHW ). :
Выводы управления кидал на ближайшие цифровые пины ардуино, в UTFT 2.79 получилась строчка инициализазии myGLCD(8,9,10,8,11); , и пришлось ещё в UTFT.cpp подправить (т.к. для HX8352A нет там 8 битного режима)
, было byte dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 16, SERIAL_5PIN, SERIAL_5PIN,
Вот такой вот тонкий девайс получился - 8мм , и если б ещё не большой кварц на arduino mini pro,...но купился на большой стабилизатор LM1117 5v , типа он может работать до 15в, не как обычный маленький до 12в. :
Ну и конечная цель - даталоггер для АКБ в солнечной электростанции: (чтобы быстро на глаз оценить поднималось ли напр. до 14,4в-14,7в, и не опускалось ли оно ниже 12,5в -12,2в. Верхний график 1пиксель=1секунде. На втором и третьем графиках в виде вертикальных линий - минимумы и максимумы за определённое время. Система хоть и 24вольтовая, но изображение 12в для удобства восприятия. питание 24в через DC-DC LM2596 -> 7.5в , аналог вход 24в через делитель и подстроечник)
// удалось ещё увеличить скорость в UTFT закоментировав строки в setxy.h
Так дисплейчик очень понравился - максимальные углы обзора, без нарушения градаций яркости цветов. Очень яркий и красочный.
№5 (продолжу по дисплеям с таким разрешением, хотя уже разобрался и с несколькими 320x240)
3,2" 400x240 FPC8722 FPC8722A-V2-A ( HX8352B ) 47pin , Fly E151
инет находит ещё аналогии: дисплей Fly E171 E134
много времени потратил на его распознание, (амеры в TRULY говорят: обращайтесь к своему дистрибьютору; китайцы говорят: сначала купите у нас такие дисплеи , только тогда мы скажем что у них внутри за контроллер и распиновка, - это условие завода, информацию продавцы могут предоставить только по тем дисплеям, которые у них есть на продаже). Короче, методом научного тыка вычитывалось по нулевому адресу id display 0x67 0x65 (шина данных до 18 бит)
с таким подобным названием контроллеров небывает. Помогло перечитывание подобных даташитов. Оказывается не всегда id соответствует названию:
id 0x52 - HX8352A max 480x240
id 0x65 - HX8352B max 432x240
id 0x72 - HX8352C max 432x240
и инициализации оказывается нужны все разные. (инициализацию спросил у продавца на али, который торговал дисплеем на HX8352B)
hx8352b initial code :
Распиновка нашлась в схеме на телефон (так что если брендовый телефон, ищите схемы ... schematic ... service manual):
DNC_SCL - это RS (DC)
IFSEL0 - никуда не подключать, он сам немного притянут к земле. По умолчанию в контроллере при 16ти используются DB17-10 и DB8-1 , в 8ми используются старшие DB17-10 (как и в большинстве контроллеров при переключении на 8 бит используются старшие биты, что также и сделано в UTFT, что не надо перепаивать провода при переключении режимов). Если же подать лог.1 то в 16ти битном режиме из DB17-0 будут использоваться DB15-0 , в 8ми битном режиме младшие DB7-0 ). В любых случаях неиспользуемые DB в z-состоянии.
BS0-2 - установка режима, соответственно: 010-16бит, 110-8бит
другие управляющие вывода просто не трогал:
A4,A5 оставил на случай подключения I2C микросхемы времени
Углы обзора по горизонтали у него не ахти.
Вот переделка UTFT 2.79 https://yadi.sk/d/JxBCuJ70e8SUF (в memorysaver оставлен только HX8352A , в UTFT заменена битность с 16 на 8 byte dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 8,.... , драйвер HX8352A заменен на HX8352B и закоментировано в нем лишнее, в примере для UNO UTFT_Demo_400x240 заменена строчка инициализации на UTFT myGLCD(8,A0,A1,A2,A3); ).
№6 ( удалось подключить от fly e185, аналогичен e151 , только распиновка другая )
3,2" 400x240 TFT8K6653 TFT8K6653FPC-A1-E ( HX8352B ) 46pin , Fly E185
инет находит ещё похожее: ELD03210030F ELD03210060F TFT8K3373 TFT8K3373FPC-A1-E дисплей Fly E190
DCX - это RS
8,9,32-35 никуда не подключал.
IM2-0 соответственно 010-16бит , 110-8бит
Шаг пинов меньше чем у E151, и на подсветке стоит 4 светодиода , а не 5 как у Е151. (и заметил странность при опытах, на выход с дисплея TE подал лог.1 , так дисплей ярче стал показывать)
у тебя не было проблемы с дисплеями от сотиков когда все пашет, но иногда 1-2 пикселя рисуются не там где положено и со временем на экране собираются левые точки, которые висят пока их не очистишь принудительно?
были битые пиксели (зеленая полоска из нескольких штук) - светятся сразу после инициализации, естественно не убираются ничем.
По твоему описанию похоже где-то косяк:
1. в проводах(длинные провода, наводки, паразитная ёмкость - следы флюса, резисторы попробовать уменьшить до 10к или ещё меньше),
2. в пульсациях питания, или какойто вывод питания не был запитан (запитывался через входа, но потом всё равно давал сбои, пока на + не повесил)
3. в быстрой скорости вывода (попробовать задержки поставить на управляющие сигналы. Было что на шлейфе стояли кондёры паралленьно некоторым управляющим сигналам, так через резисторы 20К фронты и спады импульсов они затягивали, снёс со шлейфа эти кондёры - всё заработало)
4. в почти использованной оперативе (свыше 89% по подсчётам IDE 1.5.8) , у меня было. что видимо подгружались ещё буквы библиотеки UTFT, что вызывало неучтённое переполнение оперативы, её наслоение саму на себя, в итоге график не там где надо, или его вообще отсутствие, приходилось урезать массивы и оптимизировать их, от каких-то отказываться, после чего программа стала выполняться корректно.
5. где-то всё же программа лишние вырисовывает, особенно если работаешь с прерываниями. (Было из прерывания иногда не вылазиет (прерывание в прерывании), т.к. иногда аномально долго рисует в нём линию из пары пикселей библиотеки UTFT, заметил это по аномальным длительным вспыхиваниям светодиодов повешанных параллельно управляющим сигналам на дисплей, - они не успевали потухнуть до следующего прерывания) Либо искать косяк в UTFT, убирать всё неиспользуемое. либо делать на основе библиотек от производителей шилдов, заменив только инициализацию и рисование пикселя под свой дисплей. Замечал это что им надо меньшее количество обращений к регистрам, чем UTFT. В UTFT иногда при добавлении нового дисплея, приходилось добавлять ещё записи в несколько регистров в setxy.h (иначе рисует криво, со смещением и с пропусками), когда библиотеки от производителя без этого излишества обходятся - что значительно увеличивает скорость прорисовки.
задержки уже вставлял куда можно не помогает, на ссд1289 с таким сталкивался, задержки помогали, а тут никак. При непрерывном обновлении раз в несколько минут по пикселю вылазит левому. Экран вот такой http://www.aliexpress.com/item/3-2-TFT-Color-Screen-Module-320-x480-LCD-Screen-Support-For-Mega2560-1PCS/32262376109.html
Добрый день!
Можете мне помочь? Есть дисплей от принтера Кенон, если не ошибаюсь МХ240. Но я не знаю как его подключить, и не имею понятия какой там контроллер. Пробовал писать в сервисный центр кенон, с просьбой дать хоть какую-то инфу по дисплею, но в ответе отказали.
Надписи на шлейфе:
055
7381
C8DC31MCABB
AH2BF6964C98
Всего 22 контакта. Могу только с уверенностью сказать что 1 контакт идет на землю. Фото выложу чуть позже, так как пишу с телефона.
Доброго времени суток! Cлучайно не знаете, какой контроллер в дисплее, на шлейфе которого написано DW666 (DW666BFG)?
Может Вы имели ввиду WD666BFG??? Поиск выдал:
LCD for China-Sony Ericsson X10 Cell Phone, (44 pin, (92*52)) #FPC-S95588-AAA-1 V01/WD666BFG/R14532036/R14532034C/FPC-YE3601A3-A/FPC-XY036WQ01
и
Куплю LCD дисплей на тел. CRTEL Xperia X10 WiFi Маркировка:WD666BFG. Или аналог:FPC-S95588-AAA-1 или TFT025-FPC-B или RX-35-HX-025 или TFT8K3456FPC-A1-E или R14532036.
Ищите инфу про аналоги. Думаю контроллеры в них одинаковые
Все нормально, там 100% ILI9327, вычитал его ID.
Всем привет!
Имеется Дисплей от китайского телефона A7100, 4".
Надпись на шлейфе: hifay 15-12396-0794-1
Надпись на дисплее:
13-24081-0794-1
QZ2305BB 2013 4 12
Помогите определить что за контроллер стоит на дисплее и какая распиновка.
forfrends,
1. берешь мультиметр и прозваниваешь где у тебя на дисплее "-" (часто замыкается с экраном шлейфа, с многими кондёрами) и "+" обычно широкие дорожки
2. рисуешь примерную распиновку, вначале шлейфа у тебя (по фоткам "-",LEDA,K1-K8) светодиоды , потом 16 бит данных, затем шина управления .
3. набираешь в гугле типа lcd screen 39 pin , lcd tft 39 pin , 39 lcd screen , переходишь на вкладки картинки , и подбираешь похожую распиновку. или открываешь все ссылки подряд и смотришь, иногда на алиэкспресс приводят распиновки и типы контроллеров. чего сложного то?
4. подключаешь к меге через резисторы 10ком, вычитываешь по нулевому адресу какой у тебя контроллер, или тупо подбираешь инициализации UTFT от 1 до 31 (для версии 2.79 и если комментировал какие контроллеры, раскоментируй)
5. вуаля, пользуешь рабочий большой диссплей для своего проекта. Пишешь сюда для народа найденную распиновку и контроллер.
PS вот ещё сайтец хороший, где много распиновок, документаций, кодов инициализаций можно подсмотреть http://www.wayengineer.com/
помогает ещё на таобао по найденному названию на шлейфе, просматривать картинки и названия чтоб найти ещё аналогов.
slider, спасибо за очень хорошую инструкцию! Буду пробовать, только это будет очень не скоро. Вычитывать регистр программой из 1-го поста? Попробую в ней разобраться. Надеюсь что-то получится! Как только будут результаты - сразу выложу суда отчет + фото :)
№7
3,0" 320x240 TFT8K1304 8K1304 KFM529B21 529B21 ( ILI9320 ) 37pin tft lcd
подсветка 4 светодиода . Распиновка на фото , шлейфы у дисплеев немного разные , но распиновка таже, на одном имеется тачскрин.
как обычно зарисовываем схему шлейфа, чтоб найти его возможности и аналогии с распиновками:
Распиновка 1-37pin [DB0-3,GND,VCC,CS,RS,WR,RD,nc,XR,YD,XL,YU,A,K1-4,nc,DB4-15,RESET,VCC,VCC,GND,DB5-7]
Опытным путём проверено, на левом чтоб переключить на 8 бит надо закоротить j1 . На правом переставить перемычку с R1 на R2 .
Вот такой шилд получился:
тачскин подключен напрямую ибо его сопротивление около 300 ом. Питание от ардуиновских +3,3в , и чтоб ардуиновские лог1 5в не пересилили его через 10ком резисторы(т.к. дисплей очень мизерно потребляет), то питание зашунтировано стабилитроном +3,3в. Подсветка от +5в через токоограничивающий резистор. Разъем D8-D13.. немного изогнут, чтоб влазить в ардуинку.
Использована старая библиотека UTFT 2.77 (в новых уже убрали поддержку ILI9320 из-за финансовых несогласий)
Тачскриновскую можно взять от adafruit https://yadi.sk/d/JblWoo7biBW6N , там есть 2 примера тача, координаты кидаются в монитор последовательного порта . Вот с их сайта на 07.2015 библиотеки которые могут пригодиться https://yadi.sk/d/WmKaB8maiCURv демо рисовалка поддерживает контроллеры ILI9325 ILI9328 HX8347G ILI9341 HX8357D , и ещё сообщает ID контроллера в монитор последовательного порта, так что ей можно определять что у вас за контроллер в дисплее.
Написал библиотеку понятную для себя, делов то , вертикаль и горизонталь, то на одну линию на концы подать 0 и 1 , у второй портом подтянуть внутренним высокомным резистором и считать уровень напряжения , если оно по прежнему подтянуто к 5в - значит нажатия нет, если меньше в правильных пределах - то нажатие есть. и для второй координаты также.
Т.к. тачи бывают немного косячные, если нет контакта ( просто нажать через скользкую бумагу в место крепления шлейфа на стекле, паяльником, и подержать давлением без него, дать остыть) , а бывает что он прожат в середине или углу (если запустить рисовалку, то видать где точки стремяться оказаться при слабом нажатии)
То для точности пробывал (правда снижает скорость программы) , замерять к примеру 20 раз в массив, во втором массиве пересчитывается , сколько каждое измерение раз встречается - потом ищется макслимальная встречаемость - верить ей. Да , точность колоссальная. Но всё равно без задержки перед появивщемся нажатии, через 0,1 сек дожатии , это даст ошибку. Так что более простое и умеренно точное определение будет - отслеживать нажатие, появилось, подождать 50-100мс чтобы палец дожал, потом и определять. если не отпущено после измерения, то измерениям - верить как достоверным!
Приветствую!
Мне достался вот такой дисплей
3,5" TFT Touch 69.03A23.T01
Был снят с неисправного принтера HP M425, разрешение предположительно 400х320
Разъем 50 контактный, первые 6 контактов похоже на подсветку и тач.
Вместе с дисплеем еще была плата с контроллером тач кнопок CY8C20546A-24PVXI, из этой платы шел на основной контроллер уже 26 контактный шлейф.
С чего начать, как разобраться с дисплеем?
Из контроллеров имеется только ардуина 2560
Мануал я кажется нашел :)
http://www.display-solution.com/pdf/tft-displays/AUO/AUO_A035QN05V1_2011...
если у A035QN02 V3 54пина и он RGB "Interfaces: parallel RGB 18-bit" ( там тупо мультиплексор, без видео ОЗУ (интегрированная видеокарта - выражаясь языком компьютерщика) ) , то что говорить о вашем похожем в 50 пинов. Такие почти никто и не приспособил (разве что под черно-белое маленькое), слишком много надо видеопамяти и ресурсов для всей цветности. Можете посмотреть в сторону чипа SSD1963 , ну или не тратить этот дисплей время.
Для "правильных" дисплеев характерно много рассыпухи на шлейфах. Фотки выше.
Мне дисплей пригодился бы как монитор консоли 3D принтера.
Он должен слушать последовательный порт и выводить текущую информацию. Ну и передавать в принтер тоже.
Готовые решения есть, но не дешево, и интересно самому попробовать сделать :)
Добавлю, чтоб было, продублирую в нескольких темах.
Наткнулся при поиске на китайский ресурс, облачный диск человека, тогрующего дисплейными модулями на Таобао.
Там куча информации по дисплеям, библиотеки под разные контроллеры, в том числе большинство под Arduino, примеры, даташиты, схемы, фото распиновок и т.д.
а адресом на таобао чела не поделишься?
ХЗ, наткнулся случайно, брел по этому пути, какая то из ссылок привела на нужный мне ресурс:
http://www.mcufriend.com/
http://www.mcufriend.com/download.htm
https://shop33501813.world.taobao.com/category-450786554.htm?spm=a312a.7...
slider, дай, пожалуйста более четкую распиновку из поста 28:
3,0" 320x240 TFT8K1304 8K1304 KFM529B21 529B21 ( ILI9320 ) 37pin tft lcd, а то не очень видно что там на бумаге...
slider, дай, пожалуйста более четкую распиновку из поста 28:
3,0" 320x240 TFT8K1304 8K1304 KFM529B21 529B21 ( ILI9320 ) 37pin tft lcd, а то не очень видно что там на бумаге...
этот сайт очень урезает размер и соответственно качество фото. Я ж под фоткой там написал
1-37pin [DB0-3,GND,VCC,CS,RS,WR,RD,nc,XR,YD,XL,YU,A,K1-4,nc,DB4-15,RESET,VCC,VCC,GND,DB5-7]
это поочереди с 1 пина по 37. nc значит no connect (неподключается, неиспользуется). Это одна из стандартных распиновок для 37контактных дисплеев.
Уважаемый SLIDER! имеется дисплей марки с39363-a474 , 10 выводов идут на плату телефона , DECT телефон SIEMENS. (это конечно, не такие сложные дисплеи, с которыми Вы разбираетесь) , просьба помочь с подключением к Ардуино (распиновка разъема, библиотека). Если Вас это, конечно, не затруднит. В интернете никакой информации не нашел. Или подскажите алгоритм работы с неизвестным дисплеем, полагаю, это заинтересует форумчан. Заранее благодарен
дисплея такого нет у меня. Совет закиньте его. Есть цветные изученные дисплеи от сименс и нокиа, последних в магазинах полно и дёшевы они (~100руб), еще у знакомых своих поспрашайте всяко валяются сломанные без дела. их за нефиг дело подключить. достаточно поискать в инете arduino nokia , arduino siemens .
Благодарю,за совет, но поковыряюсь самостоятельно)) если что получится, отпишусь
Обьясни пожалуйста человеку далекому от програмирования. У меня такая же история со сдвигом картинки, дисплей TFT_320qvt_9341 Arduino Mega 2560 (китай). У себя в примерах строку myGLCD.print("START", ) я не нашел. Куда мне ее вписать ? Спасибо.
Обьясни пожалуйста человеку далекому от програмирования. У меня такая же история со сдвигом картинки, дисплей TFT_320qvt_9341 Arduino Mega 2560 (китай). У себя в примерах строку myGLCD.print("START", ) я не нашел. Куда мне ее вписать ? Спасибо.
Это же просто строка из скетча. На примере так сказать. Что проще оказалось в скетче везде подобавлять(подписать) к координатам Х +80 . Это решение универсальное, ну и для попавшегося контроллера и матрицы дисплея. В других случаях проще помагало просто немного изменить инициализацию , не исправляя весь скетч. Для этого надо вам изучить PDF к контроллеру, и посмотреть какие регистры ответственны за сдвиг картинки.
Чтоб не загаживать тему, и т.к. здесь отсутствует личка, можете, написать на емайл segun . яндekc.ру . Раз у вас есть тема http://arduino.ru/forum/apparatnye-voprosy/tekst-na-tft320qvt-vverkh-nogami то можно уже в неё, по умолчанию оповещение приходит всем ответившим. Собственно можете и не заморачиваться, а отписаться в ней как получилось с простым сдвигом +80, в вашем примере.
.
прочитайте внимательно тему, я приводил методы поиска. можно было ещё прозвонить какие кондёры имеют разветвлённые дорожки и выходят на разъем, значит там "+" . и на каких сайтах много распиновок.
даже просто погуглив " TFT LCD 24 pin " можно найти похожую на вашу расниговку
db17...db10 это соответственно в вашем случае db7...db0 (просто у разных контроллерах поразному используются 18бит при переводе в 8бит). А может быть даже на распиновке не db17...d10 а очередность db0...db7
http://kupinatao.com/pages/item_detail.aspx?ItemId=yh9jr/gbDNeTPtR8HOa/Ew==&Nick=%E6%B7%B1%E5%9C%B3%E5%AE%89%E9%91%AB
неговоря ещё про другие сайты указанные выше, на которых много распиновок и докумментации на них.
Как узнать какой контроллер:
- либо погуглить похожий, посмотреть фотки.
- либо подрубить можете даже к UNO , установив в библиотеке UTFT везде 8 битность, и закомментировав отключение возможных контроллеров (оставить SSD1963, ... ибо все иниты не влезут в память UNO ), и тупо перебрать от 0 до 31 инициализаации.
- либо подключить к UNO как адафруитский шилд, к примеру 2.4"(на али и этом сайте много фоток-распиновок этих шилдов) , залить тест графики , и в монитор порте глянуть какой он выдаст ID (в основном библиотека определяет по 0 адресу)
- либо залить читалку ID в Мегу , прочитать ей. ( Самая первая читалка немного корявая но работала, здесь последняя версия, но для 16 бит http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie , в принципе для некоторых 8ми битных контроллеров годится, но чтоб для всех, надо её допиливать)
Здравствуйте!
Подскажите пожалуйста, как подключить к ардуино уно дисплей от телефона самсунг gt-e1100
В сервис мануале нашел такую схему на коннектор.
В ардуино еще новичок, ногами не пинайте:-)
Нарисуйте схемку подключения, если не трудно и какую библиотеку и скетч использовать.
Я думаю информация поможет не только мне, а и другим начинающим ардуинщикам. Дисплей очень распространенный.
Ты не пробовал запитывать подсветку? Работает? У меня чето нет. Такой же дисплей, тоже от HP M425
Здравствуйте!
Подскажите пожалуйста, как подключить к ардуино уно дисплей от телефона самсунг gt-e1100 ....
Если в инете нет информации , то почему бы не сделать её самому. Потратить время , разобраться и выложить. Поищите ещё здесь Дисплеи от сотиков http://vrtp.ru/index.php?showtopic=1120
Ты не пробовал запитывать подсветку? Работает? У меня чето нет. Такой же дисплей, тоже от HP M425
Такой же какой?! (значение уже неимеет) у дисплеев бывает светодиоды подключены не параллельно , а последовательно , тогда можно запитывать большим напряжением, с ограничительным резистором подобранным на ток 10-20 мА . Также применял преобразователи со старых тлф (сименс, самсунг,...), они сразу поддерживают нужный ток, повышая для этого напряжение. Попробуйте подключить 15-20в (к примеру от зарядки ноутбучной) через резистор 1..10ком . Замеренное падение напряжения на подсветке / 3в и будет равно количеству светодиодов.
Добрый день! у меня есть экранчик от Sony Ericsson k750i и Arduino UNO только что пришло MEGA328P-PU...
Вот данные экранчика с стороннего сайта
Sony Ericsson K750 display
R61500 - вот на него даташит если я правильно нашел ))
R61503 - это по моему даташит на экранчик от SE k530i если я не ошибаюсь если кому надо
Как мне все это хозяйство подключить запустить, подскажите пожалуйста...
slider а вы можете адаптировать программу по определения ID контроллера дисплея для ARDUINO DUE?
Под рукой есть Мега и ДУЕ. С ДУЕ было бы удобнее - там 3.3 вольта, не нужно городить делители. Можно конечно и Мегу использовать - но у меня просто нет столько резисторов одинакового номинала :( Живу в селе и в радимагазине бываю очень редко... Потому адаптация программы под ДУЕ спасла бы, но я в этом не понимаю...
При попытке прошить ДУЕ выдает ошибку: