Белый экран 2,8 tft lcd shield hx8347

electro
Offline
Зарегистрирован: 02.11.2018

есть экранчик (https://ru.aliexpress.com/item/Wavgat-2-8-3-3-300mA-TFT/32907271642.html...) горит белый экран, пробовал на ардуино уно\мега, расные скетчи заливал - ничего не меняется. Если кто-то сталкивался помогитею

b707
Offline
Зарегистрирован: 26.05.2017

ставите библиотеку mcufriend_kbv https://github.com/prenticedavid/MCUFRIEND_kbv

в ней запускаете из примеров скетч LCD_ID_readnew и постите сюда ID экрана

electro
Offline
Зарегистрирован: 02.11.2018

b707 пишет:

ставите библиотеку mcufriend_kbv https://github.com/prenticedavid/MCUFRIEND_kbv

в ней запускаете из примеров скетч LCD_ID_readnew и постите сюда ID экрана

Read Registers on MCUFRIEND UNO shield
controllers either read as single 16-bit
e.g. the ID is at readReg(0)
or as a sequence of 8-bit values
in special locations (first is dummy)
 
diagnose any controller
reg(0x0000) 95 95 ID: ILI9320, ILI9325, ILI9335, ...
reg(0x0004) 00 00 00 00 Manufacturer ID
reg(0x0009) 3F 3F 3F 3F 3F Status Register
reg(0x000A) 00 00 Get Powsr Mode
reg(0x000C) 01 01 Get Pixel Format
reg(0x0030) 00 00 00 00 00 PTLAR
reg(0x0033) 08 08 08 08 08 08 08 VSCRLDEF
reg(0x0061) 00 00 RDID1 HX8347-G
reg(0x0062) 00 00 RDID2 HX8347-G
reg(0x0063) 00 00 RDID3 HX8347-G
reg(0x0064) 00 00 RDID1 HX8347-A
reg(0x0065) 00 00 RDID2 HX8347-A
reg(0x0066) 00 00 RDID3 HX8347-A
reg(0x0067) 00 00 RDID Himax HX8347-A
reg(0x0070) 00 00 Panel Himax HX8347-A
reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963
reg(0x00B0) 00 00 RGB Interface Signal Control
reg(0x00B3) 00 00 00 00 00 Frame Memory
reg(0x00B4) 00 00 Frame Mode
reg(0x00B6) 00 00 00 00 00 Display Control
reg(0x00B7) 00 00 Entry Mode Set
reg(0x00BF) 00 00 00 00 00 00 ILI9481, HX8357-B
reg(0x00C0) 00 00 00 00 00 00 00 00 00 Panel Control
reg(0x00C1) 00 00 00 00 Display Timing
reg(0x00C5) 00 00 Frame Rate
reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA
reg(0x00CC) 00 00 Panel Control
reg(0x00D0) 00 00 00 00 Power Control
reg(0x00D1) 00 00 00 00 VCOM Control
reg(0x00D2) 00 00 00 Power Normal
reg(0x00D3) 00 00 00 00 ILI9341, ILI9488
reg(0x00D4) 00 00 00 00 Novatek
reg(0x00DA) 00 00 RDID1
reg(0x00DB) 00 00 RDID2
reg(0x00DC) 00 00 RDID3
reg(0x00E0) 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 GAMMA-P
reg(0x00E1) 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 GAMMA-N
reg(0x00EF) 14 14 14 14 14 14 ILI9327
reg(0x00F2) 08 08 08 08 08 08 08 08 08 08 08 08 Adjust Control 2
reg(0x00F6) 00 00 00 00 Interface Control
 
b707
Offline
Зарегистрирован: 26.05.2017

отлично. В этой библиотеке, в файле MCUFRIEND_kbv.cpp - раскомментируйте строчку 11  //#define SUPPORT_8347D

после этого должен заработать пример graphictest_kbv из этой же библиотеки

electro
Offline
Зарегистрирован: 02.11.2018

b707 пишет:

отлично. В этой библиотеке, в файле MCUFRIEND_kbv.cpp - раскомментируйте строчку 11  //#define SUPPORT_8347D

после этого должен заработать пример graphictest_kbv из этой же библиотеки

загрузил, в com порт вывелось 

Serial took 0ms to start
ID = 0x9595
белый экран так и горит.
b707
Offline
Зарегистрирован: 26.05.2017

electro пишет:

загрузил, в com порт вывелось 

Serial took 0ms to start
ID = 0x9595
белый экран так и горит.

не понял, что именно "загрузил"?

Строчку-то в исходниках библиотеки поправили?

electro
Offline
Зарегистрирован: 02.11.2018

загрузил graphictest_kbv   ,      строчку раскомментировал

забыл упомянуть - касания определяет вот код:

// Touch screen library with X Y and Z (pressure) readings as well
// as oversampling to avoid 'bouncing'
// This demo code returns raw readings, public domain

#include <stdint.h>
#include "TouchScreen.h"

#define YP A2  // must be an analog pin, use "An" notation!
#define XM A3  // must be an analog pin, use "An" notation!
#define YM 8   // can be a digital pin
#define XP 9   // can be a digital pin

// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// For the one we're using, its 300 ohms across the X plate
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  // a point object holds x y and z coordinates
  TSPoint p = ts.getPoint();
  
  // we have some minimum pressure we consider 'valid'
  // pressure of 0 means no pressing!
  if (p.z > ts.pressureThreshhold) {
     Serial.print("X = "); Serial.print(p.x);
     Serial.print("\tY = "); Serial.print(p.y);
     Serial.print("\tPressure = "); Serial.println(p.z);
  }

  delay(100);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

При чем тут касания? Сначала надо с выводом на дисплей разобраться.

Мне все же кажется, что Вы что-то не так делаете.  После включения строчки #define SUPPORT_8347D все должно было заработать, поддержка дисплеей с ID 0x9595  предусмотрена в библиотеке.

arduinec
Offline
Зарегистрирован: 01.09.2015

electro пишет:

есть экранчик (https://ru.aliexpress.com/item/Wavgat-2-8-3-3-300mA-TFT/32907271642.html...) горит белый экран, пробовал на ардуино уно\мега, расные скетчи заливал - ничего не меняется. Если кто-то сталкивался помогитею

В посте #46 выложен полный набор библиотек для похожего дисплея: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...

ИзГой
Offline
Зарегистрирован: 17.01.2019

Здравствуйте! У меня UNO_Mega328P и такой дисплей 2.4 UNO TFT Module, driver HX8347G

Тоже белый экран

Где посмотреть ID дисплея после запуска скетча LCD_ID_readnew

Спасибо.

 

tamga2009
Offline
Зарегистрирован: 27.01.2019
Белый дисплей у 2,8" TFT LCD Shield Driver IC: R61580
Скачиваем и устанавливаем библиотеки:
1. MCUFRIEND_kbv-master
2. Adafruit_GFX_Library

В библиотеке MCUFRIEND_kbv-master в файле MCUFRIEND_kbv.cpp
раскоментировать #define SUPPORT_1580
Далее ищем сроку с #ifdef SUPPORT_1580
и заменяем код от
#ifdef SUPPORT_1580
до
#endif

на код ниже (нашёл в инете)
http://forum.arduino.cc/index.php?topic=366304.1560
vanhan123

#ifdef SUPPORT_1580
    case 0x1580:
        _lcd_capable = 0 | REV_SCREEN | READ_BGR | INVERT_GS;
        static const uint16_t R61580_regValues[] PROGMEM = {
            // Synchronization after reset
            TFTLCD_DELAY, 2,
            0x0000, 0x0000,
            0x0000, 0x0000,
            0x0000, 0x0000,
            0x0000, 0x0000,

            // Setup display
            0x00A4, 0x0001,          // NVM_4  [0000] CALB=1
            TFTLCD_DELAY, 2,
            0x0060, 0xA700,          // Driver_2  [2700] GS=1
            0x0008, 0x0808,          // Display_2 [0808] BP=8, FP=8
            0x0030, 0x0111,          // y control
            0x0031, 0x2410,          // y control
            0x0032, 0x0501,          // y control
            0x0033, 0x050C,          // y control
            0x0034, 0x2211,          // y control
            0x0035, 0x0C05,          // y control
            0x0036, 0x2105,          // y control
            0x0037, 0x1004,          // y control
            0x0038, 0x1101,          // y control
            0x0039, 0x1122,          // y control
            0x0090, 0x0019,          // Panel_1 [0111] 80Hz
            0x0010, 0x0530,          // Power_1 [0530]
            0x0011, 0x0237,          // Power_2 [0237]
            0x0012, 0x01BF,          // Power_3 [018F] PSON=1, PON=1
            0x0013, 0x1300,          // Power_4 [0000] VDV=0x13
            TFTLCD_DELAY, 100,

            0x0001, 0x0100,          // DRVOUT_1 [0000] SS=1
            0x0002, 0x0200,          // LCD_DRV [0000] BC0=1
            0x0003, 0x1030,          // ENTRY   [0030] BGR=1
            0x0009, 0x0001,          // Displ_3 [0001]
            0x000A, 0x0008,          // Displ_4 [0000] FMARKOE=1
            0x000C, 0x0001,          // Ext_1   [0000] RIM=1
            0x000D, 0xD000,          // Frame Marker [0000] ????
            0x000E, 0x0030,          // VCOM_LP [0030]
            0x000F, 0x0000,          // EXT_2   [0000]
            //            0x0020, 0x0000,
            //            0x0021, 0x0000,
            0x0029, 0x0077,          // NVM_2   [00FF] VCM=0x77
            //            0x0050, 0x0000,
            //            0x0051, 0xD0EF,
            //            0x0052, 0x0000,
            //            0x0053, 0x013F,
            0x0061, 0x0001,          // Base_Image [0000] REV=1
            0x006A, 0x0000,          // Vert_scrl  [0000]
            0x0080, 0x0000,          // Partial_Image [0000]
            0x0081, 0x0000,          //               [0000]
            0x0082, 0x005F,          //               [0000] PTE=0x5F
            0x0093, 0x0701,          // Panel_3  [0101] VEQWI=3
            0x0007, 0x0100,          // Display_1  [0000] BASEE=1
        };
        init_table16(R61580_regValues, sizeof(R61580_regValues));
        break;
#endif

Сохраняем и загружаем пример graphictest_opensmart. Заработало, но это единственный рабоающий пример.
Стал искать в чём дело и оказалось где

#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
то пример не работает.

Сравнил с примером graphictest_opensmart
оказалось, что в нем нет
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
там так 
#include <OPENSMART_kbv.h>
OPENSMART_kbv tff

Закоментировал в примерах строки
//#include <MCUFRIEND_kbv.h>
//MCUFRIEND_kbv tft;

стал вставлять в примерах
#include <OPENSMART_kbv.h>
OPENSMART_kbv tff
Многие примеры заработали.

Участвую в форуме первый раз, поэтому не судите строго за изложение.
Главное донес суть.













 

 

JoraVer
Offline
Зарегистрирован: 10.01.2020

Уважаемый b707!

У меня проблема, изложенная выше. ID моего устройства 2.8 TFT LCD Shield HX8347 - 0101. Подскажите пожалуйста, как мне вместо белого экрана получить хоть какой-нибудь еще.

b707
Offline
Зарегистрирован: 26.05.2017

вот в этой теме обсуждают дисплей с таким же ID :

http://arduino.ru/forum/apparatnye-voprosy/tft-lcd-dlya-arduino

попробуйте указанные настройки. может и ваш дисплей заработает

JoraVer
Offline
Зарегистрирован: 10.01.2020

Еще раз приветствую сообщество!

Третий день бьюсь со своим экраном. Вот его фото: 

Вот данные, которые выдает LCD_ID_readnew: 

Read Registers on MCUFRIEND UNO shield

controllers either read as single 16-bit

e.g. the ID is at readReg(0)

or as a sequence of 8-bit values

in special locations (first is dummy)

 

diagnose any controller

reg(0x0000) 01 01      ID: ILI9320, ILI9325, ILI9335, ...

reg(0x0004) 00 00 00 00       Manufacturer ID

reg(0x0009) 00 00 00 00 00  Status Register

reg(0x000A) 01 01     Get Powsr Mode

reg(0x000C) 03 03     Get Pixel Format

reg(0x0030) 00 00 00 00 00  PTLAR

reg(0x0033) 08 08 08 08 08 08 08    VSCRLDEF

reg(0x0061) 00 00      RDID1 HX8347-G

reg(0x0062) 00 00      RDID2 HX8347-G

reg(0x0063) 00 00      RDID3 HX8347-G

reg(0x0064) 00 00      RDID1 HX8347-A

reg(0x0065) 00 00      RDID2 HX8347-A

reg(0x0066) 00 00      RDID3 HX8347-A

reg(0x0067) 00 00      RDID Himax HX8347-A

reg(0x0070) 00 00      Panel Himax HX8347-A

reg(0x00A1) 00 00 00 00 00  RD_DDB SSD1963

reg(0x00B0) 00 00     RGB Interface Signal Control

reg(0x00B3) 00 00 00 00 00  Frame Memory

reg(0x00B4) 00 00     Frame Mode

reg(0x00B6) 00 00 00 00 00  Display Control

reg(0x00B7) 00 00     Entry Mode Set

reg(0x00BF) 00 00 00 00 00 00        ILI9481, HX8357-B

reg(0x00C0) 00 00 00 00 00 00 00 00 00     Panel Control

reg(0x00C1) 00 00 00 00       Display Timing

reg(0x00C5) 00 00     Frame Rate

reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00        GAMMA

reg(0x00CC) 00 00     Panel Control

reg(0x00D0) 00 00 00 00       Power Control

reg(0x00D1) 00 00 00 00       VCOM Control

reg(0x00D2) 00 00 00            Power Normal

reg(0x00D3) 00 00 00 00       ILI9341, ILI9488

reg(0x00D4) 00 00 00 00       Novatek

reg(0x00DA) 00 00     RDID1

reg(0x00DB) 00 00     RDID2

reg(0x00DC) 00 00     RDID3

reg(0x00E0) 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21     GAMMA-P

reg(0x00E1) 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01     GAMMA-N

reg(0x00EF) 00 00 00 00 00 00        ILI9327

reg(0x00F2) 08 08 08 08 08 08 08 08 08 08 08 08  Adjust Control 2

reg(0x00F6) 00 00 00 00       Interface Control

уже всю башку себе сломал, но кроме белого экрана ничего не вижу. Пожалуйста, HELP!!!

b707
Offline
Зарегистрирован: 26.05.2017

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

Удаленно могу сказать лишь одно - судя по тому, что в большинстве позиций читаются нули - есть подозрение на неправильное подключение.  Кстати, к какой плате вы его подключаете? То, что многие из этих экранов не переносят 5в - учитываете?

JoraVer
Offline
Зарегистрирован: 10.01.2020

Подключаю к Arduino UNO v.3 По описанию, экран заточен именно под эту плату. вот ссылка, где я его купил: https://aliexpress.ru/item/33005761996.html?spm=a2g0s.9042311.0.0.57ac33edXZaz6q

b707
Offline
Зарегистрирован: 26.05.2017

JoraVer пишет:

Подключаю к Arduino UNO v.3 По описанию, экран заточен именно под эту плату. вот ссылка, где я его купил: https://aliexpress.ru/item/33005761996.html?spm=a2g0s.9042311.0.0.57ac33edXZaz6q

В описании написано что номинальное напряжение экрана 3.3в. Указание на "совместимость с 5в" может быть правдой, а может и нет - китайцы часто врут. Лучше быть осторожнее и проверять на плате с напряжением 3.3в.

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

JoraVer
Offline
Зарегистрирован: 10.01.2020

Спасибо. Значит буду "ловить специалиста".