Как подключить дисплей 3.2 LCD Module

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

diger67 пишет:

Согласен, что штатная библиотека работает только по последовательному порту 8 бит и 9 бит. Но если человек понимает в програмировании то внести изменения нет никаких проблем. Я без проблем используя рабочие либы пишу их под любой чип. Главное это дамп инициализации. Вот к примеру частично партированная либа adafruit на платформу stm32. Если вы знаете adafruit написана для 8бит шилдов, у меня работает по SPI с использованием DMA.

.....

#tatus(TIM2, TIM_IT_Update) != SET){}
 while(delay_count);
 TIM_Cmd(TIM2, DISABLE);
}
*/

 

Я скопировал код в программу, компиляция не пошла. Или что нужно было сделать?

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

AlexRyzh пишет:

diger67 пишет:

Вы попробовали то что я предложил почтом чуть выше? Если да, то могу подменить lcdinit.h на инициализацию с которой работает в другой библиотеке 100%.

Я так и не понял что пробовать. Скетч не компилируется... а что это за скетч не понял толком :(

[/quote]

В моем посте №30 в этой теме я дал ссылку на библиотеку с изменениями для вашего шилда. Предлагаю попробовать скачать этот вариант библиотеки, заменить старую на эту. скомпилировать скетч с указанными в нем параметрами и залить в ардуино. Отписаться по результату.  http://178.130.34.198/adafruit/sketch/hex/UTFT_Demo_320x240.cpp.hex

Вот скомпилировал, попробуйте залить через SPI.

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

Это конечно может занять какоето время, но я могу попробавать написать кусок который позволит инициализировать индикатор и залить экран каким либо цветом. Применительно ко мне я так и поступаю. Иду по шагам.

1. Определяю какой чип стоит на шилде

2. Нахожу оптимальный вариант инициализации

3. Заливаю экран любым цветом

int I;

for(I=0; I< 76800; I++) //применительно к 320х240 = 76800
{
     LCD_Write_DATA(0x001F);
}

данная функция зальет экран синим цветом

Что касается примера кода выложенного в посте №42, то это написано совершенно для другого процессора. И приводилось как аргумент vis22.

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

UTFT продолжаем добивать...ся

ILI9341 16bit

от Slider для AlexRyzh
использовался часть китайского  кода инициализации от diger67  http://arduino.ru/forum/apparatnye-voprosy/kak-podklyuchit-displei-32-lcd-module#comment-154822
подменены инизиализации дисплеев 
ssd1289 
ili9325c 
 
драйвер  SSD1289   2   // подменен на ili9341 16bit
драйвер  ILI9325C   3   // подменен на ili9341  8bit 
 
использовать пример
UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240
 
инициализировать так
  UTFT myGLCD(2,38,39,40,41);  // 2-для ILI9341 16bit 
  UTFT myGLCD(3,38,39,40,41);  // 3-для ILI9341 8bit 

https://yadi.sk/d/7BftuMVtmL7EJ

AlexRyzh , а то что вам дали китайцы

https://yadi.sk/d/64EhZnLJmKhvt - это для совершенно другого шилда (который втыкается напрямую в мегу) и другого контроллера - HX8357C

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

diger67 пишет:

В моем посте №30 в этой теме я дал ссылку на библиотеку с изменениями для вашего шилда. Предлагаю попробовать скачать этот вариант библиотеки, заменить старую на эту. скомпилировать скетч с указанными в нем параметрами и залить в ардуино. Отписаться по результату.  http://178.130.34.198/adafruit/sketch/hex/UTFT_Demo_320x240.cpp.hex

Вот скомпилировал, попробуйте залить через SPI.

Да эту библиотеку я качал. удалял ту что была в библиотеке, подставлял эту. рошивал, но ничего не происходит.

Сейчас попробовал ваш скомпилированный залить, но я пока не знаю как через SPI,  с Аурдино только начинаю работать, залил через УСБ программой XLoader. Никой реакции.  Горит подсветка и больше ничего. А подсветка так и должна включаться, в смысле мгновенно с подачей питания на Ардуно?

Также попробовал библиотеку от slider, прошил оба варианта инициализации - никакой реакции. Такое впечатление, что дисплей не работает. Хотя читалка от slider определяет что работает.

А может быть такое что контроллер работает, а сам экран дохлый?

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

преобразовал ещё несколько инициализаций для ILI9341 16bit

init code ili9341

используя https://yadi.sk/d/7BftuMVtmL7EJ и пример из неё UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240  там уже стоит   UTFT myGLCD(2,38,39,40,41);  // №2 (ssd1289) подменен на ILI9341 16bit 

в файле initlcd.h  C:\Users\......\Documents\Arduino\libraries\UTFT\tft_drivers\ssd1289

всё стираем и пишем

1. от https://www.adafruit.com/datasheets/MI0283QT-11%20V1.1.PDF 

case SSD1289:
case SSD1289_8:
case SSD1289LATCHED:
// подмена от ILI9341  от 
// https://www.adafruit.com/datasheets/MI0283QT-11%20V1.1.PDF

LCD_Write_COM(0x01); //software reset
 delay(5);
 LCD_Write_COM(0x28); // display off
//---------------------------------------------------------
 LCD_Write_COM(0xcf);
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x83);
 LCD_Write_DATA(0x30);

 LCD_Write_COM(0xed);
 LCD_Write_DATA(0x64);
 LCD_Write_DATA(0x03);
 LCD_Write_DATA(0x12);
 LCD_Write_DATA(0x81);

 LCD_Write_COM(0xe8);
 LCD_Write_DATA(0x85);
 LCD_Write_DATA(0x01);
 LCD_Write_DATA(0x79);
 LCD_Write_COM(0xcb);
 LCD_Write_DATA(0x39);
 LCD_Write_DATA(0x2c);
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x34);
 LCD_Write_DATA(0x02);
 LCD_Write_COM(0xf7);
 LCD_Write_DATA(0x20);
 LCD_Write_COM(0xea);
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x00);


