Arduino и дисплеи от сотиков мобильных телефонов

forfrends
Offline
Зарегистрирован: 24.02.2015

Tvicks, я не "дергаюсь", и ничего против вас не имею, я ответил так, как бы сделал сам.

AVI_crak
Offline
Зарегистрирован: 04.03.2018

Пора увеличивать размер экрана.

https://www.youtube.com/watch?v=JoTnDFIqpSo

Yurik.o
Yurik.o аватар
Offline
Зарегистрирован: 20.05.2018

Ну конечно

и ценник как у среднего смартфона

 stm32f469 Discovery Kit - стоимостью 5500руб

понятное дело интересно и увлекательно, но мы здесь рассматривает почему-то дисплеи от сотиков стоимостью, в принципе, до 3к (с новья)

да и, наверное, такой Kit неинтересен, там все готовое, а мы исследователи

slider
Offline
Зарегистрирован: 17.06.2014

AVI_crak пишет:

Пора увеличивать размер экрана.

https://www.youtube.com/watch?v=JoTnDFIqpSo

не оптимально , как козе баян.

по LVDS  , hdmi   раньше что было:

http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=2#comment-176750

http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=4#comment-252673

http://arduino.ru/forum/apparatnye-voprosy/tft-35-i-arduino?page=15#comment-146097

сейчас мож что новое появилось.

Теоретически:   ардуино -> lvds дисплей ноутбука   , посредством:

-> VGA скалер ( универсальный 300руб) и библиотека vga arduino ->  
 
-> gameduino (ардуино шилд VGA такой на ALTERA) + VGA скалер ( универсальный 300руб)  ->

