diag(P4): Schwarzes Bild eingrenzen - Prüfbild und lückenlose Meldungen (1.6.15)
Kaltstart, kein einziger Fehler im Log, alle I2C-Bausteine da - und trotzdem keine Anzeige. Zwei Lücken in der Diagnose: - Die DCS-Weckbefehle (MADCTL, Sleep Out, Display On) liefen ungeprüft durch. Jetzt über BSP_STEP gemeldet. - Nach dem Panel-Start endete die Ausgabe. "Bringup fertig" vor und "LVGL laeuft" nach lvgl_port_init() trennen jetzt ein Hängenbleiben in LVGL von einem fehlenden Bild. Neuer Schalter WS7_TEST_PATTERN nutzt esp_lcd_dpi_panel_set_pattern() für Farbbalken aus dem DSI-Baustein, ohne Framebuffer und ohne LVGL - wie im funktionierenden Werks-Testsketch. Erscheinen sie, arbeitet die Kette bis zum Panel und der Fehler liegt weiter oben. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y
This commit is contained in:
co-authored by
Claude Opus 5
parent
d83619904f
commit
c58b901f26
@@ -1,3 +1,16 @@
|
||||
Version 1.6.15:
|
||||
- Diagnose fuer das schwarze Bild, das der Log bisher nicht erklaeren konnte: Alle Schritte
|
||||
liefen fehlerfrei durch, trotzdem blieb die Anzeige leer.
|
||||
- Die drei Weckbefehle an das Panel (MADCTL, Sleep Out, Display On) liefen bislang
|
||||
ungeprueft durch und sind jetzt in die Fehlerausgabe einbezogen.
|
||||
- Neuer Schalter WS7_TEST_PATTERN in pins_config.h: zeigt statt der Oberflaeche
|
||||
Prueffarbbalken an. Sie entstehen im DSI-Baustein selbst und benutzen weder Bildspeicher
|
||||
noch LVGL. Damit laesst sich in einem Durchgang trennen, ob die Anzeigekette bis zum
|
||||
Panel arbeitet oder ob der Fehler weiter oben liegt.
|
||||
- Das Ende des Hochlaufs wird gemeldet ("Bringup fertig" / "LVGL laeuft"). Bisher endete
|
||||
die Ausgabe nach dem Panel-Start, und ein Haengenbleiben in LVGL war von einem
|
||||
fehlenden Bild nicht zu unterscheiden.
|
||||
|
||||
Version 1.6.14:
|
||||
- Der Touch-Controller wird jetzt erst angesprochen, nachdem die Bridge freigegeben und die
|
||||
Hintergrundbeleuchtung eingeschaltet ist. Der GT9271 haengt an derselben Versorgung und
|
||||
|
||||
@@ -486,13 +486,23 @@ bool jc_board_bringup(void)
|
||||
{
|
||||
uint8_t zero = 0x00;
|
||||
uint8_t madctl = WS7_MADCTL;
|
||||
esp_lcd_panel_io_tx_param(io, 0x36, &madctl, 1); // MADCTL
|
||||
esp_lcd_panel_io_tx_param(io, 0x11, &zero, 1); // Sleep Out
|
||||
BSP_STEP(esp_lcd_panel_io_tx_param(io, 0x36, &madctl, 1), "Panel-Befehl MADCTL");
|
||||
BSP_STEP(esp_lcd_panel_io_tx_param(io, 0x11, &zero, 1), "Panel-Befehl Sleep Out");
|
||||
vTaskDelay(pdMS_TO_TICKS(120));
|
||||
esp_lcd_panel_io_tx_param(io, 0x29, &zero, 1); // Display On
|
||||
BSP_STEP(esp_lcd_panel_io_tx_param(io, 0x29, &zero, 1), "Panel-Befehl Display On");
|
||||
vTaskDelay(pdMS_TO_TICKS(20));
|
||||
}
|
||||
BSP_STEP(esp_lcd_panel_init(disp_panel), "DPI-Videoausgabe starten");
|
||||
#if WS7_TEST_PATTERN
|
||||
// Prueffarbbalken: Sie entstehen im DSI-Baustein selbst und benutzen weder den
|
||||
// Bildspeicher noch LVGL. Erscheinen sie, arbeitet die gesamte Anzeigekette bis zum
|
||||
// Panel korrekt und der Fehler liegt weiter oben (Bildspeicher, LVGL, Oberflaeche).
|
||||
// Bleibt das Bild schwarz, liegt es an DSI, Zeitbasis oder Panel.
|
||||
BSP_STEP(esp_lcd_dpi_panel_set_pattern(disp_panel, MIPI_DSI_PATTERN_BAR_VERTICAL),
|
||||
"Prueffarbbalken");
|
||||
esp_rom_printf("[Panel] Pruefbild aktiv - erwartet werden senkrechte Farbbalken.\n");
|
||||
#endif
|
||||
|
||||
#elif JC_PANEL_TYPE == JC_PANEL_70
|
||||
// ---------------- 7,0" JD9165 (1024x600) ----------------
|
||||
esp_lcd_dsi_bus_config_t bus_config = JD9165_PANEL_BUS_DSI_2CH_CONFIG();
|
||||
@@ -638,7 +648,9 @@ bool jc_board_bringup(void)
|
||||
lvgl_port_interface_t interface =
|
||||
(dpi_config.flags.use_dma2d) ? LVGL_PORT_INTERFACE_MIPI_DSI_DMA
|
||||
: LVGL_PORT_INTERFACE_MIPI_DSI_NO_DMA;
|
||||
esp_rom_printf("[Panel] Bringup fertig - LVGL wird gestartet\n");
|
||||
lvgl_port_init(disp_panel, tp_handle, interface);
|
||||
esp_rom_printf("[Panel] LVGL laeuft\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +145,11 @@
|
||||
// auf I2C antwortet. Meldet sich 0x14 beim Start nicht, diesen Wert erhoehen.
|
||||
#define WS7_TOUCH_POWER_MS 120
|
||||
|
||||
// Prueffarbbalken statt Oberflaeche anzeigen. Sie entstehen im DSI-Baustein selbst und
|
||||
// benutzen weder Bildspeicher noch LVGL. Damit laesst sich trennen, ob die Anzeigekette
|
||||
// bis zum Panel arbeitet (Balken sichtbar) oder nicht (schwarz). Nur zur Fehlersuche.
|
||||
#define WS7_TEST_PATTERN 0
|
||||
|
||||
#elif JC_PANEL_TYPE == JC_PANEL_70
|
||||
|
||||
#define LCD_H_RES 1024
|
||||
|
||||
Reference in New Issue
Block a user