//------------power control------------------------------
 LCD_Write_COM(0xc0); //power control
 LCD_Write_DATA(0x26);

 LCD_Write_COM(0xc1); //power control
 LCD_Write_DATA(0x11);
//--------------VCOM䆒ᅮϡヺড়ᓔᴎӮ䮾⚕ --------- LCD_Write_COM(0xc5); //vcom control
 LCD_Write_DATA(0x35);//35
 LCD_Write_DATA(0x3e);//3E
 LCD_Write_COM(0xc7); //vcom control
 LCD_Write_DATA(0xbe); // 0x94
//------------memory access control------------------------
 LCD_Write_COM(0x36); // memory access control
 LCD_Write_DATA(0x48); //0048 my,mx,mv,ml,BGR,mh,0.0
 LCD_Write_COM(0x3a); // pixel format set
 LCD_Write_DATA(0x55);//16bit /pixel
//----------------- frame rate------------------------------
 LCD_Write_COM(0xb1); // frame rate
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x1B); //70

//----------------Gamma---------------------------------
 LCD_Write_COM(0xf2); // 3Gamma Function Disable
 LCD_Write_DATA(0x08);

 LCD_Write_COM(0x26);
 LCD_Write_DATA(0x01); // gamma set 4 gamma curve 01/02/04/08
//MODULE NO.: MI0283QT-11 Ver 1.2
//MULTI-INNO TECHNOLOGY CO.,LTD. P.19


 LCD_Write_COM(0xE0); //positive gamma correction
 LCD_Write_DATA(0x1f);
 LCD_Write_DATA(0x1a);
 LCD_Write_DATA(0x18);
 LCD_Write_DATA(0x0a);
 LCD_Write_DATA(0x0f);
 LCD_Write_DATA(0x06);
 LCD_Write_DATA(0x45);
 LCD_Write_DATA(0x87);
 LCD_Write_DATA(0x32);
 LCD_Write_DATA(0x0a);
 LCD_Write_DATA(0x07);
 LCD_Write_DATA(0x02);
 LCD_Write_DATA(0x07);
 LCD_Write_DATA(0x05);
 LCD_Write_DATA(0x00);

 LCD_Write_COM(0xE1); //negamma correction
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x25);
 LCD_Write_DATA(0x27);
 LCD_Write_DATA(0x05);
 LCD_Write_DATA(0x10);
 LCD_Write_DATA(0x09);
 LCD_Write_DATA(0x3a);
 LCD_Write_DATA(0x78);
 LCD_Write_DATA(0x4d);
 LCD_Write_DATA(0x05);
 LCD_Write_DATA(0x18);
 LCD_Write_DATA(0x0d);
 LCD_Write_DATA(0x38);
 LCD_Write_DATA(0x3a);
 LCD_Write_DATA(0x1f);
//--------------ddram ---------------------
 LCD_Write_COM(0x2a); // column set
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0xEF);

 LCD_Write_COM(0x2b); // page address set
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x00);
 LCD_Write_DATA(0x01);
 LCD_Write_DATA(0x3F);

 // LCD_Write_COM(0x34); // tearing effect off
 //LCD_Write_COM(0x35); // tearing effect on

 //LCD_Write_COM(0xb4); // display inversion
 //LCD_Write_DATA(0x00);

 LCD_Write_COM(0xb7); //entry mode set
 LCD_Write_DATA(0x07);
//-----------------display---------------------
 LCD_Write_COM(0xb6); // display function control
 LCD_Write_DATA(0x0a);
 LCD_Write_DATA(0x82);
 LCD_Write_DATA(0x27);
 LCD_Write_DATA(0x00);

 LCD_Write_COM(0x11); //sleep out
 delay(100);
 LCD_Write_COM(0x29); // display on
 delay(100);
 LCD_Write_COM(0x2c); //memory write 
 
 

	break;

 

2. http://www.avrfreaks.net/forum/ili9341

case SSD1289:
case SSD1289_8:
case SSD1289LATCHED:
// подмена от ILI9341  от 
//http://www.avrfreaks.net/forum/ili9341


//Software Reset
	LCD_Write_COM(0x01); 
	
	delay(1000);  		
