-> 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тр.
Ну да, появилось. Практически все матрицы для нотбуков и смартфонов с начала этого года юзают энергосбережение на шине dsi. То-есть в самой матрице есть память на один полный кадр. Управление немного усложнилось, но кому сейчас легко...
Там можно включить физическое обновление экрана 50-100гц, и просто менять изображение когда требуется. Менять нужно на полной скорости. + Дополнительные аппаратные фишки интерполяции разрешения изображения, гамма коррекции, и форсажа переключения и так далее. Просто чипы для жк экранов делают на тех-же фабриках что и всё остальное кремневое. С переходом на новый техпроцесс - стало доступным впихнуть большее количество транзисторов за те-же деньги.
Можно считать оптимальными для использования дисплеи - которые уже не считаются топовыми, но максимально свежими. Это означает минимальный спрос со строны владельцев промышленных решений где эти дисплеи стоят, и масксимальное количество данных дисплеев на складах поставщиков. Вот когда поставщикам больше некому их продавать -тогда цена на них стремительно падает. Время топовости современных электронных гаджетов - пол года!!!
Использование заведомо устаревших технологий создаёт свой уникальный рынок покупки/предложения. Тут уже себестоимость и доступность не влияет на ценник - только спрос. В таких условиях ценник растёт как на дрожжах.
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 , 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.
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
case0: //PORTRAIT:
10
val = 0x48; //MY=0, MX=1, MV=0, ML=0, BGR=1 invert BGR=0
11
break;
12
case1: //LANDSCAPE: 90 degrees
13
val = 0x28; //MY=0, MX=0, MV=1, ML=0, BGR=1 invert BGR=0
14
break;
15
case2: //PORTRAIT_REV: 180 degrees
16
val = 0x98; //MY=1, MX=0, MV=0, ML=1, BGR=1 invert BGR=0
17
break;
18
case3: //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).
Upd
Для таких целей надо было брать анализатор на 16 каналов, чтобы cs/rs/wr/rd сигналы с привязкой к данным видеть, т.к. в начале есть непонятный кусок данных в даташит не включенных кодов.
Я 3 или 4 раза дамп на телефоне снимал чтобы удостовериться в точности данных при включении.
А на ардуинке попробую как будет время
Хочу еще попробовать снять дамп на телефоне с сигналами rd/wr вот только каналов маловато, но сравнивать-то есть с чем.
К сожалению фоток процесса нет ни на телефоне ни с ардуино т.к. занимался этим в 3 часа ночи (подозреваю что и многие из нас так делают это), но там ничего интересного кроме запуска на ардуино там экран был в серых тонах, что интересно а изображение как попало как на неправильном ините
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в? , и на втором питающем пине тож посмотрите )
// судя по вашим фоткам что кажет дисп , кажется что питание плохое , продублируйте и укоротите провода - и + , поставьте кондеры танталы на сам шлейф . Промониторьте питание ( возможно после запуска инита , оно просаживается)
С анализатором сначала ткнулся как было - не поехало с последними версиями программы. Нашел 24С02, запаял, прошил. Все равно дальше 1.2.2 не работает, а мне пока и не надо, потом покопаюсь - времени нету.
Собственно из всех управляющих сигналов нас интересовать могут только rd/wr/rs а CS у меня намертво на массе, в принципе и RD можно на 3V3 заткнуть, сейчас, когда контроллер известен RD не нужен, однако в телефоне первой командой было считывание ID, что у меня на картинке и видно (см. в сообщении #1813 - в облаке). попробую когда-нибудь
по анализатору импульсы вроде нормальные, распознаются все правильно
питание беру с ардуинки 3V3 из одной точки на плате преобразователя на все выводы VCC и GND, кондеры есть на плате преобразователя, чтобы мониторить надо ослика вытаскивать, а он далеко. В принципе скоро приедет DSO150, вот и попробую и испытаю.
есть еще один вариант - платка STM32F103C8T6 и есть к ней примеры для ILI9327 - тож ведь времени маловато, а там только для начала - ого-го заморочек. Я пока только с телефона на эту тему почитываю. Но в эту платку уже залил пример с осликом простейшим (и он заработал!), что и сподвигло на DSO150.
Не совсем понимаю проблемы. Рассматривая TFT разрешением до 480х320 чтение ID отличается только именем регистра в котором хранится данная информация, за исключением HX8ххх контроллеров, процедура считывания сложнее. Дальше конечно есть вопросы связанные с разрядностью данных(два байта). Встречался с китайским разночтением у R61581, связанным с регистром ориентации и соответствием бита отвечающим за размещение RGB-BGR. В остальном как правило существующие инициализации вполне достаточны для работы. Что касается применения STM32, то это другой уровень, особенно если исспользовать FMC(FSMC), даже SPI вместе с DMA и внешней памятью или SRAM, или SDRAM. И желательно без IDE Arduino.
как только подал на дисплей питание как в телефоне (1V8 и 2V8) все нормально заработало,
пробовал подавать одинаковое напряжение (2V8, даже 2V5!) ни в какую не работал.
пока запускал нашел 3 разных инита + сделал по дампу свой инит - работают все, немного различаются цвета и скорость
оценив скорость работы с дисплеем ардуины и СТМ32 начинаю изучать последнюю, обычная (103С8Т6) стОит также как и ардуина, но скорость впечатляет, а ежели взять 405VE, 407VE (стоимостью 600руб) у них FSMC и флеш 512кб, и также можно подключить практически любой дисплей - 8/9/16/17/18 бит нужен только инит.
Напишите полную марку / модель телефона, размеры дисплея и надписи на дисплее и распиновку в текстовом варианте для того чтобы Гугл мог проиндексировать и поиск потом находил вашу информацию.
Добрый день. Ребята не подскажете распиновку или кто сталкивался с такими дисплеями TXDT350DH-129 от Explay N1 3,5 дюйма 39 pin, CXD350-27 v1.1 3,5 дюйма 40pin от Goldstar SP35 (OYSTERS Arctic 350).
Вот еще принесли эклюзивный дисплей от 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. Остальные пины пока не понятно, что куда идет. Может кто сталкивался с таким дисплеем.
Ребята прошу помощи... Есть дисплей от мелкого самсунга 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............
Собираю прибор.. На базе ардуино .. С функциями .. дальномер , пирометр , тахометр , датчик газа. Так вот тахометр считает обороты только на пине 2. перебрал множество скетчей все на нём . может тактирование самой дуньки на пине 2 настроено... вот и пришёл к такому варианту .. освободить от диспа пин 2.
Скорость прорисовки на TFT дисплее слишком низкая. Занимает много процессорного времени. Для вашего проекта лучше возьмите какой-то по-проще дисплей. На пример 128*64.
А варианты ещё есть.. Или всё так печально... А почему в дисплеях от Open-Smart пин 2 в ардуине не задействован..???? Значит возможно освободить его .. в библиотеке толь где....?????????
Код тахометра требует не пин, а внешнее прерывание. И его номер можно изменить в коде, но выбор невелик. Если освободите пин 3, можно пересадить тахометр на него. Если у вас Мега, выбор больше.
Собираю прибор.. На базе ардуино .. С функциями .. дальномер , пирометр , тахометр , датчик газа. Так вот тахометр считает обороты только на пине 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 на дисп через резистор. Когда нужно чтото нарисовать , настраиваете пин на выход , рисуете , настраиваете на вход (+подтяжку если требуется) и резрешаете прерывание(или делаете измерение - либа должна сама включить прерыв, измерить и выкл. его) , ну а потом снова ..... настроить на выход , нарисовать, настроить на вход.
Приветствую, спасибо за информацию, которую вы тут выкладываете!
Озадачился LCD TFT индикатором для домашнего баловства, на алиэкспрессе от 3" всё дорогое, да ещё часто и убогое, типа TN. Вопрос, если на него можно сформулировать ответ: каким образом отобрать по описанию и картинке тот индикатор, который с большой вероятностью можно запрограммировать? [ветку читал]
Конкретнее. В сириуст есть дикая куча всяких разных индикаторов. Как из них выбрать наименее проблемный с подключением? Паять буду к STM32F4(могу к H7), драйвер напишу сам, там несложно, если хотя бы примерно понимать какой контроллер, запаять смогу.
Думаю вопрос интересен многим, хотелось бы иметь выжимку из ветки. Спасибо.
Tvicks, я не "дергаюсь", и ничего против вас не имею, я ответил так, как бы сделал сам.
Пора увеличивать размер экрана.
https://www.youtube.com/watch?v=JoTnDFIqpSo
Ну конечно
и ценник как у среднего смартфона
stm32f469 Discovery Kit - стоимостью 5500руб
понятное дело интересно и увлекательно, но мы здесь рассматривает почему-то дисплеи от сотиков стоимостью, в принципе, до 3к (с новья)
да и, наверное, такой Kit неинтересен, там все готовое, а мы исследователи
Пора увеличивать размер экрана.
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тр.
сейчас мож что новое появилось.
Ребята, просто прочитайте название темы Слайдера.
Хотя желающие могут подключить полноразмерную матрицу от телевизора к ардуино
и смотреть кино в формате кадр в пять секунд.
01
v5.3 read all register + read ID + TFT LCD test
02
for
8bit TFT LCD UNO shield pinout Adafruit D89234567
03
on board Arduino UNO & Arduino MEGA
04
TFT size
set
is
320x240
05
include LCD drivers: ILI9325 ILI9328 HX8347G HX8347D * HX8357D ILI9341
06
v5.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
09
reg p1 p2 p3 p4 p5 p6 p7 p8
10
....
11
04 = 29 29 10 F0 F0 F0 F0 F0 *****
12
...
13
09 = 0
14
0A = 08 08 08 08 08 08 08 08
15
0B = 0
16
0C = 07 07 07 07 07 07 07 07
17
0D = 0
18
0E = 0
19
0F = 0
20
....
21
2E = 22 04 13 9B 04 13 9B 04
22
...
23
DA = 29 29 29 29 29 29 29 29 *****
24
DB = 10 10 10 10 10 10 10 10 *****
25
DC = 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
Tvicks , вы запускаете TFT с stm32 используя народный ногодрыг или c использованием FSMC?
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 , 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.
Народ, что скажете насчёт дисплея от Lenovo 328 - 4.5" 858x480, стоит примерно 8 у.е., реально ли его подключить? Какой там может быть контроллер?
01
void
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).
продолжение темы про дисплей от Galaxy S3 I9300 (китай) на ILI9327 http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=35#comment-369097
Вот взял я и заказал анализатор на 8 каналов
да взял и снял дамп инициализации (инит) дисплея, установив его обратно в телефон.
001
//case ILI9327_8: //проба_1 дамп с телефона i9300 (китай)
002
LCD_Write_COM(0xEF);
003
delay(100);
004
LCD_Write_COM(0x11);
//Exit Sleep
005
delay(10);
006
///////////////////
007
LCD_Write_COM(0xF3);
// непонятный блок!!!
008
LCD_Write_DATA(0x08);
// команды поставлены наугад
009
LCD_Write_DATA(0x20);
010
LCD_Write_DATA(0x20);
011
LCD_Write_DATA(0x08);
012
LCD_Write_COM(0xE7);
013
LCD_Write_DATA(0x00);
014
LCD_Write_DATA(0x60);
015
LCD_Write_DATA(0x00);
016
///////////////////
017
018
LCD_Write_COM(0xD1);
019
LCD_Write_DATA(0x00);
020
LCD_Write_DATA(0x7B);
021
LCD_Write_DATA(0x17);
022
LCD_Write_COM(0xD0);
023
LCD_Write_DATA(0x07);
024
LCD_Write_DATA(0x02);
025
LCD_Write_DATA(0x85);
026
LCD_Write_COM(0x36);
027
LCD_Write_DATA(0x48);
028
LCD_Write_COM(0x3A);
029
LCD_Write_DATA(0x05);
030
LCD_Write_COM(0xC1);
031
LCD_Write_DATA(0x10);
032
LCD_Write_DATA(0x1A);
033
LCD_Write_DATA(0x02);
034
LCD_Write_DATA(0x02);
035
LCD_Write_COM(0xC0);
//Set Default Gamma
036
LCD_Write_DATA(0x00);
037
LCD_Write_DATA(0x31);
038
LCD_Write_DATA(0x00);
039
LCD_Write_DATA(0x00);
040
LCD_Write_DATA(0x01);
041
LCD_Write_DATA(0x02);
042
LCD_Write_COM(0xC4);
043
LCD_Write_DATA(0x00);
044
LCD_Write_COM(0xC5);
045
LCD_Write_DATA(0x0C);
046
LCD_Write_COM(0xD2);
//power setting
047
LCD_Write_DATA(0x01);
048
LCD_Write_DATA(0x22);
049
LCD_Write_COM(0xC8);
//Set Gamma
050
LCD_Write_DATA(0x04);
051
LCD_Write_DATA(0x67);
052
LCD_Write_DATA(0x35);
053
LCD_Write_DATA(0x04);
054
LCD_Write_DATA(0x08);
055
LCD_Write_DATA(0x06);
056
LCD_Write_DATA(0x24);
057
LCD_Write_DATA(0x01);
058
LCD_Write_DATA(0x37);
059
LCD_Write_DATA(0x40);
060
LCD_Write_DATA(0x03);
061
LCD_Write_DATA(0x10);
062
LCD_Write_DATA(0x08);
063
LCD_Write_DATA(0x80);
064
LCD_Write_DATA(0x00);
065
066
/*LCD_Write_DATA(0x57); //1 // оригинал из библиотеки
067
LCD_Write_DATA(0x34); //2
068
LCD_Write_DATA(0x0F); //3
069
LCD_Write_DATA(0x02); //4
070
LCD_Write_DATA(0x34); //5
071
LCD_Write_DATA(0x02); //6
072
LCD_Write_DATA(0x77); //7
073
LCD_Write_DATA(0x02); //8
074
LCD_Write_DATA(0x0F); //9
075
LCD_Write_DATA(0x08); //10
076
LCD_Write_DATA(0x80); //11
077
LCD_Write_DATA(0x3A); //12
078
LCD_Write_DATA(0x55); //13
079
LCD_Write_DATA(0x29); //14
080
LCD_Write_DATA(0x2A); //15
081
*/
082
LCD_Write_COM(0xEF);
083
delay(100);
084
LCD_Write_COM(0x2B);
085
LCD_Write_DATA(0x00);
086
LCD_Write_DATA(0x00);
087
LCD_Write_DATA(0x01);
088
LCD_Write_DATA(0x8F);
089
LCD_Write_COM(0x2C);
//display on
090
delay(10);
091
LCD_Write_COM(0x2A);
092
LCD_Write_DATA(0x00);
093
LCD_Write_DATA(0x00);
094
LCD_Write_DATA(0x00);
095
LCD_Write_DATA(0xeF);
096
LCD_Write_COM(0x2C);
//display on
097
LCD_Write_COM(0x29);
//display on
098
///////////////
099
LCD_Write_COM(0x2B);
100
LCD_Write_DATA(0x00);
101
LCD_Write_DATA(0x00);
102
LCD_Write_DATA(0x01);
103
LCD_Write_DATA(0x8F);
104
LCD_Write_COM(0x2C);
//display on
105
delay(10);
106
LCD_Write_COM(0x2A);
107
LCD_Write_DATA(0x00);
108
LCD_Write_DATA(0x00);
109
LCD_Write_DATA(0x00);
110
LCD_Write_DATA(0xeF);
111
LCD_Write_COM(0x2C);
//display on
112
LCD_Write_COM(0x29);
//display on
113
////////////////
114
LCD_Write_COM(0x2B);
115
LCD_Write_DATA(0x00);
116
LCD_Write_DATA(0x00);
117
LCD_Write_DATA(0x01);
118
LCD_Write_DATA(0x8F);
119
LCD_Write_COM(0x2C);
//display on
120
delay(10);
121
LCD_Write_COM(0x2A);
122
LCD_Write_DATA(0x00);
123
LCD_Write_DATA(0x00);
124
LCD_Write_DATA(0x00);
125
LCD_Write_DATA(0xeF);
126
LCD_Write_COM(0x2C);
//display on
127
LCD_Write_COM(0x29);
//display on
128
129
// break;
лог: https://cloud.mail.ru/public/MGGN/7iGVNg6KP
Ну и-и-и
ничего не получилось, даже стало хуже.
P.S. данные передавались на частоте 2Mhz
Снова дамп снимите, теперь уже на ардуине. Сравните два дампа, различия смотрите.
Upd
Для таких целей надо было брать анализатор на 16 каналов, чтобы cs/rs/wr/rd сигналы с привязкой к данным видеть, т.к. в начале есть непонятный кусок данных в даташит не включенных кодов.
Я 3 или 4 раза дамп на телефоне снимал чтобы удостовериться в точности данных при включении.
А на ардуинке попробую как будет время
Хочу еще попробовать снять дамп на телефоне с сигналами rd/wr вот только каналов маловато, но сравнивать-то есть с чем.
К сожалению фоток процесса нет ни на телефоне ни с ардуино т.к. занимался этим в 3 часа ночи (подозреваю что и многие из нас так делают это), но там ничего интересного кроме запуска на ардуино там экран был в серых тонах, что интересно а изображение как попало как на неправильном ините
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в? , и на втором питающем пине тож посмотрите )
// судя по вашим фоткам что кажет дисп , кажется что питание плохое , продублируйте и укоротите провода - и + , поставьте кондеры танталы на сам шлейф . Промониторьте питание ( возможно после запуска инита , оно просаживается)
/// дамп ардуинкой сомневаюсь , она значительно медленная по сравнению с процессором телефона.
.
ну так-то да...
в телефоне частота по данным 2 МГц, а на ардуинке 131кГц
С анализатором сначала ткнулся как было - не поехало с последними версиями программы. Нашел 24С02, запаял, прошил. Все равно дальше 1.2.2 не работает, а мне пока и не надо, потом покопаюсь - времени нету.
Собственно из всех управляющих сигналов нас интересовать могут только rd/wr/rs а CS у меня намертво на массе, в принципе и RD можно на 3V3 заткнуть, сейчас, когда контроллер известен RD не нужен, однако в телефоне первой командой было считывание ID, что у меня на картинке и видно (см. в сообщении #1813 - в облаке). попробую когда-нибудь
по анализатору импульсы вроде нормальные, распознаются все правильно
питание беру с ардуинки 3V3 из одной точки на плате преобразователя на все выводы VCC и GND, кондеры есть на плате преобразователя, чтобы мониторить надо ослика вытаскивать, а он далеко. В принципе скоро приедет DSO150, вот и попробую и испытаю.
есть еще один вариант - платка STM32F103C8T6 и есть к ней примеры для ILI9327 - тож ведь времени маловато, а там только для начала - ого-го заморочек. Я пока только с телефона на эту тему почитываю. Но в эту платку уже залил пример с осликом простейшим (и он заработал!), что и сподвигло на DSO150.
если надо могу скинуть проект сали
Не совсем понимаю проблемы. Рассматривая TFT разрешением до 480х320 чтение ID отличается только именем регистра в котором хранится данная информация, за исключением HX8ххх контроллеров, процедура считывания сложнее. Дальше конечно есть вопросы связанные с разрядностью данных(два байта). Встречался с китайским разночтением у R61581, связанным с регистром ориентации и соответствием бита отвечающим за размещение RGB-BGR. В остальном как правило существующие инициализации вполне достаточны для работы. Что касается применения STM32, то это другой уровень, особенно если исспользовать FMC(FSMC), даже SPI вместе с DMA и внешней памятью или SRAM, или SDRAM. И желательно без IDE Arduino.
Ну, в общем-то победил я его.
как только подал на дисплей питание как в телефоне (1V8 и 2V8) все нормально заработало,
пробовал подавать одинаковое напряжение (2V8, даже 2V5!) ни в какую не работал.
пока запускал нашел 3 разных инита + сделал по дампу свой инит - работают все, немного различаются цвета и скорость
оценив скорость работы с дисплеем ардуины и СТМ32 начинаю изучать последнюю, обычная (103С8Т6) стОит также как и ардуина, но скорость впечатляет, а ежели взять 405VE, 407VE (стоимостью 600руб) у них FSMC и флеш 512кб, и также можно подключить практически любой дисплей - 8/9/16/17/18 бит нужен только инит.
И желательно без IDE Arduino.
Дисплей от раскладушки Fly. Может кому пригодится информация...
Подключаем
Инит от ILI9225
Напишите полную марку / модель телефона, размеры дисплея и надписи на дисплее и распиновку в текстовом варианте для того чтобы Гугл мог проиндексировать и поиск потом находил вашу информацию.
Добрый день. Ребята не подскажете распиновку или кто сталкивался с такими дисплеями TXDT350DH-129 от Explay N1 3,5 дюйма 39 pin, CXD350-27 v1.1 3,5 дюйма 40pin от Goldstar SP35 (OYSTERS Arctic 350).
Посмотри пост 118.
Спасибо, как я просмотрел Explay N1. В мастерской предлагают дисплей от ZTE-skate FP-TPV960 стоит брать? Схемы на него не нашел.
Вот еще принесли эклюзивный дисплей от 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. Остальные пины пока не понятно, что куда идет. Может кто сталкивался с таким дисплеем.
Сделай крупное, хорошее фото шлейфа с двух сторон. Чтоб дорожки было хорошо видно.
Ссылка на фото покрупнее : https://cloud.mail.ru/public/JETz/XyxhSvZvN
1 - четыре жилы, средние из шести. RD, WR, DC, CS или наоборот.
2 - D0-D15 слева направо.
3 - RESET
+3.3B жирные дорожки.
На фотке со стороны надписи очень плохо видно.
Спасибо попробую.
Ребята прошу помощи... Есть дисплей от мелкого самсунга 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............
А почему именно пин номер 2? почему не какой-то другой?
Собираю прибор.. На базе ардуино .. С функциями .. дальномер , пирометр , тахометр , датчик газа. Так вот тахометр считает обороты только на пине 2. перебрал множество скетчей все на нём . может тактирование самой дуньки на пине 2 настроено... вот и пришёл к такому варианту .. освободить от диспа пин 2.
На втором пине висит прерывание.
Скорость прорисовки на TFT дисплее слишком низкая. Занимает много процессорного времени. Для вашего проекта лучше возьмите какой-то по-проще дисплей. На пример 128*64.
А варианты ещё есть.. Или всё так печально... А почему в дисплеях от Open-Smart пин 2 в ардуине не задействован..???? Значит возможно освободить его .. в библиотеке толь где....?????????
Тахометру нужно внешнее прерывание. На Уно это пины 2 и 3. Можно пересадить его на пин 3, если он свободен. Но потребуется изменение кода.
Тахометру нужно внешнее прерывание. На Уно это пины 2 и 3. Можно пересадить его на пин 3, если он свободен. Но потребуется изменение кода.
Тахометру нужно внешнее прерывание. На Уно это пины 2 и 3. Можно пересадить его на пин 3, если он свободен. Но потребуется изменение кода.
В том и дело что свободные только 10 11 12 13 A6 A7 // а код тахометра требует только пин 2...
На 168 (328) меге вроде на каждом пине есть внешнее прерывание.
Код тахометра требует не пин, а внешнее прерывание. И его номер можно изменить в коде, но выбор невелик. Если освободите пин 3, можно пересадить тахометр на него. Если у вас Мега, выбор больше.
Не видел кода тахометра, но раз пин2, то скорее всего используется INT0. Соответственно код придется менять
на прерывание от другой ножки. Но будет уже не INT, а PCINT. Прерывание победнее. Подумать чуть придется.
Или копать библиотеку Адафруит.
http://arduino.ru/forum/programmirovanie/dopolnitelnye-vneshnie-preryvan... про прерывания, кому интересно.
Собираю прибор.. На базе ардуино .. С функциями .. дальномер , пирометр , тахометр , датчик газа. Так вот тахометр считает обороты только на пине 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 на дисп через резистор. Когда нужно чтото нарисовать , настраиваете пин на выход , рисуете , настраиваете на вход (+подтяжку если требуется) и резрешаете прерывание(или делаете измерение - либа должна сама включить прерыв, измерить и выкл. его) , ну а потом снова ..... настроить на выход , нарисовать, настроить на вход.
ОК... Попорадку ... Делпется всё на про мини.
код чсто тахометра просто перебит с диспа 1602 на TFT
01
#include <Adafruit_GFX.h> // Core graphics library
02
#include <Adafruit_TFTLCD.h> // Hardware-specific library
03
#define LCD_CS A3 // Chip Select goes to Analog 3
04
#define LCD_CD A2 // Command/Data goes to Analog 2
05
#define LCD_WR A1 // LCD Write goes to Analog 1
06
#define LCD_RD A0 // LCD Read goes to Analog 0
07
//#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
08
Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);
09
10
#define BLACK 0x0000
11
#define RED 0x001F
12
#define BLUE 0xF800
13
#define GREEN 0x07E0
14
#define CYAN 0x07FF
15
#define MAGENTA 0xF81F
16
#define YELLOW 0xFFE0
17
#define WHITE 0xFFFF
18
19
20
21
float
value=0;
22
float
rev=0;
23
int
rpm;
24
int
oldtime=0;
25
int
time;
26
27
void
isr()
//interrupt service routine
28
{
29
rev++;
30
}
31
32
void
setup
(){
33
//tft.fillScreen(BLACK);
34
//tft.invertDisplay(2);
35
//tft.setRotation(2);
36
attachInterrupt(0,isr,RISING);
//attaching the interrupt
37
38
uint16_t identifier = tft.readID();
39
uint8_t minimal = 0;
40
if
(identifier == 0x9341) {
41
}
else
{
42
identifier = 0x9341;
43
minimal=1;
44
}
45
tft.begin(identifier, minimal);
46
}
47
48
void
loop
()
49
{
50
for
(uint8_t rotation=0; rotation<2; rotation++) {
51
delay(1000);
52
detachInterrupt(0);
//detaches the interrupt
53
time=millis()-oldtime;
//finds the time
54
rpm=(rev/time)*60000;
//calculates rpm
55
oldtime=millis();
//saves the current time
56
rev=0;
57
58
//tft.setTextColor(GREEN,BLACK);
59
tft.setCursor(0,0);
60
tft.print(
"___TACHOMETER___"
);
61
tft.setCursor(0,20);
62
tft.print( rpm);
63
tft.print(
" RPM"
);
64
tft.print(
" "
);
65
attachInterrupt(0,isr,RISING);
66
67
68
}
69
}
Приветствую, спасибо за информацию, которую вы тут выкладываете!
Озадачился LCD TFT индикатором для домашнего баловства, на алиэкспрессе от 3" всё дорогое, да ещё часто и убогое, типа TN. Вопрос, если на него можно сформулировать ответ: каким образом отобрать по описанию и картинке тот индикатор, который с большой вероятностью можно запрограммировать? [ветку читал]
Конкретнее. В сириуст есть дикая куча всяких разных индикаторов. Как из них выбрать наименее проблемный с подключением? Паять буду к STM32F4(могу к H7), драйвер напишу сам, там несложно, если хотя бы примерно понимать какой контроллер, запаять смогу.
Думаю вопрос интересен многим, хотелось бы иметь выжимку из ветки. Спасибо.
код чсто тахометра просто перебит с диспа 1602 на TFT
В вашем коде никто не занимает пин 2, только тахометр через INT0.
Shuring, вы противоречите сами себе: "никто не занимает пин 2, только тахометр через INT0"
Пин 2 занят прерыванием.