LCD экраны выходят из строя один за другим.

Wanhallen
Offline
Зарегистрирован: 21.09.2022

День добрый. В общем, суть такая:
Есть дисплей на контроллере gc9a01. Получилось подключить его и нормально протестить с некоторыми скетчами и разными библиотеками. Одна из самых удачных библиотек Arduino_GFX от Moononournation с гитхаба. Я тестил некоторые примеры и после одного из них дисплей перестал работать. 

 

/*******************************************************************************
 * PROGMEM Image Viewer
 * This is a simple PROGMEM bitmap image viewer example
 * Image Source: https://support.arduino.cc/hc/en-us/articles/360020652100
 *
 * How to create custom image:
 * 1. Open image ith GIMP
 * 2. Export Image as C-Source
 * 3. Uncheck all option and check "Save as RGB565 (16-bit)"
 * 4. Revise exported file just like "Arduino_UNO_Rev3_Ok.c"
 ******************************************************************************/
#include "Arduino_UNO_Rev3_Ok.c"
#define IMG_WIDTH 100
#define IMG_HEIGHT 71

/*******************************************************************************
 * Start of Arduino_GFX setting
 * 
 * Arduino_GFX try to find the settings depends on selected board in Arduino IDE
 * Or you can define the display dev kit not in the board list
 * Defalult pin list for non display dev kit:
 * Arduino Nano, Micro and more: CS:  9, DC:  8, RST:  7, BL:  6, SCK: 13, MOSI: 11, MISO: 12
 * ESP32 various dev board     : CS:  5, DC: 27, RST: 33, BL: 22, SCK: 18, MOSI: 23, MISO: nil
 * ESP32-C3 various dev board  : CS:  7, DC:  2, RST:  1, BL:  3, SCK:  4, MOSI:  6, MISO: nil
 * ESP32-S2 various dev board  : CS: 34, DC: 35, RST: 33, BL: 21, SCK: 36, MOSI: 35, MISO: nil
 * ESP32-S3 various dev board  : CS: 40, DC: 41, RST: 42, BL: 48, SCK: 36, MOSI: 35, MISO: nil
 * ESP8266 various dev board   : CS: 15, DC:  4, RST:  2, BL:  5, SCK: 14, MOSI: 13, MISO: 12
 * Raspberry Pi Pico dev board : CS: 17, DC: 27, RST: 26, BL: 28, SCK: 18, MOSI: 19, MISO: 16
 * RTL8720 BW16 old patch core : CS: 18, DC: 17, RST:  2, BL: 23, SCK: 19, MOSI: 21, MISO: 20
 * RTL8720_BW16 Official core  : CS:  9, DC:  8, RST:  6, BL:  3, SCK: 10, MOSI: 12, MISO: 11
 * RTL8722 dev board           : CS: 18, DC: 17, RST: 22, BL: 23, SCK: 13, MOSI: 11, MISO: 12
 * RTL8722_mini dev board      : CS: 12, DC: 14, RST: 15, BL: 13, SCK: 11, MOSI:  9, MISO: 10
 * Seeeduino XIAO dev board    : CS:  3, DC:  2, RST:  1, BL:  0, SCK:  8, MOSI: 10, MISO:  9
 * Teensy 4.1 dev board        : CS: 39, DC: 41, RST: 40, BL: 22, SCK: 13, MOSI: 11, MISO: 12
 ******************************************************************************/
#include <Arduino_GFX_Library.h>

#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin

/* More dev device declaration: https://github.com/moononournation/Arduino_GFX/wiki/Dev-Device-Declaration */
#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */

/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
Arduino_DataBus *bus = create_default_Arduino_DataBus();

/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 3 /* rotation */, false /* IPS */);

#endif /* !defined(DISPLAY_DEV_KIT) */
/*******************************************************************************
 * End of Arduino_GFX setting
 ******************************************************************************/

void setup()
{
  Serial.begin(115200);
  // while (!Serial);
  Serial.println("BMP Image Viewer");

  // Init Display
  gfx->begin();
  gfx->fillScreen(BLACK);

#ifdef GFX_BL
    pinMode(GFX_BL, OUTPUT);
    digitalWrite(GFX_BL, HIGH);
#endif

  gfx->draw16bitRGBBitmap(0, 0, (const uint16_t*)Arduino_UNO_Rev3_Ok, IMG_WIDTH, IMG_HEIGHT);

  delay(5000); // 5 seconds
}

