diff --git a/P4_Display_Firmware/Changelog.txt b/P4_Display_Firmware/Changelog.txt index a562c99..dc4d508 100644 --- a/P4_Display_Firmware/Changelog.txt +++ b/P4_Display_Firmware/Changelog.txt @@ -1,3 +1,18 @@ +Version 1.6.16: +- Ursache des schwarzen Bildes gefunden. Der Start-Log zeigte es eindeutig: Vor dem + Panel-Start meldeten sich alle drei I2C-Bausteine (Touch 0x14, Audio 0x18, Bridge 0x45), + danach nur noch der Audio-Baustein. Es fielen also genau die beiden weg, die am + Displaykabel haengen - der Bus selbst arbeitete weiter. Sobald die DSI-Ausgabe laeuft, + stoeren deren schnelle Signale auf das lange Flachbandkabel ein, und ohne Filterung + bringen diese Stoerspitzen die I2C-Uebertragung aus dem Tritt. Die Bridge liess sich + daraufhin nicht mehr ansprechen, das Panel blieb dunkel. +- Der I2C-Bus laeuft fuer das Waveshare-Panel jetzt mit Stoerimpulsfilter und internen + Abschlusswiderstaenden, so wie es auch das Waveshare-Beispiel tut. Beides fehlte, weil + die Bus-Einrichtung urspruenglich von den JC-Panels uebernommen wurde, die kein + Flachbandkabel dieser Laenge haben. +- Das erklaert rueckwirkend auch, warum sich der Fehler so sprunghaft verhielt: Ob eine + Uebertragung durchkam, hing von der Stoerlage ab. + 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. diff --git a/P4_Display_Firmware/board_bringup.c b/P4_Display_Firmware/board_bringup.c index 7168ef6..869639e 100644 --- a/P4_Display_Firmware/board_bringup.c +++ b/P4_Display_Firmware/board_bringup.c @@ -399,6 +399,16 @@ bool jc_board_bringup(void) .sda_io_num = BSP_I2C_SDA, .scl_io_num = BSP_I2C_SCL, .i2c_port = BSP_I2C_NUM, +#if JC_PANEL_TYPE == WS_PANEL_7H + // Stoerimpulsfilter und interne Abschlusswiderstaende - beides setzt auch das + // Waveshare-Beispiel. Ohne den Filter brechen Bridge und Touch weg, sobald die + // DSI-Ausgabe laeuft: Deren schnelle Signale stoeren auf das lange Flachbandkabel + // ein, und ungefilterte Stoerspitzen bringen die I2C-Uebertragung aus dem Tritt. + // Der Audio-Baustein auf der Platine bleibt dabei erreichbar, weil er nicht am + // Displaykabel haengt - genau dieses Muster war im Start-Log zu sehen. + .glitch_ignore_cnt = 7, + .flags.enable_internal_pullup = true, +#endif }; i2c_new_master_bus(&i2c_bus_conf, &s_i2c_handle);