//************* Start Initial Sequence **********// 
	//Power control A 
	LCD_Write_COM(0xCB);  
	LCD_Write_DATA(0x39); 
	LCD_Write_DATA(0x2C); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x34); 
	LCD_Write_DATA(0x02); 
	
 
	//Power control A
	LCD_Write_COM(0xCF);  
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0XC1); 
	LCD_Write_DATA(0X30); 
	
 
	//Driver timing control A
	LCD_Write_COM(0xE8);  
	LCD_Write_DATA(0x85); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x78);
	
 
	//Driver timing control B
	LCD_Write_COM(0xEA);  
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x00); 
	
 
	//Power on sequence control
	LCD_Write_COM(0xED);  
	LCD_Write_DATA(0x64); 
	LCD_Write_DATA(0x03); 
	LCD_Write_DATA(0X12); 
	LCD_Write_DATA(0X81);
	
	
	//Pump ratio control
	LCD_Write_COM(0xF7);  
	LCD_Write_DATA(0x20);
	 
 
	//Power Control 1
	LCD_Write_COM(0xC0); 	
	LCD_Write_DATA(0x23); 
		
	
	//Power Control 2
	LCD_Write_COM(0xC1);
	LCD_Write_DATA(0x10);  
	
	 
	//VCOM Control 1
	LCD_Write_COM(0xC5);  
	LCD_Write_DATA(0x2B); 
	LCD_Write_DATA(0x2B); 
	 	
 
	//Memory Access Control
	LCD_Write_COM(0x36); 
	LCD_Write_DATA(0x48); 
	
 
	//Frame Rate Control (In Normal Mode/Full Colors)
	LCD_Write_COM(0xB1); 
	LCD_Write_DATA(0x00);  
	LCD_Write_DATA(0x1B); 
	
 
	//Display Function Control
	LCD_Write_COM(0xB6); 
	LCD_Write_DATA(0x0A); 
	LCD_Write_DATA(0x02); 
	
	
	//Enable 3G
	LCD_Write_COM(0xF2);  
	LCD_Write_DATA(0x02); 
	
	
	//COLMOD: Pixel Format Set
	LCD_Write_COM(0x3a);  
	LCD_Write_DATA(0x05); 
	
	
	//Gamma Set
	LCD_Write_COM(0x26); 
	LCD_Write_DATA(0x01); 
	
 
	//Positive Gamma Correction
	LCD_Write_COM(0xE0);  
	LCD_Write_DATA(0x0F); 
	LCD_Write_DATA(0x31); 
	LCD_Write_DATA(0x2B); 
	LCD_Write_DATA(0x0C); 
	LCD_Write_DATA(0x0E); 
	LCD_Write_DATA(0x08); 
	LCD_Write_DATA(0x4E); 
	LCD_Write_DATA(0xF1); 
	LCD_Write_DATA(0x37); 
	LCD_Write_DATA(0x07); 
	LCD_Write_DATA(0x10); 
	LCD_Write_DATA(0x03); 
	LCD_Write_DATA(0x0E); 
	LCD_Write_DATA(0x09); 
	LCD_Write_DATA(0x00); 
	
 
	//Negative Gamma Correction
	LCD_Write_COM(0XE1); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x0E); 
	LCD_Write_DATA(0x14); 
	LCD_Write_DATA(0x03); 
	LCD_Write_DATA(0x11); 
	LCD_Write_DATA(0x07); 
	LCD_Write_DATA(0x31); 
	LCD_Write_DATA(0xC1); 
	LCD_Write_DATA(0x48); 
	LCD_Write_DATA(0x08); 
	LCD_Write_DATA(0x0F); 
	LCD_Write_DATA(0x0C); 
	LCD_Write_DATA(0x31); 
	LCD_Write_DATA(0x36); 
	LCD_Write_DATA(0x0F);
	   
 
	// Sleep Out
	LCD_Write_COM(0x11);  
		
	delay(120); 
	
	 //Display On
	LCD_Write_COM(0x29);
	


	break;

 

3. http://www.microchip.com/forums/m846831.aspx