void loop()
{
  int16_t x = random(gfx->width());
  int16_t y = random(gfx->height());
  gfx->draw16bitRGBBitmap(x, y, (const uint16_t*)Arduino_UNO_Rev3_Ok, IMG_WIDTH, IMG_HEIGHT);

  delay(1000); // 1 second
}

Сам скетч был рабочий. Отображал битмап и тд. Но после того, как я выключил ардуино и включил заново - экран уже не отвечал. 
Было заменено: arduino nano, экраны (3 штуки), провода, скетчи, компьютер, кабель usb. Экран не работал даже с другими скетчами. 
Далее я тестировал экран на контроллере st7789. Все было супер, до тех пор пока я не протестил тот же самый код. После этого второй экран на том же чипе перестал работать тоже)

В чем может быть причина? Не могу продолжить проект без этого. Уже всю голову изломал. HELP.

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

А какое номинальное напряжение питания контроллера дисплея, и сколько на него на самом деле подавалось?

Wanhallen
Offline
Зарегистрирован: 21.09.2022

Номинальные напряжение 3.3 и 5v. Подавал на них и то и другое. Одинаково хорошо работают

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

LCD экраны выходят из строя один за другим.

 
Видима, переедают. 

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Мошт вирус какой экранный пикселы ест?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Чего то сомнительно, что сгорают. Похоже, что контакты ломаются. Хотя сомнительно, что на 3-х, но существуют особо рукастые...

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А подсветка у них как запитана? А без подсветки изображение имеется?

Wanhallen
Offline
Зарегистрирован: 21.09.2022

В смысле как запитана? 
Экран просто черный, то есть подсветка горит. Иногда даже моргает что-то. Но картинки нет никакой, то есть полностью черный. Провода dc cs rst проверял, сигнал вроде идет. 
Экранчик такой, если что https://ali.onl/23Wv
 

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

Как правило, если горит подсветка, но экран не работает, - он белый, а не черный.

По приведенной ссылке напряжение обозначено однозначно - 3.3В. Я бы рекомендовал использовать именно это значение, включая логические уровни. Т.е. если дисплей 3-вольтовый, то мало подать питание 3.3 Вольта, нужны еще конвертеры уровней для сигналов управления.

 

Wanhallen
Offline
Зарегистрирован: 21.09.2022

Вы, возможно, правы. Но как объяснить тот факт, что все работало не один день до этого? То есть он прекрасно понимает и работает с 5 вольтами. К тому же другой экранчик  https://duino.ru/tsvetnoy-tft-ips-displey-st7789-s-razresheniem-240x240 на другом контроллере, работал нормально только с 5 вольт. С ним такая же проблема.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Дык дунька от трёх Вольт тоже работает...   Чо сиськи мнём???

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

Wanhallen пишет:

Но как объяснить тот факт, что все работало не один день до этого?

так и человек от асбеста тоже не сразу мрет. Как обьяснить, что он 10 лет вроде на работу ходил, все устраивало, а потом вдруг взял и помер....

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

Wanhallen пишет:

Но как объяснить тот факт, что все работало не один день до этого?

То есть я должен подробно объяснять, что такое надежность, и как она зависит от условий эксплуатации?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

lilik
Offline
Зарегистрирован: 19.10.2017

Скетч - убийца экранов?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

lilik пишет:

Скетч - убийца экранов?

скорее контроллеров, но возможно ли такое сейчас?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

ua6em Насколько я помню на первых персоналках можно было поджарить некоторые микросхемы CMOS постоянно вызывая перезапись ячеек

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

ua6em Насколько я помню на первых персоналках можно было поджарить некоторые микросхемы CMOS постоянно вызывая перезапись ячеек

я напоролся на микросхемы регистра, случайно, что-то из 74 серии там стояло с запрещенной комбинацией на выходах и входах,
у меня даже спор был с одним товарищем из САО РАН, выжжет его IBM или нет, побоялся однако )))
ЗЫ Интернета тогда еще не было, под SCO UNIX крутилась почта UUCP
PPS мой первый интернет появился инкапсуляцией в X.25 сеть со шлюзом в Релком )))