Многоуважаемые коты! Давно у меня валялся без дела дисплей от китайского самсунга – GT-i9500 (HL-F46084VA), достался без платы, поэтому распиновку найти не смог. Не так давно уважаемый
wss60 выложил распиновку данного дисплея, за что ему большое спасибо. После не долгих экспериментов удалось его засветить.
wss60 написал, что контроллер в нем
ILI9488, инициализация подошла без проблем, а вот дальше проблемы. Не корректно работаем добрая часть команд. Все дело в том, что контроллеров идентичных
ILI9488 - несколько. Поэтому было принято решение считать ID дисплея. После отправки команды
0x04 были считаны 4 параметра. Суди по даташиту нам нужны два последних. В результате считанные данные такие:
00 00 00 80. По своим характеристикам и размерам кристаллов, близкими являются
ILI9481,
ILI9486,
R61581. Пробовал считывать ID по кодам данных контроллеров, результата не получил. В таком случае что может означать
00 00 00 80. Как точно определить контроллер.
P.S. Дисплей подключен к ATMega32A.
Добавлено after 4 hours 18 minutes 15 seconds:
Решил написать функцию опроса дисплея по разным адресам. Забил в программу те адреса, которые смог найти в даташитах и поместил все в цикл. Получилось вот что:
Код: Выделить всё
void LCD_ReadID (void)
{
char buf[5];
char j, id1, id2, id3, id4, id5;
buf[0] = 0x04;
buf[1] = 0xD3;
buf[2] = 0xBF;
buf[3] = 0xA1;
buf[4] = 0xEF;
buf[5] = 0x2E;
//*******************
for (j=0; j<6;j++)
{
PORTA=0x00;
DDRA=0xFF;
LCD_WriteCom(buf[j]);
delay_us(5);
DDRA=0x00;
PORTA=0x00;
LCD_CS=0;
LCD_DC=1;
LCD_WR=1;
LCD_RD=0;
id1 = PINA;
LCD_RD=1;
LCD_RD=0;
id2 = PINA;
LCD_RD=1;
LCD_RD=0;
id3 = PINA;
LCD_RD=1;
LCD_RD=0;
id4 = PINA;
LCD_RD=1;
LCD_RD=0;
id5 = PINA;
LCD_RD=1;
LCD_CS=1;
DDRA=0xFF;
// putchar(id1);
putchar(id2);
putchar(id3);
putchar(id4);
putchar(id5);
}
}
В результате после включения дисплей передал на ПК 6 последовательностей, считанных из дисплея. Терминал принял следующее:
00 00 80 00 | D3 D3 D3 D3 | BF BF BF BF | 00 00 00 00 | EF EF EF EF | 00 1C 50 74. Пакеты 2-5 явно отпадают, вопрос как расшифровать два оставшихся?