case SSD1289:
case SSD1289_8:
case SSD1289LATCHED:
// подмена от ILI9341  от 
// http://www.microchip.com/forums/m846831.aspx


    LCD_Write_COM(0x28); //DISPLAY OFF

    LCD_Write_COM(0x11); //EXIT SLEEP MODE
    LCD_Write_DATA(0x00);

    LCD_Write_COM(0xCB);
    LCD_Write_DATA(0x39);
    LCD_Write_DATA(0x2c);
    LCD_Write_DATA(0x00);
    LCD_Write_DATA(0x34); //VCORE = 1.6V
    LCD_Write_DATA(0x02); //DDVDH = 5.6V

    LCD_Write_COM(0xCF);
    LCD_Write_DATA(0x00);
    LCD_Write_DATA(0x81);
    LCD_Write_DATA(0x30);

    LCD_Write_COM(0xE8);
    LCD_Write_DATA(0x85);
    LCD_Write_DATA(0x01);
    LCD_Write_DATA(0x79);

    LCD_Write_COM(0xEA);
    LCD_Write_DATA(0x00);
    LCD_Write_DATA(0x00);

    LCD_Write_COM(0xED);
    LCD_Write_DATA(0x64);
    LCD_Write_DATA(0x03);
    LCD_Write_DATA(0x12);
    LCD_Write_DATA(0x81);

    LCD_Write_COM(0xF7);
    LCD_Write_DATA(0x20);

    LCD_Write_COM(0xC0);
    LCD_Write_DATA(0x26);

    LCD_Write_COM(0xC1);
    LCD_Write_DATA(0x11);

    LCD_Write_COM(0xC5);
    LCD_Write_DATA(0x35);
    LCD_Write_DATA(0x3E);

    LCD_Write_COM(0xC7);
    LCD_Write_DATA(0xBE);

    LCD_Write_COM(0x36);
    LCD_Write_DATA(0x88);

    LCD_Write_COM(0xB1);
    LCD_Write_DATA(0x00);
    LCD_Write_DATA(0x10);

    LCD_Write_COM(0xB6);
    LCD_Write_DATA(0x0A);
    LCD_Write_DATA(0xA2);

    LCD_Write_COM(0x3A);
    LCD_Write_DATA(0x55);

    LCD_Write_COM(0xF2);
    LCD_Write_DATA(0x02);

    LCD_Write_COM(0x26);
    LCD_Write_DATA(0x01);

    LCD_Write_COM(0xE0);
    LCD_Write_DATA(0x1F); //positive gamma correction
    LCD_Write_DATA(0x1B);
    LCD_Write_DATA(0x18);
    LCD_Write_DATA(0x0B);
    LCD_Write_DATA(0x0F);
    LCD_Write_DATA(0x09);
    LCD_Write_DATA(0x46);
    LCD_Write_DATA(0xB5);
    LCD_Write_DATA(0x37);
    LCD_Write_DATA(0x0A);
    LCD_Write_DATA(0x0C);
    LCD_Write_DATA(0x07);
    LCD_Write_DATA(0x07);
    LCD_Write_DATA(0x05);
    LCD_Write_DATA(0x00);

    LCD_Write_COM(0x00E1);
    LCD_Write_DATA(0x00); //negative gamma correction
    LCD_Write_DATA(0x24);
    LCD_Write_DATA(0x27);
    LCD_Write_DATA(0x04);
    LCD_Write_DATA(0x10);
    LCD_Write_DATA(0x06);
    LCD_Write_DATA(0x39);
    LCD_Write_DATA(0x74);
    LCD_Write_DATA(0x48);
    LCD_Write_DATA(0x05);
    LCD_Write_DATA(0x13);
    LCD_Write_DATA(0x38);
    LCD_Write_DATA(0x38);
    LCD_Write_DATA(0x3A);
    LCD_Write_DATA(0x1F);

    LCD_Write_COM(0x002A);
    LCD_Write_DATA(0x00); //column address set
    LCD_Write_DATA(0x00); //start 0x0000
    LCD_Write_DATA(0x00);
    LCD_Write_DATA(0xEF); //end 0x00EF

    LCD_Write_COM(0x002B);
    LCD_Write_DATA(0x00); //page address set
    LCD_Write_DATA(0x00); //start 0x0000
    LCD_Write_DATA(0x00);
    LCD_Write_DATA(0x013F); //end 0x013F
	
	LCD_Write_COM(0x11); //Exit Sleep
	delay(120);
	LCD_Write_COM(0x29); //display on   
	

	break;

 

4. http://www.wayengineer.com/32-touch-tft-lcd-color-screen-module-240x320-with-pcb-board-p-6334.html#.VnTde7aLSUk

case SSD1289:
case SSD1289_8:
case SSD1289LATCHED:
// подмена от ILI9341  от 
// http://www.wayengineer.com/32-touch-tft-lcd-color-screen-module-240x320-with-pcb-board-p-6334.html#.VnTde7aLSUk
// 3.2-ILI9341-PCB\3.2+чILI9341+°+е+¦-г¬щ+ф¦++¦+¦Rev3.0\C51+-¦¦-т¦L¦¦¦Є_240X320_ILI9341\LCD
	LCD_Write_COM(0xCF);  
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0xC1); 
	LCD_Write_DATA(0X30); 
	LCD_Write_COM(0xED);  
	LCD_Write_DATA(0x64); 
	LCD_Write_DATA(0x03); 
	LCD_Write_DATA(0X12); 
	LCD_Write_DATA(0X81); 
	LCD_Write_COM(0xE8);  
	LCD_Write_DATA(0x85); 
	LCD_Write_DATA(0x10); 
	LCD_Write_DATA(0x7A); 
	LCD_Write_COM(0xCB);  
	LCD_Write_DATA(0x39); 
	LCD_Write_DATA(0x2C); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x34); 
	LCD_Write_DATA(0x02); 
	LCD_Write_COM(0xF7);  
	LCD_Write_DATA(0x20); 
	LCD_Write_COM(0xEA);  
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x00); 
	LCD_Write_COM(0xC0);    //Power control 
	LCD_Write_DATA(0x1B);   //VRH[5:0] 
	LCD_Write_COM(0xC1);    //Power control 
	LCD_Write_DATA(0x01);   //SAP[2:0];BT[3:0] 
	LCD_Write_COM(0xC5);    //VCM control 
	LCD_Write_DATA(0x30); 	 //3F
	LCD_Write_DATA(0x30); 	 //3C
	LCD_Write_COM(0xC7);    //VCM control2 
	LCD_Write_DATA(0XB7); 
	LCD_Write_COM(0x36);    // Memory Access Control 
	LCD_Write_DATA(0x48); 
	LCD_Write_COM(0x3A);   
	LCD_Write_DATA(0x55); 
	LCD_Write_COM(0xB1);   
	LCD_Write_DATA(0x00);   
	LCD_Write_DATA(0x1A); 
	LCD_Write_COM(0xB6);    // Display Function Control 
	LCD_Write_DATA(0x0A); 
	LCD_Write_DATA(0xA2); 
	LCD_Write_COM(0xF2);    // 3Gamma Function Disable 
	LCD_Write_DATA(0x00); 
	LCD_Write_COM(0x26);    //Gamma curve selected 
	LCD_Write_DATA(0x01); 
	LCD_Write_COM(0xE0);    //Set Gamma 
	LCD_Write_DATA(0x0F); 
	LCD_Write_DATA(0x2A); 
	LCD_Write_DATA(0x28); 
	LCD_Write_DATA(0x08); 
	LCD_Write_DATA(0x0E); 
	LCD_Write_DATA(0x08); 
	LCD_Write_DATA(0x54); 
	LCD_Write_DATA(0XA9); 
	LCD_Write_DATA(0x43); 
	LCD_Write_DATA(0x0A); 
	LCD_Write_DATA(0x0F); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x00); 		 
	LCD_Write_COM(0XE1);    //Set Gamma 
	LCD_Write_DATA(0x00); 
	LCD_Write_DATA(0x15); 
	LCD_Write_DATA(0x17); 
	LCD_Write_DATA(0x07); 
	LCD_Write_DATA(0x11); 
	LCD_Write_DATA(0x06); 
	LCD_Write_DATA(0x2B); 
	LCD_Write_DATA(0x56); 
	LCD_Write_DATA(0x3C); 
	LCD_Write_DATA(0x05); 
	LCD_Write_DATA(0x10); 
	LCD_Write_DATA(0x0F); 
	LCD_Write_DATA(0x3F); 
	LCD_Write_DATA(0x3F); 
	LCD_Write_DATA(0x0F); 
	LCD_Write_COM(0x2B); 
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x01);
	LCD_Write_DATA(0x3f);
	LCD_Write_COM(0x2A); 
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0xef);	 
	LCD_Write_COM(0x11); //Exit Sleep
	delay(120);
	LCD_Write_COM(0x29); //display on   



	break;

 

