-
Arduino TFT 3.2" + Touch Panel
Пришел вот такой девайс: http://www.ebay.com/itm/TFT-3-2-320-...item3f044f6832
Мучаюсь второй день как подключать к Arduino MEGA ......
В "оригинальной" схеме, которая предлагается и для 2.4" экранов след. распиновка:
DB8-DB15 to D0-D7 of Arduino, DB0-DB8 to GND - видимо очепятка здесь, сделал до DB7.
RS to D8, WR to D9, RD to 3.3v, CS to D10, RESET to D11, VCC to 5V, GND to GND.
Так вот, VCC посадил на +3.3 вольта, как написано красным шрифтом к описания экрана.
D0-D7 - как понимаю у ардуино на группе PWM, 0 и 1 вывод это TX и RX.
Так же когда спаял первый раз - экран вообще никак не отреагировал, даже подсветка не загорелась.
По схеме ясно, что + подается на подсветку (LEDA), а минуса нету, посадил минус на LEDK - и хотябы подсветка загорается.
-
Re: Arduino TFT 3.2" + Touch Panel
А каким скетчем пользуешся?
Даташит на дисплей здесь
-
Re: Arduino TFT 3.2" + Touch Panel
Хмм, сейчас попробовал переключиться на 16ти битный режим, тоже самое.... все глухо.
Родной скетч, который прилагается не копилируется, слизал с инета.
Дело в том, что на экране вообще ничего нету...
Кстате, идет вместе с data.c - куда файл этот кидать?
PHP код:
#include <avr/pgmspace.h>
#define LCD_RS 8
#define LCD_WR 9
#define LCD_CS 10
#define LCD_REST 11
extern unsigned char image[3200];
void LCD_Writ_Bus(char VH,char VL)
{
unsigned char i,temp,data;
data=VH;
for(i=0;i<8;i++)
{
temp=(data&0x01);
if(temp)
digitalWrite(i,HIGH);
else
digitalWrite(i,LOW);
data=data>>1;
}
digitalWrite(LCD_WR,LOW);
digitalWrite(LCD_WR,HIGH);
data=VL;
for(i=0;i<8;i++)
{
temp=(data&0x01);
if(temp)
digitalWrite(i,HIGH);
else
digitalWrite(i,LOW);
data=data>>1;
}
digitalWrite(LCD_WR,LOW);
digitalWrite(LCD_WR,HIGH);
}
void LCD_Write_COM(char VH,char VL) //发送命令
{
digitalWrite(LCD_RS,LOW);
LCD_Writ_Bus(VH,VL);
}
void LCD_Write_DATA(char VH,char VL) //发送数据
{
digitalWrite(LCD_RS,HIGH);
LCD_Writ_Bus(VH,VL);
}
void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
LCD_Write_COM(0x00,0x20);
LCD_Write_DATA(x1>>8,x1);
LCD_Write_COM(0x00,0x21);
LCD_Write_DATA(y1>>8,y1);
LCD_Write_COM(0x00,0x50);
LCD_Write_DATA(x1>>8,x1);
LCD_Write_COM(0x00,0x52);
LCD_Write_DATA(y1>>8,y1);
LCD_Write_COM(0x00,0x51);
LCD_Write_DATA(x2>>8,x2);
LCD_Write_COM(0x00,0x53);
LCD_Write_DATA(y2>>8,y2);
LCD_Write_COM(0x00,0x22);
}
void LCD_Init(void)
{
digitalWrite(LCD_REST,HIGH);
delay(5);
digitalWrite(LCD_REST,LOW);
delay(5);
digitalWrite(LCD_REST,HIGH);
delay(5);
digitalWrite(LCD_CS,LOW);
//************* Start Initial Sequence **********//
LCD_Write_COM(0x00,0xE5);
LCD_Write_DATA(0x78,0xF0); // set SRAM internal timing
LCD_Write_COM(0x00,0x01);
LCD_Write_DATA(0x01,0x00); // set SS and SM bit
LCD_Write_COM(0x00,0x02);
LCD_Write_DATA(0x07,0x00); // set 1 line inversion
LCD_Write_COM(0x00,0x03);
LCD_Write_DATA(0x10,0x30); // set GRAM write direction and BGR=1.
LCD_Write_COM(0x00,0x04);
LCD_Write_DATA(0x00,0x00); // Resize register
LCD_Write_COM(0x00,0x08);
LCD_Write_DATA(0x02,0x07); // set the back porch and front porch
LCD_Write_COM(0x00,0x09);
LCD_Write_DATA(0x00,0x00); // set non-display area refresh cycle ISC[3:0]
LCD_Write_COM(0x00,0x0A);
LCD_Write_DATA(0x00,0x00); // FMARK function
LCD_Write_COM(0x00,0x0C);
LCD_Write_DATA(0x00,0x00); // RGB interface setting
LCD_Write_COM(0x00,0x0D);
LCD_Write_DATA(0x00,0x00); // Frame marker Position
LCD_Write_COM(0x00,0x0F);
LCD_Write_DATA(0x00,0x00); // RGB interface polarity
//*************Power On sequence ****************//
LCD_Write_COM(0x00,0x10);
LCD_Write_DATA(0x00,0x00); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM(0x00,0x11);
LCD_Write_DATA(0x00,0x07); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_Write_COM(0x00,0x12);
LCD_Write_DATA(0x00,0x00); // VREG1OUT voltage
LCD_Write_COM(0x00,0x13);
LCD_Write_DATA(0x00,0x00); // VDV[4:0] for VCOM amplitude
LCD_Write_COM(0x00,0x07);
LCD_Write_DATA(0x00,0x01);
delay(50); // Dis-charge capacitor power voltage
LCD_Write_COM(0x00,0x10);
LCD_Write_DATA(0x10,0x90); // 1490//SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM(0x00,0x11);
LCD_Write_DATA(0x02,0x27); // DC1[2:0], DC0[2:0], VC[2:0]
delay(50); // Delay 50ms
LCD_Write_COM(0x00,0x12);
LCD_Write_DATA(0x00,0x1F); //001C// Internal reference voltage= Vci;
delay(50); // Delay 50ms
LCD_Write_COM(0x00,0x13);
LCD_Write_DATA(0x15,0x00); //0x1000//1400 Set VDV[4:0] for VCOM amplitude 1A00
LCD_Write_COM(0x00,0x29);
LCD_Write_DATA(0x00,0x27); //0x0012 //001a Set VCM[5:0] for VCOMH //0x0025 0034
LCD_Write_COM(0x00,0x2B);
LCD_Write_DATA(0x00,0x0D); // Set Frame Rate 000C
delay(50); // Delay 50ms
LCD_Write_COM(0x00,0x20);
LCD_Write_DATA(0x00,0x00); // GRAM horizontal Address
LCD_Write_COM(0x00,0x21);
LCD_Write_DATA(0x00,0x00); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
LCD_Write_COM(0x00,0x30);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x00,0x31);
LCD_Write_DATA(0x07,0x07);
LCD_Write_COM(0x00,0x32);
LCD_Write_DATA(0x03,0x07);
LCD_Write_COM(0x00,0x35);
LCD_Write_DATA(0x02,0x00);
LCD_Write_COM(0x00,0x36);
LCD_Write_DATA(0x00,0x08);//0207
LCD_Write_COM(0x00,0x37);
LCD_Write_DATA(0x00,0x04);//0306
LCD_Write_COM(0x00,0x38);
LCD_Write_DATA(0x00,0x00);//0102
LCD_Write_COM(0x00,0x39);
LCD_Write_DATA(0x07,0x07);//0707
LCD_Write_COM(0x00,0x3C);
LCD_Write_DATA(0x00,0x02);//0702
LCD_Write_COM(0x00,0x3D);
LCD_Write_DATA(0x1D,0x04);//1604
//------------------ Set GRAM area ---------------//
LCD_Write_COM(0x00,0x50);
LCD_Write_DATA(0x00,0x00); // Horizontal GRAM Start Address
LCD_Write_COM(0x00,0x51);
LCD_Write_DATA(0x00,0xEF); // Horizontal GRAM End Address
LCD_Write_COM(0x00,0x52);
LCD_Write_DATA(0x00,0x00); // Vertical GRAM Start Address
LCD_Write_COM(0x00,0x53);
LCD_Write_DATA(0x01,0x3F); // Vertical GRAM Start Address
LCD_Write_COM(0x00,0x60);
LCD_Write_DATA(0xA7,0x00); // Gate Scan Line
LCD_Write_COM(0x00,0x61);
LCD_Write_DATA(0x00,0x01); // NDL,VLE, REV
LCD_Write_COM(0x00,0x6A);
LCD_Write_DATA(0x00,0x00); // set scrolling line
//-------------- Partial Display Control ---------//
LCD_Write_COM(0x00,0x80);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x00,0x81);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x00,0x82);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x00,0x83);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x00,0x84);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x00,0x85);
LCD_Write_DATA(0x00,0x00);
//-------------- Panel Control -------------------//
LCD_Write_COM(0x00,0x90);
LCD_Write_DATA(0x00,0x10);
LCD_Write_COM(0x00,0x92);
LCD_Write_DATA(0x06,0x00);
LCD_Write_COM(0x00,0x07);
LCD_Write_DATA(0x01,0x33); // 262K color and display ON
digitalWrite(LCD_CS,HIGH);
}
void Pant(char VH,char VL)
{
int i,j;
digitalWrite(LCD_CS,LOW);
Address_set(0,0,240,320);
for(i=0;i<320;i++)
{
for (j=0;j<240;j++)
{
LCD_Write_DATA(VH,VL);
}
}
digitalWrite(LCD_CS,HIGH);
}
void setup()
{
unsigned char p;
char hi,lo;
int i,j,k;
for(p=0;p<20;p++)
{
pinMode(p,OUTPUT);
}
LCD_Init();
// Pant(0xff,0xff);
digitalWrite(LCD_CS,LOW);
for(k=0;k<8;k++)
{
for(j=0;j<6;j++)
{
Address_set(40*j,40*k,40*j+39,40*k+39);
for(i=0;i<1600;i++)
{
hi=pgm_read_byte(&image[i*2+1]);
lo=pgm_read_byte(&image[i*2]);
LCD_Write_DATA(hi,lo);
}
}
}
digitalWrite(LCD_CS,HIGH);
}
void loop()
{
}
-
Re: Arduino TFT 3.2" + Touch Panel
Я подключал аналогичный дисплей, правда 2.4", через такой адаптер. Там же есть библиотеки.
-
Re: Arduino TFT 3.2" + Touch Panel
#define LCD_RS 8
#define LCD_WR 9
#define LCD_CS 10
#define LCD_REST 11
Вот это точно не верно, т.к. эти выводы заняты Data Bus.
RESET у меня сидит на Analog 2
CS у меня сидит на Analog 3
WR у меня сидит на Analog 4
RS у меня сидит на Analog 5
Какие это выводы по порядку у ардуины?:)
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
zhserg
Я подключал аналогичный дисплей, правда 2.4", через
такой адаптер. Там же есть библиотеки.
Схема этого шилда есть гденить в инете??:) Темболее у меня монитор БЕЗ SD карты
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
alekseykok
#define LCD_RS 8
#define LCD_WR 9
#define LCD_CS 10
#define LCD_REST 11
Вот это точно не верно, т.к. эти выводы заняты Data Bus.
RESET у меня сидит на Analog 2
CS у меня сидит на Analog 3
WR у меня сидит на Analog 4
RS у меня сидит на Analog 5
Какие это выводы по порядку у ардуины?:)
И ты хочешь что бы он заработал без инициализации и при неправильном подключении?
подключи все выводы как в скетче
PHP код:
RS D8
WR D9
CS D10
REST D11
DATA D0-D7
-
Re: Arduino TFT 3.2" + Touch Panel
у ардуины 1280 в программе аналоговые с какой цифры начинаются?
-
Re: Arduino TFT 3.2" + Touch Panel
Еще раз повторю, Подключи на цифровые выводы
PHP код:
RS - D8
WR - D9
CS - D10
REST - D11
DATA - D0-D7
-
Re: Arduino TFT 3.2" + Touch Panel
Эти выводы заняты Шиной Данных..... Скетч написан со многими ошибками:(
-
Re: Arduino TFT 3.2" + Touch Panel
ТАк в скетче используют 8битную шину данных и подключают ее на D0-D7
Ты считаешь что люди выложили заведомо нерабочий скетч?
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
alekseykok
Схема этого шилда есть гденить в инете??:) Темболее у меня монитор БЕЗ SD карты
Схемы я не нашел.
Контакты, используемые для непосредственно дисплея, одни и те же с картой или без.
-
Re: Arduino TFT 3.2" + Touch Panel
Да да, сейчас переделал на 8ми битную систему обратно, все заземлил и т.д. - всеравно не запускается
-
Re: Arduino TFT 3.2" + Touch Panel
А скетч прокомпилировался и залился?
-
Re: Arduino TFT 3.2" + Touch Panel
А сам то дисплей скольки битный? Насколько я знаю битность зависит от места запайки какого то резистора на самом дисплее.
-
Re: Arduino TFT 3.2" + Touch Panel
Сцетч нормально залился, без проблем.
По поводу битности - у 16ти битой добавляется еще 8 ног данных, а в 8ми битной они заземлены
-
Re: Arduino TFT 3.2" + Touch Panel
Я думаю что битность зависит от инициализации, потому как управляющие регистры 8 битные
-
Re: Arduino TFT 3.2" + Touch Panel
Нет, вы ошибаетесь. Попробую найти ссылку.
На этой странице есть фраза тоносительно дисплея 2.4:
Цитата:
ITDB02 default use the 8bit mode , and if you need the 16 bit mode, you can tear the LCD screen down form the board , and move the R2 resistor to R1 to change the data mode. It’s a hard job , and easy to destroy the screen, so if you need a 16bit mode , you had better tell us before shipping , we will set the data mode for you. When you use the 8bit mode , the DB8-DB15 is used ,please remember to pull the DB0-DB7 to GND.
На этой для 3.2:
Цитата:
ITDB02-3.2 just can used the 16bit mode.
:eek::eek::eek:
-
Re: Arduino TFT 3.2" + Touch Panel
Ребята, помогите подключить 16 бит. Мне кажется что с пинами совсем ппц. Возможно описание под УНО или еще какое ардуино.... зачем пишут 2 посление инф. ноги на аналог садить если остается еще цифровых....
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
zhserg
Нет, вы ошибаетесь. Попробую найти ссылку.
На
этой странице есть фраза тоносительно дисплея 2.4:
На
этой для 3.2:
:eek::eek::eek:
Вот что там написано: контроллер дисплея HX8347 поддерживает 8/16bit интерфейс передачи данных
Осталось понять какой у него контроллер установлен
-
Re: Arduino TFT 3.2" + Touch Panel
HX8347-A - Как написано у продавца на ебайе:)
-
Re: Arduino TFT 3.2" + Touch Panel
Notice : Default setting is 16-bit parallel port.
-
Re: Arduino TFT 3.2" + Touch Panel
-
Re: Arduino TFT 3.2" + Touch Panel
а питание диплея откуда берешь и какое напряжение?
-
Вложений: 1
Re: Arduino TFT 3.2" + Touch Panel
Вот нашел конфигурацию интерфейса
-
Re: Arduino TFT 3.2" + Touch Panel
На сколько я понял - дисплей у тебя 16bit, чтобы его передалать на 8 нужно резистор R1 перенести на место резистора R2, чтобы это сделать нужно снимать дисплей, а это не просто. Поэтому подключать дисплей надо как 16bit
Вот тут скетч для дисплея 16bit, но 2.4, не думаю, что это критично сейчас для проверки работоспособности дисплея в принципе
И ещё там написано, что уровни напряжения у дисплея 3.3V, они используют , поэтому если ты используешь 5V ардуино, то нужно согласовать напряжение 20k резисторами
-
Re: Arduino TFT 3.2" + Touch Panel
Chip, у монитора шлейф на 37 пина.....
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
Gorynch
На сколько я понял - дисплей у тебя 16bit, чтобы его передалать на 8 нужно резистор R1 перенести на место резистора R2, чтобы это сделать нужно снимать дисплей, а это не просто. Поэтому подключать дисплей надо как 16bit
Вот
тут скетч для дисплея 16bit, но 2.4, не думаю, что это критично сейчас для проверки работоспособности дисплея в принципе
И ещё там написано, что уровни напряжения у дисплея 3.3V, они используют , поэтому если ты используешь 5V ардуино, то нужно согласовать напряжение 20k резисторами
Питание +3,3 с ардуины, скетчей я много находил, а вот как правильно подключить его.... дело в том, что практическе везде пишут контакты с DB0-DB16, хотя контакта на печатной плате DB16 нету :-D
-
Re: Arduino TFT 3.2" + Touch Panel
Темболее, у меня другие выводы чем здесь
#define LCD_RS 19
#define LCD_REST 16
#define LCD_WR 18
#define LCD_CS 17
У меня 53 цифровых вывода, соответственно аналоговые начинаются с 54 ноги. + 2 которые идут на DataBus получается что LCD_REST уже 56 нога... соответственно, ноги которые идут к A0-A1 попадают не туда..
Вообще я уже начинаю свыкаться с мыслей что кЕтайцы дохлый монитор прислали(((
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Питание +3,3 с ардуины
Думаю что этого даже на подсветку едва хватит
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Connect the pins to Arduino first :
DB0-DB16 to pin D0-D13 , pin A0-A1 of Arduino
RESET to A2
CS to A3
WR to A4
RS to A5
All the data pins of Arduino is used ….So , we just can connect the RD to 3.3V ….We don’t used it because we don’t need to read back the data from the screen.
Connect the power pins : LCD-A to 3.3V , VCC to 5V , GND to GND
я думаю они опечатались по поводу DB16 - этого пина нет у дисплея, да и кол-во линий дисплея и адруины в этом случае не совпадает - у дисплея на одну больше
Соот-но:
DB0-DB15 дисплея подключаются к D0-D13 и А0-А1 адруины и соот-но далее - слева пины дисплея, справа адруины
RD подключается напрямую к 3.3V, потому что, во-первых, закончились линии данных у адруино, во-вторых, данные от дисплея всё равно не обрабатываются (по их словам)
и питание, конечно, нужно брать не от ардуины, а от того, чем питается сама адруина, и чтобы хватило ещё и на дисплей
-
Re: Arduino TFT 3.2" + Touch Panel
У моей ардуины 54 цифровых и 16 аналоговых ввода вывода, так что там их предостаточно!!
-
Re: Arduino TFT 3.2" + Touch Panel
Тут еще один момент, если на LEDK(40 пиновый разъем который) не подать минус
подсветка вообще не включается.
-
Re: Arduino TFT 3.2" + Touch Panel
кстати, еще одна интересная штука - когда отключаешь все +3,3 вольта, подсветка остается гореть:eek::eek::eek:
Подключено сейчас с 0 - 19 пина ардуины (которые в PWM и COMMINICATION объеденены) - как раз по скетчу совпадают контакты
LCD_RS 19
LCD_REST 16
LCD_WR 18
LCD_CS 17
Результат 0..... кстате, около USB порта переодически загорается красные светодиод L - это что значит?:)
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
zhserg
Схемы я не нашел.
Контакты, используемые для непосредственно дисплея, одни и те же с картой или без.
Посмотри мануал на шилд. Там есть таблица соединений.
-
Re: Arduino TFT 3.2" + Touch Panel
Цитата:
Сообщение от
Gorynch
и питание, конечно, нужно брать не от ардуины, а от того, чем питается сама адруина, и чтобы хватило ещё и на дисплей
У меня 2.4" запитана от Меги и работает на ура!
http://avaclub.ru/forum/userpix/3_dipl_2_1.jpg
-
Re: Arduino TFT 3.2" + Touch Panel
-
Re: Arduino TFT 3.2" + Touch Panel
Ну как, получилось завести дисплей? подумываю такой же взять.. так как 2.8 чуть маловато...
или лучше брать на другом контроллере, например, SSD1289 или ILI9320 ?
-
Re: Arduino TFT 3.2" + Touch Panel
Не получается подключить TFT32_QVT, наверное такой же как у автора темы, ссылка: http://www.ebay.com/itm/ws/eBayISAPI...#ht_2335wt_944
Подсветка горит и больше ничего, все ноги подключены правильно, проверял каждую, подавая по отдельности импульсы, проверял на разных кодах, которые нашел, не помогает..
Посмотрите, у кого работает, какие там резисторы для подключения, и правильно ли я понял, что линии от ардуины просто через резисторы подключать к дисплею? Я поставил резисторы по 16 кОм, других ближе к 20 кОм, не было, так вот сигналы на линиях получаются какие то очень не прямоугольные (осциллографом смотрел), может поэтому не работает? Кто то в этой теме давал ссылку на шилд переходника, там были картинки, посмотрите, кто разбирается в полосатых резисторах, сколько там? 1кОм или 10кОм, что то непонятно.
-
Re: Arduino TFT 3.2" + Touch Panel
На шилде 20кОм стоят, сам мерил. Судя по твоей ссылке у тебя контроллер SSD1289. Учитываешь этот момент?