From 6c783c55de371e1ce30d8486a2a74175df3bef30 Mon Sep 17 00:00:00 2001 From: raw-designs Date: Tue, 1 Sep 2026 15:44:02 +0200 Subject: [PATCH] =?UTF-8?q?fix(P4):=20Abschaltfolge=20zur=C3=BCcknehmen,?= =?UTF-8?q?=20Startgrund=20und=20LDO=20pr=C3=BCfen=20(1.6.12)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Bridge-Abschaltfolge aus 1.6.11 hat den Fehler nicht behoben, sondern verschlimmert: Nach C0/C2/AC = 0x00 kam das Panel auch direkt nach dem Flashen nicht mehr hoch. Der Bringup entspricht wieder 1.6.10. Stattdessen zwei Diagnosen zur Eingrenzung: - esp_reset_reason() wird beim Hochlauf ausgegeben, um Kalt- von Warmstart unterscheiden zu können. - esp_ldo_acquire_channel() läuft nicht mehr ungeprüft durch, sondern meldet einen Fehler über BSP_STEP. Es war der einzige Schritt ohne Prüfung. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y --- P4_Display_Firmware/Changelog.txt | 10 ++++++++++ P4_Display_Firmware/board_bringup.c | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/P4_Display_Firmware/Changelog.txt b/P4_Display_Firmware/Changelog.txt index c440b0d..04cf8a3 100644 --- a/P4_Display_Firmware/Changelog.txt +++ b/P4_Display_Firmware/Changelog.txt @@ -1,3 +1,13 @@ +Version 1.6.12: +- Die Abschaltfolge für die Bridge aus 1.6.11 ist zurückgenommen. Sie hat den Fehler nicht + behoben, sondern verschlimmert: Nach dem Nullsetzen von C0/C2/AC kam das Panel auch + direkt nach dem Flashen nicht mehr hoch, die normale Einschaltfolge holt es aus diesem + Zustand nicht zurück. Der Start entspricht damit wieder 1.6.10. +- Stattdessen zwei Diagnosen, um die Ursache des schwarzen Bildes nach einem Reset + einzugrenzen: Der Startgrund wird beim Hochlauf ausgegeben (1 = Kaltstart, alles andere + Warmstart), und das Anfordern der Stromversorgung für die MIPI-Strecke wird jetzt auf + Fehler geprüft - bislang lief dieser Schritt als einziger ungeprüft durch. + Version 1.6.10: - WS7_PARTIAL_REFRESH ist jetzt auch im Auslieferungsstand 1. Am Gerät geprüft: kein Flackern, und der Gewinn ist der größte der drei Tempo-Maßnahmen - vor allem während diff --git a/P4_Display_Firmware/board_bringup.c b/P4_Display_Firmware/board_bringup.c index 8b86efd..8bfdedb 100644 --- a/P4_Display_Firmware/board_bringup.c +++ b/P4_Display_Firmware/board_bringup.c @@ -30,6 +30,7 @@ #include "esp_heap_caps.h" #include "esp_rom_sys.h" #include "esp_timer.h" +#include "esp_system.h" #include "esp_ldo_regulator.h" #include "esp_lcd_panel_io.h" #include "esp_lcd_panel_ops.h" @@ -320,12 +321,17 @@ bool jc_board_bringup(void) ws7_bridge_pre_init(); #endif + // Reset-Grund mitschreiben: 1 = Kaltstart (Strom weg), alles andere ist ein Warmstart. + // Nur beim Warmstart behalten die Bausteine ihren alten Zustand - genau dann traten + // die schwarzen Bilder auf. + esp_rom_printf("[Panel] Startgrund: %d (1 = Kaltstart)\n", (int)esp_reset_reason()); + static esp_ldo_channel_handle_t phy_pwr_chan = NULL; esp_ldo_channel_config_t ldo_cfg = { .chan_id = BSP_MIPI_DSI_PHY_PWR_LDO_CHAN, .voltage_mv = BSP_MIPI_DSI_PHY_PWR_LDO_VOLTAGE_MV, }; - esp_ldo_acquire_channel(&ldo_cfg, &phy_pwr_chan); + BSP_STEP(esp_ldo_acquire_channel(&ldo_cfg, &phy_pwr_chan), "Stromversorgung MIPI-D-PHY"); esp_lcd_dsi_bus_handle_t mipi_dsi_bus; esp_lcd_panel_io_handle_t io = NULL;