особо не разбирался в их различии, разница может в цветности 65К 262К(UTFT , если цветность не соответствует, то может вообще не рисоваться) , перевернутости, зеркальности, контрастности, правильности передачи цветов,....установки напряжений для матрицы (берутся из расчёта каким напряжением питается дисплей 1,8в 2,5в 3,3в )

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Проверил - никакой реакции :(

Делал так:

1. Скачиваю библиотеку  2. Удаляю старую УТФТ библиотеку, подставляю нову (папка УТФТ)

3. Через программу запускаю демо 320Х240 ВИжу строку инициализации, где прописано 2 вида инициализации, одна закоментирована.

4. Запускаю на первой инициализации - ничего. закоментрировал ее, раскоментировал вторую инициализацию - ничего

После каждой прошивки вынимал и вставлял шнур УСБ. После каждого редактирования файла C:\Users\......\Documents\Arduino\libraries\UTFT\tft_drivers\ssd1289

Закрывал программу, чтоб наверняка подхватил отредактированную библиотеку.

Соедино все поэтой схеме:

8c10b2257061t.jpg

Спасибо всем, что пытаетесь помочь победить узкоглазого... но видать он нам не по силам

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Читалка дает результат, что контроллер рабочий, может сама матрица дохлая? Ведь не может быть, чтоб экран не подал хоть каких-то признаков жизни, кроме постоянно горящей подсветки

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

AlexRyzh пишет:

Читалка дает результат, что контроллер рабочий, может сама матрица дохлая? Ведь не может быть, чтоб экран не подал хоть каких-то признаков жизни, кроме постоянно горящей подсветки

И всетаки он рабочий, с такой проблеммой столкнулся когда сам собирал из экран и буферных регистров типа шилда. Использовал флюс для пайки FPGA. Схема то работала, то экран просто работал как фонарь. Посмотрите внимательно, может все обильно залито флюсом. Не редки случии когда плохо смыт флюс. И еще, очень внимательно посмотрите пайку разъемов и на mege и на шилде. Я и с таким сталкивался.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Осмотрел, на друинке нормально, чистенько все, а на дисплее вроде как флюс, или что оно не понятно. Не сталкивался с таким

А чем его смыть можно?

059dcac55ae9t.jpg 1bd9c57f8154t.jpg

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

Обычно используют обычный медицинский спирт.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Обычно медицинский спирт используют по другому назначению.

А смывать флюс - подойдет бензин или ацетон.

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

andriano пишет:

Обычно медицинский спирт используют по другому назначению.

А смывать флюс - подойдет бензин или ацетон.

Да, многие используют бензин и ацетон. Но давно уже "колошу" не продают, ацетон тоже не в почете из за наркоманов. В бытность, когда я работал на заводе, платы в промышленом масштабе мылись бензоспиртовой смесью.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Смыл жидклстью для сняти лака на ногтях. Норм смылось, быстро

Но на работу дисплея не повлияло. Как молчал так и молчит

 

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

И всетаки я настаиваю натом что бы вы запитали шилд от 3.3В. Осталось только это, и я уверен что это последнее невыполненное условие для нормальной работы индикатора. Чудес на свете не бывает.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Я покупал "Калошу" буквально пару месяцев назад.

Да и автозаправки никто не отменял, слава Богу, встретить там этилированный бензин уже невозможно.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

diger67 пишет:

И всетаки я настаиваю натом что бы вы запитали шилд от 3.3В. Осталось только это, и я уверен что это последнее невыполненное условие для нормальной работы индикатора. Чудес на свете не бывает.

Да, чудес не бывает. Мы со slider долго мучались, и перепайка была, но увы...

и на 3.3В подключал, но замеряя напряжение на 662, там небыло 3.3В было 3 -2.9, а 5 В через резистор, стабильно давло 3.3В

Дисплей ушел на полку запасных запчастей, тему можно закрывать.

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

Живете где?

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

Да время было потрачено очень много. списывались по виберу и емайлу. Дисплей подключен через 1кОм резисторы. То что дисплей принимает команды и отправляет данные читалке, даёт понять что контроллер рабочий. Возможно дело м матрице, в обвязке (кондеры преобразователей на шлейфе). Были перепробованы много инициалиций для ILI9341. Мож отбраковка какая или брак попался.

 На шлейфе потом переставили перемычку с R2 на R1 ( IM0 c GND на +3.3v ) для перевода его с 16бит на 8бит . Была снова протестирована UTFT (16/8бит) и теперь Adafruit (ему необходим 8ми битный режим).  Была взята либа Адафруит  (для 8ми бит а не SPI)  https://yadi.sk/d/G1wGU8CumLxEZ пример ...\Documents\Arduino\libraries\Adafruit_TFTLCD\examples\graphicstest , ( причём версия  IDE 1.5.5 не хотела видеть *.pde и принудительно не компилировала, а старее и  1.5.8 и новее  версии - Да) . В библиотеке есть распознавание и драйвера на  ILI9325 (0x9325)  ILI9328 (0x9328)  HX8347G (0x7575)  , ILI9341 (0x9341) с регистра 3D, HX8357D  (0x8357) . Адафруит почему-то его не видела . (дисплей был подключён старшими разрядами на портА(пины22-29) - так ей читаются и запускаются у меня дисплеи на меге) .  Почему она не увидела этот шилд, это конечно вопрос. Читалкой v2.1 https://yadi.sk/d/a7lnuLkamLxs4 не удаётся проверить это подключение, т.к. она заточена на 16бит. 8бит может распознать только малую часть дисплеев, из-за большой разницы в их работе по 8ми битам, надо делать отдельную только для 8бит.

Остаются предположения, либо Мега (не было другой или Уно ), либо сам дисплей. и совсем маленький процент на коммутацию и длинные провода. AlexRyzh  как я понял, находится в другой стране, так что доставка для исследования не целесообразна.

если кому надо вот схемы на этот шилд и либы для STM и C51 https://yadi.sk/d/sOkpTV6nmLxeU

 

 

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

slider пишет:

Да время было потрачено очень много. списывались по виберу и емайлу. Дисплей подключен через 1кОм резисторы. То что дисплей принимает команды и отправляет данные читалке, даёт понять что контроллер рабочий. Возможно дело м матрице, в обвязке (кондеры преобразователей на шлейфе). Были перепробованы много инициалиций для ILI9341. Мож отбраковка какая или брак попался.

 На шлейфе потом переставили перемычку с R2 на R1 ( IM0 c GND на +3.3v ) для перевода его с 16бит на 8бит . Была снова протестирована UTFT (16/8бит) и теперь Adafruit (ему необходим 8ми битный режим).  Была взята либа Адафруит  (для 8ми бит а не SPI)  https://yadi.sk/d/G1wGU8CumLxEZ пример ...\Documents\Arduino\libraries\Adafruit_TFTLCD\examples\graphicstest , ( причём версия  IDE 1.5.5 не хотела видеть *.pde и принудительно не компилировала, а старее и  1.5.8 и новее  версии - Да) . В библиотеке есть распознавание и драйвера на  ILI9325 (0x9325)  ILI9328 (0x9328)  HX8347G (0x7575)  , ILI9341 (0x9341) с регистра 3D, HX8357D  (0x8357) . Адафруит почему-то его не видела . (дисплей был подключён старшими разрядами на портА(пины22-29) - так ей читаются и запускаются у меня дисплеи на меге) .  Почему она не увидела этот шилд, это конечно вопрос. Читалкой v2.1 https://yadi.sk/d/a7lnuLkamLxs4 не удаётся проверить это подключение, т.к. она заточена на 16бит. 8бит может распознать только малую часть дисплеев, из-за большой разницы в их работе по 8ми битам, надо делать отдельную только для 8бит.

Остаются предположения, либо Мега (не было другой или Уно ), либо сам дисплей. и совсем маленький процент на коммутацию и длинные провода. AlexRyzh  как я понял, находится в другой стране, так что доставка для исследования не целесообразна.

если кому надо вот схемы на этот шилд и либы для STM и C51 https://yadi.sk/d/sOkpTV6nmLxeU

Живу в Украине, Запорожзкая обл. Мелитополь

slider даже удаленно подключался к компу и шерстил сам библиотеку, правил коды... 

Провода не длинные, общая длина шлейфа составила 25 см. всю цепь от дисплея до друины прозвонил каждый прово (всю линию с резисторами). Каждая цепь показала 970-980 Ом (резисторы стоят на 1К). Это на второй сборке шлейфа. Перепробованно массу вариантов, но дисплей и "глазом не моргнул". Неделя непрерывных проб, изменений соединений, библиотек, даже внутренней пайки, мойки спаек... при работающей матрице должно было хоть как-то отреагировать.

Сама друина врядли виновата. Когда прошивал демкой экрана, диод на друинке помигивал, давая понять, что код работает. Еслиб с пинами была проблема, то читалка не давала бы результат. У меня напрашивается 1 вывод, контроллер рабочий, проблема или с матрицей или со шлейфом дисплея.

Вот еслибы был способ "ручной" проверки работоспособности матрицы без инициализации драйвером, было бы отлично. Ну типа подал куда нужно 5В или 3.3В и мтрица "зашумела" или еще как-то отреагировала. А там мучаемся, грешим на драйвер, провода и др..., а на самом деле матрица убитая

Еще раз спасибо всем. Взял Китайца за горло, и обострил спор на Али.

vis22
Offline
Зарегистрирован: 24.10.2015

 

Если есть сомнения в исправности матрицы, почему бы не проверить работу шилда по SPI (серийному подключению), там и надо то подключить всего 10 проводов и примеров в Интернете с работающим подключением ili9341 к Mege для  UTFT библиотеки море. 

Ну да это личное дело экспериментатора, не ищущего легких путей.... 

Учитывайте, что даже если один провод в параллельной 16 битной шине подключен неправильно либо его соединение неисправно, то команда передаваемая по параллельной шине контроллером распознана не будет и дисплей не заведется.

Ну если уж очень хочется, завести ili9341 от UTFT в 16 битном моде - то вот ссылка на форум http://stm32duino.com/viewtopic.php?f=44&t=637&sid=0386ca7bac9308691840eb0ee5e96fb7&start=10

где в посте  andreas_ferm  от Wed Oct 14, 2015 8:39 am сообщает о том, что удалось завести ili9341 обозвав его в строке инициализации как ssd1289, правда такой фокус он сделал не для Arduino, а для  STM32 портировав под него библиотеку UTFT.  Тоже настоящий герой...... Так что, можете попробовать.

 

 

 

 

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

vis22 пишет:

 

Если есть сомнения в исправности матрицы, почему бы не проверить работу шилда по SPI (серийному подключению), там и надо то подключить всего 10 проводов и примеров в Интернете с работающим подключением ili9341 к Mege для  UTFT библиотеки море. 

Ну да это личное дело экспериментатора, не ищущего легких путей.... 

Учитывайте, что даже если один провод в параллельной 16 битной шине подключен неправильно либо его соединение неисправно, то команда передаваемая по параллельной шине контроллером распознана не будет и дисплей не заведется.

Ну если уж очень хочется, завести ili9341 от UTFT в 16 битном моде - то вот ссылка на форум http://stm32duino.com/viewtopic.php?f=44&t=637&sid=0386ca7bac9308691840eb0ee5e96fb7&start=10

где в посте  andreas_ferm  от Wed Oct 14, 2015 8:39 am сообщает о том, что удалось завести ili9341 обозвав его в строке инициализации как ssd1289, правда такой фокус он сделал не для Arduino, а для  STM32 портировав под него библиотеку UTFT.  Тоже настоящий герой...... Так что, можете попробовать.

1. Нужно иметь доступ к IMO конфигурации, и на шлейф должны быть выведени хотябы MOSI, SCK....

2. Инициализировать можно и по половине шины 16bit, т.к. передача данных и информации к какому регистру обращаемся производится по младшим 8bit

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

Чтобы все это вкурить, надо не просто манипулировать библиотеками, но и понимать логику работы устройства.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Потрачено уйма времени на этот недоделанный дисплей. Он улетел на полку запасных, я его уже ненавижу :\

А Али экспресс решили спор в мою пользу и назначили полный возврат денег.

vis22
Offline
Зарегистрирован: 24.10.2015

Соболезную AlexRyzhю.

Для diger67, как раз SPI и присутствует на разъеме шилда.

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

vis22 пишет:

Соболезную AlexRyzhю.

Для diger67, как раз SPI и присутствует на разъеме шилда.

Да. присутствует, но используется для SD и xpt2046. К управлению TFT не имеет ни кокого отношения!!! 

vis22
Offline
Зарегистрирован: 24.10.2015

Для diger67.

Как и полагается для шины SPI её сигналы MOSI и CLK проходят через все устройства которые к ней подсоединены ( Touch screen, CD card, Flash  и TFT экран), а для выбора конкретного устройства используются линии CS ( T_CS для  Touch screen, CDCS для CD card, F_CS и CS для TFT экрана).

Все требуемые линии выбора CS выведены на разъем шилда, так что все должно работать.


 

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

Flash и Tuoch CS есть, не более того. К тмуже я с этим шилдом работал. Понимаю, но к сожалению в данном случае вы заблуждаетесь.

vis22
Offline
Зарегистрирован: 24.10.2015

Да. ну.... А китайцы очевидно маркируют выводы CS и CDCS просто для прикола.

Ну да пусть будет так.

 

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

Если не верите, купите шилд. Вы когда либо сами делали шилд. Брали TFT панель, разводили плату? Так вот, если вы в курсе, на плате должно быть предусмотренно коммутировать IMO0, IMO1, IMO2. которые позволяют выбирать протокол обмена с процессором. Если Вы покажите мне на данном шилде таковые возможности я сниму шляпу. В противном случае надо отдерать панель и перипаивать 0-перемычки на шлефе, если производитель предоставил такую возможность.

Я недавно купил шилд на R61581, там действительно можно выбрать любой из возможных протоколов, выведины все управляющие пины. Давно покупал панели ILI9341, там можно работать с 8bit, 16bit, SPI. Так что смотрите внимательней.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Вот это дсплей!!! https://www.youtube.com/watch?v=niA3aPu3-dQ

Подключил 4 провода и не морочь голову!!!

dovakin
Offline
Зарегистрирован: 05.01.2016

Всем доброго времени суток.Подскажите что за экран мне достался и можно ли его прикрутить к меге 2560?http://ru.aliexpress.com/item/free-shipping-3-2-TFT-LCD-Module-Display-Touch-Panel-PCB-adapter-wholesale-price/580034355.html

У меня этот экран должен быть подключен через такой шилд http://ru.aliexpress.com/item/Free-shipping-TFT-3-2-inch-Mega-Touch-LCD-Expansion-Board-Shield-IC-partial-pressure-for/32263354417.html?spm=2114.10010208.100010.1.yvvgUF

sadovod
Offline
Зарегистрирован: 09.10.2015

Я так же провозился с этим дисплеем и кроме белого экрана ничего добиться не смог.Жалко,что полгода прошло после покупки,а опробовать сразу не получалось.Жаль потраченных 500 рублей.Китаец на просьбу выслать библиотеки именно для этого дисплея так и не ответил.Для себя сделал вывод:если я не хардкорный электронщик связываться с такими дисплеями и им подобными нет смысла,уже валяется с пяток таких зверьков.Теперь решил еще раз потратится на дисплей немного другого уровня,дисплей nextion,и меньше проводов уходит для подключения,только RX TX, и своя среда создания.В общем тем кто собирается приобретать такой или подобный дисплей,лучше посмотрите в сторону дисплеев nextion,сэкономите нервы ))))

