подкл к Ардуино Нано дисплей от Fly IQ239 TFT035K120FPC VER01
DB0 connects pin 2 Nano
DB1 connects pin 1 Nano
DB2 connects pin 5 Nano
DB3 connects pin 6 Nano
DB4 connects pin 7 Nano
DB5 connects pin 8 Nano
DB6 connects pin 9 Nano
DB7 connects pin 10 Nano
define LCD_CS A3 Nano
define LCD_CD A2 (RS) Nano
define LCD_WR A1 Nano
define LCD_RD A0 Nano
define LCD_RESET A4 Nano
через 10к
A0 - A7 через 10k
.....
D0 - D7 в читалке прописал согласно распиновки подключения к Нано
....
Неправильно подключили . Подключайте как в описании пока ничего не выдумывая , шина данных не переназначается , там прямая запись/чтение в цельный порт D0-D7 цельного байта. Ещё прозвоните соседние пины на резисторах , не коротнули ли чего там , или не оборвали ли резисторы.
// В других своих сообщениях , кликните если доступно "изменить" , кликнуть на код , на {...} , и в его свойствах поставить галку сворачивать по умолчанию.
//// если хотите сэкономить пины , то потом можете подключить по типу как в #118 Explay N1 . FMARK никуда не надо подключать. По дисплею Fly IQ239 , есть вероятность , позже его изучу , опишу как что его подключать, это 3.5" 480x320.
/////// сайт лагает по длинным темам, очень долго отправляет сообщение , поэтому достаточно один раз нажать "отправить" , и если хотите потом секунд через 20-30 , проверить его появление соседней вкладкой.
Есть Explay N1 Bomin TXDT350DH-129 8357DA107, как я понял что бы перевести на SPI надо подлесть к недостающим выводам на шлейфе(IM и SPI) у самого кристалла , можно поподробней как их найти справа слева от чего. Нужен большой дисплей по SPI.
Ну, большой дисплей и SPI - это вещи почти взаимоисключающие. Надеюсь, когда (если?) Вам удастся совместить одно с другим, форум не будет завален вопросами "А почему так медленно работает?", "А почему изображение мерцает?" и тому подобными.
Да я в курсе что нельзя, на самой красной плате перемычкой якобы можно переключить) И на входе шлейфа меняется с + на -, дальше дорожки нет, бутафория.
Попробовал. Все равно не работает. ПРинял решение считать дисплей неисправным и отложить вопрос до момента покупки еще одного. У меня магазин ПРофи по дороге на дачу :)
в продолжение темы #118, про подключение дисплея EXPLAY N1 3.5" 480x320
Подключение дисплея EXPLAY N1 по SPI
PavelP пишет:
slider.
Есть Explay N1 Bomin TXDT350DH-129 8357DA107, как я понял что бы перевести на SPI надо подлезть к недостающим выводам на шлейфе(IM и SPI) у самого кристалла , можно поподробней как их найти справа слева от чего. Нужен большой дисплей по SPI.
Спасибо.
Всё очень просто , много раз говорилось в теме , и размещали фото . Вкратце берёте из даташита распиновку предполагаемого кристалла:
и прикладываете к фотке своего дисплея:
Дорожки резать (синие полоски) , ( олды вспомнят как на сименсах резали для прошивки и анлока :) , или отверстия разработать с той стороны на эту , чтоб дорожки разорвать на ту сторону. IM2 надо подключить на + , как и IM0 IM1 для перевода в режим SPI 4пин. SDA это к MOSI, проще перекинуть на пин ID шлейфа дисплея , т.к. он не используется ( выпаяв ID резистивный делитель R1 R2 , они нужны были чтоб сотовый телефон АЦП распознал что это якобы его дисплей от его производителя и под его прошивку, или возможно чтоб если прошивка не может командами считать какой контроллер поставили в дисплей, то чтоб по резистивному дисплею распознавала какая партия дисплеев с другими контроллерами по договоренности с фабрикой (на случай если закончились одни контроллеры , ставят другие). Для этого в последующих прошивках телефонов ещё предусматривают иниты для нескольких возможных контроллеров в дисплеях ) SDA (MOSI) , CS , DC , WR (CLK) - это и есть 4 пин SPI . Ещё Reset , +3.3 , gnd . Катоды светодиодов подключил через резистор 10ом (можно 2..5 Ом) .
Для сигналов SPI использовал делитель 1ком+2ком , но надёжней будет с гораздо меньшими номиналами , к примеру 200ом+390ом , иначе CLK так заваливается что похож на синус . Или подключать напрямую , и питать ардуину от 3.3в.
Распиновка получилась такая (распиновка в примерах библиотек для ардуин на atmega328) :
SDA MOSI - D11 (для скетчей аппаратного SPI не указывается)
+3.3v
+3.3v
CS - D10 ( может переназначаться )
DC (RS) - D9 ( может переназначаться )
WR / SCK - D13 (для скетчей аппаратного SPI не указывается)
RST - D8 ( может переназначаться )
+ 3.3v
IM1 + 3.3v
IM0 + 3.3v
GND
K5
K4
K3
K2
K1
A
GND
// можно избавится еще от DC ( DataCommand , RS ) , и от Reset , но это другая история со своими + и - . Лучше использовать 4SPI+reset.
для быстрого старта, проверки дисплея:
в memorysaver.h оставляем закомментированный дизейбл только //#define DISABLE_ILI9341_S5P , остальные раскомментить.
Запустить пример пример \UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240_Serial
в нём UTFT myGLCD(ILI9341_S5P,MOSI,SCK,10,8,9);
// ( ILI9341_S5P, sda, scl, cs, rst , dc )
//UTFT myGLCD(ILI9341_S5P,MOSI,SCK,10,NOTINUSE,9);
UTFT myGLCD(ILI9341_S5P,MOSI,SCK,10,8,9);
// так-то софтовый SPI очень медленный . надо переводить на аппаратный , желательно поменять инит на ili9488, поставить разрешение 480х320
поддерживает контроллеры
ILI9325
ILI9328
ILI9341
HX8357D
HX8347G
HX8347I
ILI9486
ST7735S
SSD1283A
Пример LCDWIKI_SPI\Example\Example_01_clear_screen
строчка запуска LCDWIKI_SPI mylcd(ILI9486,10,9,8,A3); //hardware spi,cs,cd,reset,LED on off
Пример LCDWIKI_SPI\Example\Example_02_colligate_test\colligate_test
строчка запуска LCDWIKI_SPI my_lcd(ILI9488,10,9,8,A3); //hardware spi,cs,cd,reset
Пример LCDWIKI_SPI\Example\Example_03_display_string\display_string
строчка запуска LCDWIKI_SPI mylcd(ILI9488,10,9,8,A3);
Пример LCDWIKI_SPI\Example\Example_04_display_picture\display_picture
строчка запуска LCDWIKI_SPI my_lcd(ILI9488,10,9,8,A3);
Пример LCDWIKI_SPI\Example\Example_05_display_scroll\display_scroll
строчка запуска LCDWIKI_SPI my_lcd(ILI9488,10,9,8,A3);
.............
// заводится ещё на её инитах если указывать - ILI9341 , HX8357D , ST7735S . но надо подредактировать её инит ILI9486 - отзеркалить , а лучше применить нормальный или минимальный инит от ili9488
в файле User_Setup : выбрать контроллер и пины, выключить лишние шрифты чтоб памяти хватило
Section 1.
#define ILI9488_DRIVER
Section 2.
#define TFT_CS 10 // Chip select control pin D8
#define TFT_DC 9 // Data Command control pin
#define TFT_RST 8 // Reset pin (could connect to NodeMCU RST, see next line)
Section 3.
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
Section 4. без изменений
//This application does not rely on any libraries and it is for ILI9488
//This program is a demo of clearing screen to display black,white,red,green,blue.
//when using the BREAKOUT BOARD only and using these hardware spi lines to the LCD,
//the SDA pin and SCK pin is defined by the system and can't be modified.
//if you don't need to control the LED pin,you can set it to 3.3V and set the pin definition to -1.
//other pins can be defined by youself,for example
//pin usage as follow:
// SCK SDI/MOSI CS DC/RS RESET VCC GND
//Arduino Uno 13 11 10 9 8 5V/3.3V GND
//Remember to set the pins to suit your display module!
/********************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, QD electronic SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
**********************************************************************************/
#include <SPI.h>
#define CS 10
#define RS 9
#define RESET 8
void setup()
{
SPI_Init();
pinMode(CS,OUTPUT);
pinMode(RS,OUTPUT);
pinMode(RESET,OUTPUT);
digitalWrite(CS, HIGH);
digitalWrite(RS, HIGH);
digitalWrite(RESET, HIGH);
Lcd_Init();
}
void loop()
{
// закрашивание экрана
LCD_Clear(0xf800); // f800 красный
LCD_Clear(0x07E0); // 07E0 зеленый
LCD_Clear(0x001F); // 001F синий
LCD_Clear(0xFFFF); // FFFF белый
LCD_Clear(0x0); // 0 чёрный
// прямоугольники рандомные
for(int i=0;i<500;i++)
{
Rect(random(300),random(300),random(300),random(300),random(65535)); // rectangle at x, y, with, hight, color
}
}
void Lcd_Writ_Bus(unsigned char d)
{
SPI.transfer(d);
}
void Lcd_Write_Com(unsigned char VH)
{
*(portOutputRegister(digitalPinToPort(RS))) &= ~digitalPinToBitMask(RS);//LCD_RS=0;
Lcd_Writ_Bus(VH);
}
void Lcd_Write_Data(unsigned char VH)
{
*(portOutputRegister(digitalPinToPort(RS)))|= digitalPinToBitMask(RS);//LCD_RS=1;
Lcd_Writ_Bus(VH);
}
void Lcd_Write_Com_Data(unsigned char com,unsigned char dat)
{
Lcd_Write_Com(com);
Lcd_Write_Data(dat);
}
void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
Lcd_Write_Com(0x2a);
Lcd_Write_Data(x1>>8);
Lcd_Write_Data(x1);
Lcd_Write_Data(x2>>8);
Lcd_Write_Data(x2);
Lcd_Write_Com(0x2b);
Lcd_Write_Data(y1>>8);
Lcd_Write_Data(y1);
Lcd_Write_Data(y2>>8);
Lcd_Write_Data(y2);
Lcd_Write_Com(0x2c);
}
void SPI_Init(void)
{ // настройка аппаратного SPI
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV2); // при 16мгц : SPI_CLOCK_DIV2 =8MHz , SPI_CLOCK_DIV4 =4MHz
SPI.setBitOrder(MSBFIRST); // (наименьший разряд(бит) первый
SPI.setDataMode(SPI_MODE0); // Уровень сигнала (CPOL)-0 Фаза (CPHA)-0
}
void Lcd_Init(void)
{
digitalWrite(RESET,HIGH);
delay(5);
digitalWrite(RESET,LOW);
delay(15);
digitalWrite(RESET,HIGH);
delay(15);
digitalWrite(CS,LOW); //CS
Lcd_Write_Com(0xF7);
Lcd_Write_Data(0xA9);
Lcd_Write_Data(0x51);
Lcd_Write_Data(0x2C);
Lcd_Write_Data(0x82);
Lcd_Write_Com(0xC0);
Lcd_Write_Data(0x11);
Lcd_Write_Data(0x09);
Lcd_Write_Com(0xC1);
Lcd_Write_Data(0x41);
Lcd_Write_Com(0xC5);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x0A);
Lcd_Write_Data(0x80);
Lcd_Write_Com(0xB1);
Lcd_Write_Data(0xB0);
Lcd_Write_Data(0x11);
Lcd_Write_Com(0xB4);
Lcd_Write_Data(0x02);
Lcd_Write_Com(0xB6);
Lcd_Write_Data(0x02);
Lcd_Write_Data(0x22);
Lcd_Write_Com(0xB7);
Lcd_Write_Data(0xC6);
Lcd_Write_Com(0xBE);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x04);
Lcd_Write_Com(0xE9);
Lcd_Write_Data(0x00);
Lcd_Write_Com(0x36);
Lcd_Write_Data(0x08);
Lcd_Write_Com(0x3A);
Lcd_Write_Data(0x66);
Lcd_Write_Com(0xE0);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x07);
Lcd_Write_Data(0x10);
Lcd_Write_Data(0x09);
Lcd_Write_Data(0x17);
Lcd_Write_Data(0x0B);
Lcd_Write_Data(0x41);
Lcd_Write_Data(0x89);
Lcd_Write_Data(0x4B);
Lcd_Write_Data(0x0A);
Lcd_Write_Data(0x0C);
Lcd_Write_Data(0x0E);
Lcd_Write_Data(0x18);
Lcd_Write_Data(0x1B);
Lcd_Write_Data(0x0F);
Lcd_Write_Com(0xE1);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x17);
Lcd_Write_Data(0x1A);
Lcd_Write_Data(0x04);
Lcd_Write_Data(0x0E);
Lcd_Write_Data(0x06);
Lcd_Write_Data(0x2F);
Lcd_Write_Data(0x45);
Lcd_Write_Data(0x43);
Lcd_Write_Data(0x02);
Lcd_Write_Data(0x0A);
Lcd_Write_Data(0x09);
Lcd_Write_Data(0x32);
Lcd_Write_Data(0x36);
Lcd_Write_Data(0x0F);
Lcd_Write_Com(0x11); //Exit Sleep
delay(120);
Lcd_Write_Com(0x29); //Display on
digitalWrite(CS,HIGH);
}
void H_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)
{
unsigned int i,j;
digitalWrite(CS,LOW);
Lcd_Write_Com(0x02c); //write_memory_start
//digitalWrite(RS,HIGH);
l=l+x;
Address_set(x,y,l,y);
j=l*2;
for(i=1;i<=j;i++)
{
Lcd_Write_Data((c>>8)&0xF8);
Lcd_Write_Data((c>>3)&0xFC);
Lcd_Write_Data(c<<3);
}
digitalWrite(CS,HIGH);
}
void V_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)
{
unsigned int i,j;
digitalWrite(CS,LOW);
Lcd_Write_Com(0x02c); //write_memory_start
//digitalWrite(RS,HIGH);
l=l+y;
Address_set(x,y,x,l);
j=l*2;
for(i=1;i<=j;i++)
{
Lcd_Write_Data((c>>8)&0xF8);
Lcd_Write_Data((c>>3)&0xFC);
Lcd_Write_Data(c<<3);
}
digitalWrite(CS,HIGH);
}
void Rect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{
H_line(x , y , w, c);
H_line(x , y+h, w, c);
V_line(x , y , h, c);
V_line(x+w, y , h, c);
}
void Rectf(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{
unsigned int i;
for(i=0;i<h;i++)
{
H_line(x , y , w, c);
H_line(x , y+i, w, c);
}
}
int RGB(int r,int g,int b)
{
return r << 16 | g << 8 | b;
}
void LCD_Clear(unsigned int j)
{
unsigned int i,m;
digitalWrite(CS,LOW);
Address_set(0,0,320,480);
for(i=0;i<320;i++)
for(m=0;m<480;m++)
{
Lcd_Write_Data((j>>8)&0xF8);
Lcd_Write_Data((j>>3)&0xFC);
Lcd_Write_Data(j<<3);
}
digitalWrite(CS,HIGH);
}
6.быстрая SPI либа Adafruit_ILI9341 закрашивающая любой цветза 0.54сек https://github.com/adafruit/Adafruit_ILI9341 + GFX старенькие графич. функции v1.5.3. https://github.com/adafruit/Adafruit-GFX-Library/releases/tag/1.5.3 . В файле Adafruit_ILI9341.h изменить разрешение 240->320 , 320->480 . В примере Adafruit_ILI9341\examples\graphicstest , перед tft.begin(); прописать RESET - pinMode(8, OUTPUT); delay(15); digitalWrite(8, HIGH);delay(15);
Либа работает быстро, благодаря функции yield(); которая передает выполнение программы дальше , не дожидаясь пока закончится выполнение основной медленной функции. На осциллографе видно что между пакетами SPI=1мкс проходит время паузы равное 0.5-1 пакету , а не как в других либах до 4х времён пакетов.
// 7. навороченная универсальная библиотека GxTFT , заливка цвета 0,65сек . https://github.com/ZinggJM/GxTFT
пример GxTFT\examples\GxTFT_graphicstest , в нём надо будет раскомментить:
// ***> select one GxIO class (or select a pre-configured display below) <***
// **************************************************************************
#include <GxIO/GxIO_SPI/GxIO_SPI.h>
// ***> select one GxCTRL class (or select a pre-configured display below) <***
// ****************************************************************************
#include <GxCTRL/GxCTRL_ILI9488/GxCTRL_ILI9488.h>
// ***> create instance for the selected GxIO class (or select a pre-configured display below) <***
// *******************************************************************************
// ***> or create instance for SPI, the constructor needs parameters (or ...) <***
GxIO_Class io(SPI, 10, 9, 8);
// ***> create instance for the selected GxCTRL class (or select a pre-configured display below) <***
// ***************************************************************************************************
GxCTRL_Class controller(io); // #define GxCTRL_Class is in the selected header file
// ***> select one or adapt (or select a pre-configured display below) <***
// ************************************************************************
TFT_Class tft(io, controller, 480, 320); // landscape HVGA 320x480 or 3.5inch RPI Display
и в примере закомментить вывод регистров на экран , т.к. с дисплея не подключен MOSI , поэтому чтение регистров невозможно
На STM32 BluePill , ESP8266 , ESP32 пока некогда проверить , библиотек подходящих много, некоторые из приведённых выше.
andriano пишет:
... "Быстро" - это сколько? ...
Почти одинаково ! Если сравнить на Arduino UNO 8бит UTFT , 8 Бит Adafruit с библиотеками SPI , имеем те же 1.7сек (или даже 0.5-0.6сек в зависимости от SPI либы) на заливку цветом 320x480 . Заливка чёрным и белым на 8бит грубо в 0.5сек. В общем получаем что некоторые библиотеки либы SPI закрашивают экран быстрее чем в режиме 8бит !
// в Атмеге328 нет аппаратного ускорителя SPI, и на каждый бит SPI приходится минимум 2такта процессора ( и того более 16тактов надо), когда чтоб передать сразу 8бит в цельный порт , требуется столько же времени. Мож чего где просмотрел, скорость библиотек SPI выше чем 8бит.
16бит же на ArduinoMega заливка в 0.2-0.3сек независимо от цвета.
zon63 пишет:
Есть дисплей от Fli IQ238 Интересует что за сигнал на 46 ноге LCD_ID_ADC ....
Для нас незачем. Но вы можете придумать своё , чтоб к примеру только дисплеи от вас, подходили к вашему серийному устройству , типа защита от дурака ; или распознавание дисплея какой драйвер использовать . Чуть выше описал в этом же сообщении.
Решил воспользоваться инфо от slider (пост #3362) и попробовать подключить дисплей от Explay #1 по SPI.
Но! Оказалось, что на шлейфах всех пяти моих дисплеев точки подключения к шинам SDO и IM2 жестко "пришиты" к GND. Пришлось резать дорожки GND с обратной стороны шлейфа, заодно там образовались удобные точки подключения.
Надеюсь, так лучше видно. Подскажите пожалуйста, если ориентироваться со стороны, где прописана модель дисплея, откуда идет отсчет пинов? Питание планируется от 3.3 вольт от Mega2560. На каждый вывод надо ставить сопротивление? Какое сопротивление желательно? Есть ли еще какая-то обвязка? Заранее благодарю за ответ!
Друзья помогите разобратся как подключить TFT Дисплей к стм32 распиновку дисплея нашел но совместить с распиновкай контролера у меня не получается нет опыта в таких делах
Друзья помогите разобратся как подключить TFT Дисплей к стм32 распиновку дисплея нашел но совместить с распиновкай контролера у меня не получается нет опыта в таких делах
А в чем проблема то?
Если дисплей подключается по SPI, значит, лучше всего и подключать к аппаратному SPI, а если нет - то вообще без разницы.
аппаратный спай как я понял уже настроен на дисплей именно этот. т.е. нужно ковырять то баахло от куда его вынул. по другому читалку пробовал,нет. во первых нужно знать 8 или 16 бит а спаи читалка не берёт. пробовал 3 дисплейчика спай подключить. фига
я пробовал ковырять те мобилы, от куда вытащил. названия и марку мобил знаю,инфы нет. тупик.вот валяются жирненькие дисплейчики... искал схемы мобил, всё не то, но скачал другие на всякий. где то валяются. короче голяк. хрен запустишь
я владимир. очень далеко не егэ. слишком старый я. во первых хотел узнать есть ли читалка ардуино именно и в дальнейшем порт спиай. второе, сколько именно используется пинов под дисплеи спай. может я чтото и путаю но там у меня идёт вроде 11 пинов
вот и я так думал изначально. спаий и аитуси. может перепутал, но там 2 пина в отличии от3 . а у мненя идёт 11 пинов. - 2 пит,2 - подсветка.остаётся 7. не идёт на 8 бит . и каое тогда подключение? обших проводов нет. вроде все используются. ну на крайняк 4 или 6 бит. я хз
вот я и говорю. можно подключить 8 битные.можно подключить16 битные при условии или по 16 бит, или что знаешь как перевести 16 на 8. а по другим портам или инфы нет. так что хрень это всё (в большей степени)
//// если хотите сэкономить пины , то потом можете подключить по типу как в #118 Explay N1 . FMARK никуда не надо подключать. По дисплею Fly IQ239 , есть вероятность , позже его изучу , опишу как что его подключать, это 3.5" 480x320.
/////// сайт лагает по длинным темам, очень долго отправляет сообщение , поэтому достаточно один раз нажать "отправить" , и если хотите потом секунд через 20-30 , проверить его появление соседней вкладкой.
Добрый день, уважаемые коллеги!
Купил дисплей EXPLAY N1. С некоторыми усилиями завел его от stm32f103c8t6 (blue pill).
На полном ините не работает, слегка помаргивает но и только. Заработал на минимальном ините.
Сделал все что хотел - работает ориентация и все такое.
Купил второй дисплей. Сделал второй модуль. Не работает совсем. Проверил все:
зная, что может быть два контроллера (ILI9488 или HX8357-D) - проверил команды инициализации. Для минимального инита они совпадают.
Дисплеи разные: надпись на шлейфе рабочего Bomin, а нерабочего CXS (или XS). На фото рабочий - нижний.
Прошу помощи: почему не работает? Мои кривые руки? Неверный инит? Неисправный дисплей?
Попробуй:
slider.
Есть Explay N1 Bomin TXDT350DH-129 8357DA107, как я понял что бы перевести на SPI надо подлесть к недостающим выводам на шлейфе(IM и SPI) у самого кристалла , можно поподробней как их найти справа слева от чего. Нужен большой дисплей по SPI.
Спасибо.
Нужен большой дисплей по SPI.
andriano.
Уже стоит на 2.4" ili9341 240*320 SPI на ESP32 работает быстро. У Explay N1 чутка поболе разрешение, видео обещаю не смотреть.
andriano.
Уже стоит на 2.4" ili9341 240*320 SPI на ESP32 работает быстро. У Explay N1 чутка поболе разрешение, видео обещаю не смотреть.
"Быстро" - это сколько?
Сколько, например, времени нужно для заливки экрана одним цветом?
Сколько времени нужно для переноса изображения с SD карты на дисплей?
Вот я сам недавно перепаял экран с параллельного интерфейса на SPI http://arduino.ru/forum/proekty/bibliotechka-dlya-oled-displeya-ssd1322-4-wire-spi-256x64-16-ottenkov-serogo
но сразу пришлось позаботиться и о скорости работы, которая, на мой взгляд, осталась приемлемой: 13.7 мс для вывода изображения на весь экран.
Похоже ваш дисплей на ILI9488
рабочая библиотека http://www.lcdwiki.com/res/Program/Arduino/3.95inch/Mega2560_8BIT_ILI948...
andriano.
Уже стоит на 2.4" ili9341 240*320 SPI на ESP32 работает быстро. У Explay N1 чутка поболе разрешение, видео обещаю не смотреть.
чутка это в 2 раза, допускаю что 10 кадров в сек достижимо при условии работоспособности шины spi на частоте 25mhz
Попробовал. Все равно не работает. ПРинял решение считать дисплей неисправным и отложить вопрос до момента покупки еще одного. У меня магазин ПРофи по дороге на дачу :)
Библиотека U8g2
Cледующий дисплей FCA6071-51/E1110DX9 на таком же контроллере ST7565.
Распиновка : 9 pin
Такой же, FCA6071-51/E0914DX9 (SDIA6071-51/A090226A) Вынул из pin-pad POS-терминала.
Подключил к Wemos-d1.
Подсветка от 3,3 вольт не заработала. Подключил напрямую к 5 вольтам.
Есть дисплей от Fli IQ238 Интересует что за сигнал на 46 ноге LCD_ID_ADC
в продолжение темы #118, про подключение дисплея EXPLAY N1 3.5" 480x320
Подключение дисплея EXPLAY N1 по SPI
slider.
Есть Explay N1 Bomin TXDT350DH-129 8357DA107, как я понял что бы перевести на SPI надо подлезть к недостающим выводам на шлейфе(IM и SPI) у самого кристалла , можно поподробней как их найти справа слева от чего. Нужен большой дисплей по SPI.
Спасибо.
Всё очень просто , много раз говорилось в теме , и размещали фото . Вкратце берёте из даташита распиновку предполагаемого кристалла:
и прикладываете к фотке своего дисплея:
Дорожки резать (синие полоски) , ( олды вспомнят как на сименсах резали для прошивки и анлока :) , или отверстия разработать с той стороны на эту , чтоб дорожки разорвать на ту сторону.
IM2 надо подключить на + , как и IM0 IM1 для перевода в режим SPI 4пин.
SDA это к MOSI, проще перекинуть на пин ID шлейфа дисплея , т.к. он не используется ( выпаяв ID резистивный делитель R1 R2 , они нужны были чтоб сотовый телефон АЦП распознал что это якобы его дисплей от его производителя и под его прошивку, или возможно чтоб если прошивка не может командами считать какой контроллер поставили в дисплей, то чтоб по резистивному дисплею распознавала какая партия дисплеев с другими контроллерами по договоренности с фабрикой (на случай если закончились одни контроллеры , ставят другие). Для этого в последующих прошивках телефонов ещё предусматривают иниты для нескольких возможных контроллеров в дисплеях )
SDA (MOSI) , CS , DC , WR (CLK) - это и есть 4 пин SPI . Ещё Reset , +3.3 , gnd . Катоды светодиодов подключил через резистор 10ом (можно 2..5 Ом) .
Для сигналов SPI использовал делитель 1ком+2ком , но надёжней будет с гораздо меньшими номиналами , к примеру 200ом+390ом , иначе CLK так заваливается что похож на синус . Или подключать напрямую , и питать ардуину от 3.3в.
Распиновка получилась такая (распиновка в примерах библиотек для ардуин на atmega328) :
// можно избавится еще от DC ( DataCommand , RS ) , и от Reset , но это другая история со своими + и - . Лучше использовать 4SPI+reset.
Библиотек под SPI ili9488 в инете много и для разного железа.
Для Arduino UNO заработали:
1. UTFT (софтовый SPI) http://www.rinkydinkelectronics.com/library.php?id=51 , работает медленно
2. Adafruit ILI9488 SPI (аппаратный SPI) , работает почему-то медленно
https://www.google.com/search?q=Adafruit+ILI9488+SPI ( https://github.com/jaretburkett/ILI9488 , https://learn.adafruit.com/adafruit-3-5-color-320x480-tft-touchscreen-breakout/spi-wiring-and-test , https://www.instructables.com/Arduino-and-35-Inch-320x480-TFT-LCD-ILI9488-SPI-In/ , http://www.lcdwiki.com/3.5inch_SPI_Module_ILI9488_SKU:MSP3520 )
3. LCDWIKI_SPI (аппаратный SPI) , заливка 1.7сек
https://github.com/lcdwiki/LCDWIKI_SPI + https://github.com/lcdwiki/LCDWIKI_gui
4. TFT_eSPI навороченная, универсальная, очень много примеров. заливка 1 сек
https://github.com/Bodmer/TFT_eSPI ( https://www.arduino.cc/reference/en/libraries/tft_espi/ , https://www.arduinolibraries.info/libraries/tft_e-spi )
пример
в файле User_Setup : выбрать контроллер и пины, выключить лишние шрифты чтоб памяти хватило
5. тэсты из 3.5inch_SPI_Module_ILI9488_MSP3520_V1.1 , и simple test не требующий библиотек с заливкой в 1.7сек
http://www.lcdwiki.com/res/Program/Common_SPI/3.5inch/SPI_ILI9488_MSP3520_V1.1/3.5inch_SPI_Module_ILI9488_MSP3520_V1.1.zip ( взято с этой странички http://www.lcdwiki.com/3.5inch_SPI_Module_ILI9488_SKU:MSP3520 )
6. быстрая SPI либа Adafruit_ILI9341 закрашивающая любой цвет за 0.54сек
https://github.com/adafruit/Adafruit_ILI9341 + GFX старенькие графич. функции v1.5.3. https://github.com/adafruit/Adafruit-GFX-Library/releases/tag/1.5.3 . В файле Adafruit_ILI9341.h изменить разрешение 240->320 , 320->480 . В примере Adafruit_ILI9341\examples\graphicstest , перед tft.begin(); прописать RESET - pinMode(8, OUTPUT); delay(15); digitalWrite(8, HIGH);delay(15);
Либа работает быстро, благодаря функции yield(); которая передает выполнение программы дальше , не дожидаясь пока закончится выполнение основной медленной функции. На осциллографе видно что между пакетами SPI=1мкс проходит время паузы равное 0.5-1 пакету , а не как в других либах до 4х времён пакетов.
// 7. навороченная универсальная библиотека GxTFT , заливка цвета 0,65сек . https://github.com/ZinggJM/GxTFT
пример GxTFT\examples\GxTFT_graphicstest , в нём надо будет раскомментить:
и в примере закомментить вывод регистров на экран , т.к. с дисплея не подключен MOSI , поэтому чтение регистров невозможно
//GxReportRegisters();
//delay(5000);
//while(1) yield();
//GxTestReadGRAM();
delay(5000);
На STM32 BluePill , ESP8266 , ESP32 пока некогда проверить , библиотек подходящих много, некоторые из приведённых выше.
... "Быстро" - это сколько? ...
Почти одинаково ! Если сравнить на Arduino UNO 8бит UTFT , 8 Бит Adafruit с библиотеками SPI , имеем те же 1.7сек (или даже 0.5-0.6сек в зависимости от SPI либы) на заливку цветом 320x480 . Заливка чёрным и белым на 8бит грубо в 0.5сек. В общем получаем что некоторые библиотеки либы SPI закрашивают экран быстрее чем в режиме 8бит !
// в Атмеге328 нет аппаратного ускорителя SPI, и на каждый бит SPI приходится минимум 2такта процессора ( и того более 16тактов надо), когда чтоб передать сразу 8бит в цельный порт , требуется столько же времени. Мож чего где просмотрел, скорость библиотек SPI выше чем 8бит.
16бит же на ArduinoMega заливка в 0.2-0.3сек независимо от цвета.
Есть дисплей от Fli IQ238 Интересует что за сигнал на 46 ноге LCD_ID_ADC ....
Для нас незачем. Но вы можете придумать своё , чтоб к примеру только дисплеи от вас, подходили к вашему серийному устройству , типа защита от дурака ; или распознавание дисплея какой драйвер использовать . Чуть выше описал в этом же сообщении.
Спасибо slider за фото.
Разводка дорожек на шлейфе совпадает. Вроде все понятно, думал будет сложней.
Подключать буду к ESP32 там аппаратный SPI до 40Мгц. В сети много видео про ESP32 и дисплеи на SPI, на глаз скорость меня устраивает.
Здравствуйте!
Прошу помочь. Имел ли ктото опыт подключения TFT8K1073FPC-A1-E ?
К сожалению по нему нашел лишь частичное упоминание в интернете (снятый лот в алиэкспрессе) без указания выводов для подключения.
ФОТО
Прилагаю еще фото
Прилагаю еще фото
Прилагаю еще фото
0,1,2,3 это CS, DS, WR, RD или наоборот.
Фотка замыленная. Не видно проводников, поэтому сказать про переключение
8-16 бит по этой фотке не подскажу. Посмотри нормальные фотки в ветке.
Например пост 3338.
Извини, забыл про фотку.
Эти места поподробнее сфоткай.
SSD1283A + Wemos D1.
Не уверен, что он от "сотиков", но все же. Кому нибудь пригодится.
"Русификация" библиотеки - http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafruit-gfx-i-vyvod-russkikh-bukv-na-displei-v-kodi?page=9#comment-546891
Кстати, "\n" (принудительный перенос строки) в gfx->println работает.
gfx->println(utf8rus("Я тебя целую В твой холодный носик. \nДо свиданья, Киска! Твой любимый пёсик."));
Помогите опознать дисплеи.
TM18156ACCWGWC и TM18140ACCWGWC.
Второй 181х40 точек. Первый наверное (было бы логично) 181х56. Из телефонных аппаратов Avaya.
Шлейф
Нашел что-то похожее по подключению.
Если такое подключение, значит надо еще 5 конденсаторов подключать.
Решил воспользоваться инфо от slider (пост #3362) и попробовать подключить дисплей от Explay #1 по SPI.
Но! Оказалось, что на шлейфах всех пяти моих дисплеев точки подключения к шинам SDO и IM2 жестко "пришиты" к GND. Пришлось резать дорожки GND с обратной стороны шлейфа, заодно там образовались удобные точки подключения.
Где резал, отмечено красным. Уважаемый slider, прошу извинить - воспользовался Вашим снимком.
SDA выведена на 1-й pin шлейфа (резисторы R1, R2 отпаяны), IM2 на 40-й pin FPC адаптера.
Надеюсь, так лучше видно. Подскажите пожалуйста, если ориентироваться со стороны, где прописана модель дисплея, откуда идет отсчет пинов? Питание планируется от 3.3 вольт от Mega2560. На каждый вывод надо ставить сопротивление? Какое сопротивление желательно? Есть ли еще какая-то обвязка? Заранее благодарю за ответ!
Посмотри пост 3362. Там вырезка из даташита. На ней видна последовательность выводов.
Выводы RD, WR, RS, CS могут выходить наоборот. Это зависит от контроллера.
Нужно пробывать и так и наоборот.
Теперь про шину данных 8-16 бит. Посмотри пост 3328. Там таблица для вариантов подключения
сигналов IM. Сопоставь свой дисплей и поймешь как включена у тебя шина. На 8 бит или на 16 бит.
Соответственно перепаяв IM0 можешь переключаться на 8 или 16 бит. IM2 всегда 0.
Это то место, которое ты нормально не сфоткал. Не видно.
Подключения есть в библиотеках, которые будешь использовать и в документации к ним.
Запусти читалку. Она определит контроллер. Я не работаю с ардуиной, подсказать не могу.
Если ардуина на 5 вольт, то делители нужны. Подсветку тоже через резисторы.
Прочитай хотя бы 10 страниц форума с начала. Там СЛАЙДЕР многое описывает.
Удачи.
Сегодня попала в руки крайне прелюбопытная вещь - электронный ценник:
Есть какая либо информация по данному экрану и контроллеру?
to alls Подскажите чем можно смыть или размягчить покрытие меди (дорожек) на шлейфе дисплея.
Друзья помогите разобратся как подключить TFT Дисплей к стм32 распиновку дисплея нашел но совместить с распиновкай контролера у меня не получается нет опыта в таких делах
Друзья помогите разобратся как подключить TFT Дисплей к стм32 распиновку дисплея нашел но совместить с распиновкай контролера у меня не получается нет опыта в таких делах
Если дисплей подключается по SPI, значит, лучше всего и подключать к аппаратному SPI, а если нет - то вообще без разницы.
ну да все так и бросились помогать. 8бит 16бит куда ни шло.а поспиай хрен кто поможет
аппаратный спай как я понял уже настроен на дисплей именно этот. т.е. нужно ковырять то баахло от куда его вынул. по другому читалку пробовал,нет. во первых нужно знать 8 или 16 бит а спаи читалка не берёт. пробовал 3 дисплейчика спай подключить. фига
я пробовал ковырять те мобилы, от куда вытащил. названия и марку мобил знаю,инфы нет. тупик.вот валяются жирненькие дисплейчики... искал схемы мобил, всё не то, но скачал другие на всякий. где то валяются. короче голяк. хрен запустишь
аппаратный спай я вспомнил. любая стм хоть один должна иметь. проблема в управлении
Какой дисплей, к какому стм, по какой шине?????
так читалка вроде спай не работает или уж другая?
спай
может хоть мне частично поможешь разобраться?
криворук не пиши 500 сообщений по два слова, дитя ЕГЕ. Не плоди пятьсот сообщений.
А то всю ветку на 70 страниц расписали, а пользы на 10 страниц.
Пиши одно сообщение на 500 предложений.
Теперь пиши какие проблемы с подключением. Чем смогу, помогу.
Только не как Ivan1995z. Конкретно пиши.
я владимир. очень далеко не егэ. слишком старый я. во первых хотел узнать есть ли читалка ардуино именно и в дальнейшем порт спиай. второе, сколько именно используется пинов под дисплеи спай. может я чтото и путаю но там у меня идёт вроде 11 пинов
Про читалку лучше спросить у СПАЙДЕРА. Я на ардуине не программирую.
SPI бывает 3-х проводный или 4-х проводный.
хорошо, по пинам то как? в смысле количества
спайдер или слайдер?
хорошо, по пинам то как? в смысле количества
https://ru.wikipedia.org/wiki/Serial_Peripheral_Interface
вот и я так думал изначально. спаий и аитуси. может перепутал, но там 2 пина в отличии от3 . а у мненя идёт 11 пинов. - 2 пит,2 - подсветка.остаётся 7. не идёт на 8 бит . и каое тогда подключение? обших проводов нет. вроде все используются. ну на крайняк 4 или 6 бит. я хз
Криворук. Почитай хоть чуть-чуть матчасть.
Если нет информации по дисплею, то вряд ли подключишь.
так вот думаю зачем тогда читалка
Смотри пост 3397
напомни пж как пост наити.не помню. давно здесь не был
вот я и говорю. можно подключить 8 битные.можно подключить16 битные при условии или по 16 бит, или что знаешь как перевести 16 на 8. а по другим портам или инфы нет. так что хрень это всё (в большей степени)