-> orange PI (банан pi) ->  
 (стоил раньше 600руб , общаться через UART как в NEXTION дисплеях, там хоть огромный телек по HDMI . проги искать/писать самому

но никому это нафиг не уперлось .

широкораспространенные большие дисплеи к ардуине - максимум эт 7" , берете 

- готовый модуль  480x800  ~2.5тр (раньше были за 1.2тр.) + переходник ~150р 
- или NEXTION 7"  возможностей больше и цена соотв. , от 3.5тр.

AVI_crak
Offline
Зарегистрирован: 04.03.2018

slider пишет:

сейчас мож что новое появилось.

Ну да, появилось. Практически все матрицы для нотбуков и смартфонов с начала этого года юзают энергосбережение на шине dsi. То-есть в самой матрице есть память на один полный кадр. Управление немного усложнилось, но кому сейчас легко...
 
Там можно включить физическое обновление экрана 50-100гц, и просто менять изображение когда требуется. Менять нужно на полной скорости. + Дополнительные аппаратные фишки интерполяции разрешения изображения, гамма коррекции, и форсажа переключения и так далее. Просто чипы для жк экранов делают на тех-же фабриках что и всё остальное кремневое. С переходом на новый техпроцесс - стало доступным впихнуть большее количество транзисторов за те-же деньги.
 
Можно считать оптимальными для использования дисплеи - которые уже не считаются топовыми, но максимально свежими. Это означает минимальный спрос со строны владельцев промышленных решений где эти дисплеи стоят, и масксимальное количество данных дисплеев на складах поставщиков. Вот когда поставщикам больше некому их продавать -тогда цена на них стремительно падает. Время топовости современных электронных гаджетов - пол года!!!
 
Использование заведомо устаревших технологий создаёт свой уникальный рынок покупки/предложения. Тут уже себестоимость и доступность не влияет на ценник - только спрос. В таких условиях ценник растёт как на дрожжах. 
croc19
Offline
Зарегистрирован: 17.02.2017

Ребята, просто прочитайте название  темы Слайдера.

Хотя желающие могут подключить полноразмерную матрицу от телевизора к ардуино 

и смотреть кино в формате кадр в пять секунд.

tongbajiel
Offline
Зарегистрирован: 14.06.2017
Hello all.
 
I tried using blackberry 8520 lcd. It uses 8 bit parallel connection and has 240x320 resolution.
 
Until now I still can not guess, what chip type is used for this lcd.
 
Here are the results of the read ID.
I just write a register that contains the values ​​here.
01v5.3 read all register + read ID + TFT LCD test
02for 8bit TFT LCD UNO shield pinout Adafruit D89234567
03on board Arduino UNO & Arduino MEGA
04TFT size set is 320x240
05include LCD drivers: ILI9325 ILI9328 HX8347G HX8347D * HX8357D ILI9341
06v5.2 Reading all registers + ID tft lcd B0h = 0x03 (FF), = 0x04. from Slider
07 arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov
08  
09reg p1 p2 p3 p4 p5 p6 p7 p8 
10....
1104 = 29 29 10 F0 F0 F0 F0 F0 *****
12...
1309 = 0
140A = 08 08 08 08 08 08 08 08 
150B = 0
160C = 07 07 07 07 07 07 07 07 
170D = 0
180E = 0
190F = 0
20....
212E = 22 04 13 9B 04 13 9B 04 
22...
23DA = 29 29 29 29 29 29 29 29 *****
24DB = 10 10 10 10 10 10 10 10 *****
25DC = F0 F0 F0 F0 F0 F0 F0 F0 *****
26...

Here the schematic from original doc

Here the pic show with ili9341 minimal init.

** Update, with mcufriend library and ili9342 init, lcd show picture correctly, but not for the color. its only on yellow color majority.

Tanks for any help from all forum member

 

diger67
Offline
Зарегистрирован: 25.07.2015

Tvicks , вы запускаете TFT с stm32 используя народный ногодрыг или c использованием FSMC?

diger67
Offline
Зарегистрирован: 25.07.2015

tongbajiel , try to fill the screen with blue and red. If, in this case, instead of blue is red and vice versa, you need to change the order of colors in the initialization. Register 36H.

tongbajiel
Offline
Зарегистрирован: 14.06.2017

diger67 пишет:

tongbajiel , try to fill the screen with blue and red. If, in this case, instead of blue is red and vice versa, you need to change the order of colors in the initialization. Register 36H.

Tanks for reply.

Because until now this lcd is un identified the ID for chip, I dont know what the correct register and value that must be changed. I just play with default init value from ILI9342 reg.
with mcufriend graphics_kbv sample ino and 0x9342 id, display works correctly for all function on the sketch, but not for the color looks like on this photo show.

Frogfot
Offline
Зарегистрирован: 17.06.2018

Народ, что скажете насчёт дисплея от Lenovo 328 - 4.5" 858x480, стоит примерно 8 у.е., реально ли его подключить? Какой там может быть контроллер?

diger67
Offline
Зарегистрирован: 25.07.2015
01void MCUFRIEND_kbv::setRotation(uint8_t r)
02{
03    uint16_t GS, SS, ORG, REV = _lcd_rev;
04    uint8_t val, d[3];
05    rotation = r & 3;           // just perform the operation ourselves on the protected variables
06    _width = (rotation & 1) ? HEIGHT : WIDTH;
07    _height = (rotation & 1) ? WIDTH : HEIGHT;
08    switch (rotation) {
09    case 0:                    //PORTRAIT:
10        val = 0x48;             //MY=0, MX=1, MV=0, ML=0, BGR=1 invert BGR=0
11        break;
12    case 1:                    //LANDSCAPE: 90 degrees
13        val = 0x28;             //MY=0, MX=0, MV=1, ML=0, BGR=1 invert BGR=0
14        break;
15    case 2:                    //PORTRAIT_REV: 180 degrees
16        val = 0x98;             //MY=1, MX=0, MV=0, ML=1, BGR=1 invert BGR=0
17        break;
18    case 3:                    //LANDSCAPE_REV: 270 degrees
19        val = 0xF8;             //MY=1, MX=1, MV=1, ML=1, BGR=1 invert BGR=0
20        break;
21    }

Here is this register, look in the screen rotation function for the value written to it. It is necessary to invert the state of bit D3. If 0x48 (01001000) is written, then after the change it will be 0x40 (01000000).

Yurik.o
Yurik.o аватар
Offline
Зарегистрирован: 20.05.2018

продолжение темы про дисплей от Galaxy S3 I9300 (китай) на ILI9327 http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=35#comment-369097

Вот взял я и заказал анализатор на 8 каналов

да взял и снял дамп инициализации (инит) дисплея, установив его обратно в телефон. 

лог: https://cloud.mail.ru/public/MGGN/7iGVNg6KP

Ну и-и-и

ничего не получилось, даже стало хуже.

P.S. данные передавались на частоте 2Mhz

 

 

Logik
Offline
Зарегистрирован: 05.08.2014

Снова дамп снимите, теперь уже на ардуине. Сравните два дампа, различия смотрите.

Yurik.o
Yurik.o аватар
Offline
Зарегистрирован: 20.05.2018

Upd
Для таких целей надо было брать анализатор на 16 каналов, чтобы cs/rs/wr/rd сигналы с привязкой к данным видеть, т.к. в начале есть непонятный кусок данных в даташит не включенных кодов.
Я 3 или 4 раза дамп на телефоне снимал чтобы удостовериться в точности данных при включении.
А на ардуинке попробую как будет время
Хочу еще попробовать снять дамп на телефоне с сигналами rd/wr вот только каналов маловато, но сравнивать-то есть с чем.
К сожалению фоток процесса нет ни на телефоне ни с ардуино т.к. занимался этим в 3 часа ночи (подозреваю что и многие из нас так делают это), но там ничего интересного кроме запуска на ардуино там экран был в серых тонах, что интересно а изображение как попало как на неправильном ините

slider
Offline
Зарегистрирован: 17.06.2014

Yurik.o, как вы делали ? тож есть такой анализатор , ( года 2 назад взял, так и не припекает его использовать)  как понял из инета , надо на него ставить старую микросхему памяти , и после заливать в нее прошивку, тогда все будет норм он определятся, заливаться в него программа и работать.
 по идее при 8 битах , за первый раз считать  cs/rs/wr/rd(rst)  D0-D3 , за второй раз cs/rs/wr/rd(rst)  D4-D7  . Потом и совместить их по cs/rs/wr/rd(rst)  и получить D0-D7 . 
 мож просто с диспом чтот не так ? иль ардуинкой?.  попробуйте все-же  другую ардуинку ,  переведите ее на 3.3в и подключите дисп напрямую (мож где импульсы заваливаются через преобразователе уровней  . Или соберите резервный вариант на второй ардуинке и несколько модулей преобразователей уровней   4х или 8ми канальные.
 Попробуйте теже условия питания как в телефоне (сколько там 2.8 или 3.3в? , и на втором питающем пине тож посмотрите )

// судя по вашим фоткам что кажет дисп , кажется что питание плохое , продублируйте и укоротите провода - и + , поставьте кондеры танталы на сам шлейф .  Промониторьте питание ( возможно после запуска инита , оно просаживается)

 

 

slider
Offline
Зарегистрирован: 17.06.2014

/// дамп ардуинкой сомневаюсь , она значительно медленная по сравнению с процессором телефона.

slider
Offline
Зарегистрирован: 17.06.2014

.

Yurik.o
Yurik.o аватар
Offline
Зарегистрирован: 20.05.2018

ну так-то да...

в телефоне частота по данным 2 МГц, а на ардуинке 131кГц

Yurik.o
Yurik.o аватар
Offline
Зарегистрирован: 20.05.2018

С анализатором сначала ткнулся как было - не поехало с последними версиями программы. Нашел 24С02, запаял, прошил. Все равно дальше 1.2.2 не работает, а мне пока и не надо, потом покопаюсь - времени нету.

Собственно из всех управляющих сигналов нас интересовать могут только rd/wr/rs а CS у меня намертво на массе, в принципе и RD можно на 3V3 заткнуть, сейчас, когда контроллер известен RD не нужен, однако в телефоне первой командой было считывание ID, что у меня на картинке и видно (см. в сообщении #1813 - в облаке). попробую когда-нибудь

по анализатору импульсы вроде нормальные, распознаются все правильно

питание беру с ардуинки 3V3 из одной точки на плате преобразователя на все выводы VCC и GND, кондеры есть на плате преобразователя, чтобы мониторить надо ослика вытаскивать, а он далеко. В принципе скоро приедет DSO150, вот и попробую и испытаю.

есть еще один вариант - платка STM32F103C8T6 и есть к ней примеры для ILI9327 - тож ведь времени маловато, а там только для начала - ого-го заморочек. Я пока только с телефона на эту тему почитываю. Но в эту платку уже залил пример с осликом простейшим (и он заработал!), что и сподвигло на DSO150.

если надо могу скинуть проект сали

 

diger67
Offline
Зарегистрирован: 25.07.2015

Не совсем понимаю проблемы. Рассматривая TFT разрешением до 480х320 чтение ID отличается только именем регистра в котором хранится данная информация, за исключением HX8ххх контроллеров, процедура считывания сложнее. Дальше конечно есть вопросы связанные с разрядностью данных(два байта). Встречался с китайским разночтением у R61581, связанным с регистром ориентации и соответствием бита отвечающим за размещение RGB-BGR. В остальном как правило существующие инициализации вполне достаточны для работы. Что касается применения STM32, то это другой уровень, особенно если исспользовать FMC(FSMC), даже SPI вместе с DMA и внешней памятью или SRAM, или SDRAM. И желательно без IDE Arduino.

Yurik.o
Yurik.o аватар
Offline
Зарегистрирован: 20.05.2018

Ну, в общем-то победил я его.

как только подал на дисплей питание как в телефоне (1V8 и 2V8) все нормально заработало, 

пробовал подавать одинаковое напряжение (2V8, даже 2V5!) ни в какую не работал.

пока запускал нашел 3 разных инита + сделал по дампу свой инит - работают все, немного различаются цвета и скорость

оценив скорость работы с дисплеем ардуины и СТМ32 начинаю изучать последнюю, обычная (103С8Т6) стОит также как и ардуина, но скорость впечатляет, а ежели взять 405VE, 407VE (стоимостью 600руб) у них FSMC и флеш 512кб, и также можно подключить практически любой дисплей - 8/9/16/17/18 бит нужен только инит.

И желательно без IDE Arduino. 

Vovan_SPB
Offline
Зарегистрирован: 30.07.2018

Дисплей от раскладушки Fly. Может кому пригодится информация...

 

Подключаем 

Vovan_SPB
Offline
Зарегистрирован: 30.07.2018

Инит от ILI9225

forfrends
Offline
Зарегистрирован: 24.02.2015

Напишите полную марку / модель телефона, размеры дисплея и надписи на дисплее и распиновку в текстовом варианте для того чтобы Гугл мог проиндексировать и поиск потом находил вашу информацию.

Tvicks
Offline
Зарегистрирован: 11.05.2017

Добрый день. Ребята не подскажете распиновку или кто сталкивался с такими дисплеями TXDT350DH-129 от Explay N1 3,5 дюйма 39 pin, CXD350-27 v1.1 3,5 дюйма 40pin от Goldstar SP35 (OYSTERS Arctic 350).

croc19
Offline
Зарегистрирован: 17.02.2017

Посмотри пост 118.

Tvicks
Offline
Зарегистрирован: 11.05.2017

Спасибо, как я просмотрел Explay N1. В мастерской предлагают дисплей от ZTE-skate FP-TPV960 стоит брать? Схемы на него не нашел.

 

Tvicks
Offline
Зарегистрирован: 11.05.2017

Вот еще принесли эклюзивный дисплей от BQ bqs-3503 bombay 3.5" 29pin. Тоже не смог по нему что то найти. 1 - LED +3v, 2 LED-, 3 GND, 29 GND.  С парнишкой списался у него полудохлый BQ bqs-3503 он померил ,питание есть на 4,21,22,23,24,26,27 - 2,8v. Остальные пины пока не понятно, что куда идет. Может кто сталкивался с таким дисплеем.

 

croc19
Offline
Зарегистрирован: 17.02.2017

Сделай крупное, хорошее фото шлейфа с двух сторон. Чтоб дорожки было хорошо видно.

Tvicks
Offline
Зарегистрирован: 11.05.2017

Ссылка на фото покрупнее : https://cloud.mail.ru/public/JETz/XyxhSvZvN

croc19
Offline
Зарегистрирован: 17.02.2017

1 - четыре жилы, средние из шести. RD, WR, DC, CS  или наоборот.

2 - D0-D15 слева направо.

3 - RESET

+3.3B  жирные дорожки.

На фотке со стороны надписи очень плохо видно.

Tvicks
Offline
Зарегистрирован: 11.05.2017

Спасибо попробую.

Lotus6202
Lotus6202 аватар
Offline
Зарегистрирован: 12.01.2018

Ребята прошу помощи...  Есть дисплей от мелкого самсунга  http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=31#comment-354080    ...   запущен на библиотеках  Adafruit_GFX.h     Adafruit_TFTLCD.h    подключение  стандартное..  Вопрос   .  Как мне освободить  цифровой пин 2 на ардуине ???    или перекинуть подключение дисплея на другие пины... задалбаля уже библиотеки мучать не чего не найду  с изменениями...  НУЖЕН именно Пин 2............

forfrends
Offline
Зарегистрирован: 24.02.2015

А почему именно пин номер 2? почему не какой-то другой?

 

Lotus6202
Lotus6202 аватар
Offline
Зарегистрирован: 12.01.2018

Собираю прибор.. На базе ардуино  .. С функциями  .. дальномер , пирометр , тахометр , датчик газа. Так вот  тахометр считает обороты только на пине 2.  перебрал множество скетчей все на нём . может тактирование самой дуньки на пине 2 настроено... вот и пришёл к такому варианту .. освободить от диспа пин 2.

forfrends
Offline
Зарегистрирован: 24.02.2015

На втором пине висит прерывание.

Скорость прорисовки на TFT дисплее слишком низкая. Занимает много процессорного времени. Для вашего проекта лучше возьмите какой-то по-проще дисплей. На пример 128*64.

Lotus6202
Lotus6202 аватар
Offline
Зарегистрирован: 12.01.2018

А варианты ещё есть.. Или всё так печально...  А почему в дисплеях от Open-Smart  пин 2 в ардуине не задействован..???? Значит возможно освободить его .. в библиотеке толь где....?????????

Shuring
Offline
Зарегистрирован: 16.08.2018

Lotus6202 пишет:
... тахометр считает обороты только на пине 2

Тахометру нужно внешнее прерывание. На Уно это пины 2 и 3. Можно пересадить его на пин 3, если он свободен. Но потребуется изменение кода.

Shuring
Offline
Зарегистрирован: 16.08.2018

Lotus6202 пишет:
... тахометр считает обороты только на пине 2

Тахометру нужно внешнее прерывание. На Уно это пины 2 и 3. Можно пересадить его на пин 3, если он свободен. Но потребуется изменение кода.

Shuring
Offline
Зарегистрирован: 16.08.2018

Lotus6202 пишет:
... тахометр считает обороты только на пине 2

Тахометру нужно внешнее прерывание. На Уно это пины 2 и 3. Можно пересадить его на пин 3, если он свободен. Но потребуется изменение кода.

Lotus6202
Lotus6202 аватар
Offline
Зарегистрирован: 12.01.2018

В том и дело что свободные только 10   11   12   13    A6  A7 //    а код тахометра требует только пин 2...

croc19
Offline
Зарегистрирован: 17.02.2017

На 168 (328) меге вроде на каждом пине есть внешнее прерывание.

Shuring
Offline
Зарегистрирован: 16.08.2018

Код тахометра требует не пин, а внешнее прерывание. И его номер можно изменить в коде, но выбор невелик. Если освободите пин 3, можно пересадить тахометр на него. Если у вас Мега, выбор больше.

croc19
Offline
Зарегистрирован: 17.02.2017

Не видел кода тахометра, но раз пин2, то скорее всего используется INT0. Соответственно код придется менять

на прерывание от другой ножки. Но будет уже не INT, а PCINT. Прерывание победнее. Подумать чуть придется.

Или копать библиотеку Адафруит.

http://arduino.ru/forum/programmirovanie/dopolnitelnye-vneshnie-preryvan... про прерывания, кому интересно.

slider
Offline
Зарегистрирован: 17.06.2014

Lotus6202 пишет:

Собираю прибор.. На базе ардуино  .. С функциями  .. дальномер , пирометр , тахометр , датчик газа. Так вот  тахометр считает обороты только на пине 2.  перебрал множество скетчей все на нём . может тактирование самой дуньки на пине 2 настроено... вот и пришёл к такому варианту .. освободить от диспа пин 2.

но проблем , что угодно и куда угодно.

это реально, можете полазить в либах, и увидите где что как сделать , буквально за пару часиков , ну максимум полдня.

в UTFT используется D0-D7 

adafruit D9 D8 D2-D7  (распихивается по 2м портам), для Меги там конкретно так расхивается по 3м портам.

вам же проще всего будет вместо D2 использовать  D10,   
покопайтесь в либе  ( а именно в файле pin_magic.h  ), найдете закономерность где все распихивается (для вашего железа уно , мини, мега или чего еще). И где объявляются эти пины на выход.

ежели что не осилите , пишите где именно непонятки.

// как еще замечал ранее , можно и без CS , RS , RD обходиться

///// Open-smart не смотрел. разницы нет , распихать можно на любые пины , просто при распихивании тратится процессорное такты , что немного замедляет скорость вывода графики.

//////// есть вариант для не ищущих легких путей , это свободным пином разрешать подавать посредством транзистора , импульсы на пин2 . Пин 2 на дисп через резистор.  Когда нужно чтото нарисовать , настраиваете пин на выход , рисуете , настраиваете на вход (+подтяжку если требуется) и резрешаете прерывание(или делаете измерение - либа должна сама включить прерыв, измерить и выкл. его) , ну а потом снова ..... настроить на выход , нарисовать, настроить на вход.

Lotus6202
Lotus6202 аватар
Offline
Зарегистрирован: 12.01.2018

ОК... Попорадку ...  Делпется всё на про мини.   

код чсто тахометра просто перебит с диспа 1602 на TFT 

 

slonspb
Offline
Зарегистрирован: 22.08.2018

Приветствую, спасибо за информацию, которую вы тут выкладываете!

Озадачился LCD TFT индикатором для домашнего баловства, на алиэкспрессе от 3" всё дорогое, да ещё часто и убогое, типа TN. Вопрос, если на него можно сформулировать ответ: каким образом отобрать по описанию и картинке тот индикатор, который с большой вероятностью можно запрограммировать? [ветку читал]

Конкретнее. В сириуст есть дикая куча всяких разных индикаторов. Как из них выбрать наименее проблемный с подключением? Паять буду к STM32F4(могу к H7), драйвер напишу сам, там несложно, если хотя бы примерно понимать какой контроллер, запаять смогу.

Думаю вопрос интересен многим, хотелось бы иметь выжимку из ветки. Спасибо.

Shuring
Offline
Зарегистрирован: 16.08.2018

Lotus6202 пишет:
ОК... Попорадку ...  Делпется всё на про мини.   

код чсто тахометра просто перебит с диспа 1602 на TFT

В вашем коде никто не занимает пин 2, только тахометр через INT0.

forfrends
Offline
Зарегистрирован: 24.02.2015

Shuring, вы противоречите сами себе: "никто не занимает пин 2, только тахометр через INT0"

Пин 2 занят прерыванием.