sva_khv
Offline
Зарегистрирован: 19.12.2016
Добрый день всем.
Запустил я данный дисплей.
Подключил как в этой теме написали.
Программу взял отсюда:
там только в коде подправить строчку включения библитеки #include <UTFT.h> 
 
И все заработало!
sva_khv
Offline
Зарегистрирован: 19.12.2016

И русские буквы прицепил.    http://грибовы.рф/?p=2240

sadovod
Offline
Зарегистрирован: 09.10.2015

А можно подробне о подключении?Вы все выводы Db подключили через 10кОм резистры или напрямую,а то на фото не понятно?И почему не удалось запустить тач?

sva_khv
Offline
Зарегистрирован: 19.12.2016

Подключил точно как в посте №4. Каждую из D0-D15 через отдельный резистор 10кОм.  Управляющие тоже как на картинке через 10кОм. и экран заработал!  

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

sva_khv
Offline
Зарегистрирован: 19.12.2016

Разобрался с работой тачпанели.  Все сложно. но возможно!

Эпопея с запуском описана сдесь:

http://arduino.ru/forum/apparatnye-voprosy/sensornyi-ekran-na-xpt2046-poluchilos#comment-247464

slavadp
Offline
Зарегистрирован: 07.02.2017

Добрый день, скажите есть ли возможность подключить этот дисплей к stm32f103c (или 103r)?

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

