fix(P4): I2C-Störimpulsfilter - Ursache des schwarzen Bildes (1.6.16)
Der I2C-Scan vor und nach dem Panel-Start war entscheidend: vor: 0x14 (Touch) 0x18 (Audio) 0x45 (Bridge) nach: 0x18 Es fallen genau die beiden Bausteine weg, die am Displaykabel hängen; der Audio-Baustein auf der Platine bleibt erreichbar, der Bus arbeitet also. Sobald die DSI-Ausgabe läuft, stören deren Signale auf das Flachbandkabel ein. Die Bridge liess sich danach nicht mehr ansprechen (ESP_ERR_INVALID_STATE), das Panel blieb dunkel. i2c_master_bus_config_t bekommt für WS_PANEL_7H jetzt glitch_ignore_cnt = 7 und enable_internal_pullup - beides setzt auch das Waveshare-Beispiel. In unserem Bringup fehlte es, weil die Bus-Einrichtung von den JC-Panels übernommen wurde, die kein Flachbandkabel dieser Länge haben. 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
c4cb6eb90a
commit
ecb9836510
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user