Конечно же есть. Даже можно воспользоваться средой arduino. Можно немного подумав переделать библиотеку adafruit. Что и было сделано, у меня работает с любым контроллером от stm использовал и ногодрыг, и SPI, и FMC(FSMC). http://www.stm32duino.com/viewtopic.php?f=19&t=1713  , это пример работы с FMC, тут наработки по ногодрыгу  http://www.stm32duino.com/viewtopic.php?f=9&t=474   .

 

slavadp
Offline
Зарегистрирован: 07.02.2017

Спасибо за ссылки. Посмотрел на второй пример stm32duino с ногодрыгом, он скомпилировался в ардуино, но он для 8бит дисплея. Есть ли у Вас пример по 16 бит для этого дисплея?

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

slavadp​, какой процессор stm32 вы используете и насколько принципиально работать в arduino IDE? Спрашиваю потому что работаю в Keil. И примеры могу только под Keil предложить.

slavadp
Offline
Зарегистрирован: 07.02.2017

Есть stm32f103c8t, stm32f103rbt, stm32f303cbt, думаю подойдут примеры из любой среды, постараюсь разобраться.

tofik91
Offline
Зарегистрирован: 14.02.2017

Подключил как в посте №4. Работает. Теперь подскажите а лучше нарисуйте как подключить тачскрин. Спасибо.

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

tofik91 пишет:

Подключил как в посте №4. Работает. Теперь подскажите а лучше нарисуйте как подключить тачскрин. Спасибо.

согласно либе UTouch , к пинам

//Standard Arduino Mega/Due shield            :  6, 5, 4, 3, 2

 TCLK, TCS, TDIN, TDOUT и IRQ.

UTouch  myTouch( 6, 5, 4, 3, 2);     

тоже через резисторы 10к

вот на схеме обозначены соответствия сигналов:

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

калибровка:

http://arduino.ru/forum/apparatnye-voprosy/sensornyi-ekran-na-xpt2046-poluchilos#comment-247713

описание либы UTouch:

https://geektimes.ru/post/258174/

 

slavadp
Offline
Зарегистрирован: 07.02.2017

diger67 пишет:

И примеры могу только под Keil предложить.

Если не сложно поделитесь, пожалуйста, примерами подключения под Keil. 

tofik91
Offline
Зарегистрирован: 14.02.2017

   Уважаемые гуру посмотрите тачскрин так подключать.

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

tofik91 пишет:
Уважаемые гуру посмотрите тачскрин так подключать.

посмотрел.

tofik91
Offline
Зарегистрирован: 14.02.2017

И что? Правильно или нет?

sva_khv
Offline
Зарегистрирован: 19.12.2016

Если коротко - у меги питание 5В у тача 3,3.  очень желательно согласовать.

и надо выводы выбора контроллеров CD карты и Флеш памяти заблокировать высоким уровнем, что-бы случайно в канал не полезли.

http://arduino.ru/forum/apparatnye-voprosy/sensornyi-ekran-na-xpt2046-poluchilos#comment-247455

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

Вам надо с использованием FMC или BitBang (ногодрыг)?