From a3034f7c425531f130d29be49d50f5a7120d2a90 Mon Sep 17 00:00:00 2001 From: raw-designs Date: Tue, 1 Sep 2026 03:04:28 +0200 Subject: [PATCH] feat(P4): UART zum S3 beim Waveshare-Board auf GPIO17/GPIO18 legen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der 40-polige Header des ESP32-P4-Pico hat eine andere Belegung als die Expansion-IO der JC-Panels. Für WS_PANEL_7H gilt jetzt TX = GPIO17, RX = GPIO18; die JC-Panels bleiben bei GPIO33/GPIO31. README und Changelog entsprechend ergänzt. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y --- JC_Display_Firmware/Changelog.txt | 5 +++-- JC_Display_Firmware/README.md | 13 ++++++++++--- JC_Display_Firmware/config.h | 10 ++++++---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/JC_Display_Firmware/Changelog.txt b/JC_Display_Firmware/Changelog.txt index 2d7724d..0205c31 100644 --- a/JC_Display_Firmware/Changelog.txt +++ b/JC_Display_Firmware/Changelog.txt @@ -24,8 +24,9 @@ Version 1.6.0: WS7_TOUCH_MIRROR_RAW_X / _Y in pins_config.h umdrehen. - Der Framebuffer wächst auf 3 x 2,8 MB (rund 8,3 MB PSRAM). Auf dem P4-Pico mit 32 MB PSRAM ist das unkritisch. -- Die UART-Pins zur Hauptplatine sind für das Waveshare-Board getrennt einstellbar, weil - dessen 40-poliger Header eine andere Belegung hat als die JC-Panels. +- Die UART-Pins zur Hauptplatine sind für das Waveshare-Board getrennt eingestellt, weil + dessen 40-poliger Header eine andere Belegung hat als die JC-Panels: TX = GPIO17, + RX = GPIO18 (JC-Panels unverändert TX = GPIO33, RX = GPIO31). Version 1.5.0: - Neu: Dieselbe Firmware unterstützt jetzt auch das 7-Zoll-Display Guition JC1060P470C-I-W diff --git a/JC_Display_Firmware/README.md b/JC_Display_Firmware/README.md index 306d5c9..29c744b 100644 --- a/JC_Display_Firmware/README.md +++ b/JC_Display_Firmware/README.md @@ -52,6 +52,7 @@ Vendor-Pakete: 4,3" im Ordner `JC4880P443C_I_W/`, 7,0" im Repo-Ordner | Backlight | GPIO23 (LEDC-PWM) | GPIO23 (LEDC-PWM) | **Bridge-Register** auf I²C **0x45** (`AD`/`AB`/`AA`) | | Framebuffer (3×) | 3 × 750 KB ≈ 2,3 MB PSRAM | 3 × 1,2 MB ≈ 3,6 MB PSRAM | 3 × 2,8 MB ≈ **8,3 MB** PSRAM | | Freie Expansion-IO | Stiftleiste **JP1**: GPIO 52/51/50/49/35/34/33/32/31/30/29/28 | FPC 1,0 mm 16-pol. **FPC4**: GPIO 34/33/32/31/30/29/28 · **FPC3**: 48/47/46/45/5/4/3/2 | 40-poliger Header im Raspberry-Pi-Pico-Format; belegt sind I²C (7/8), TF-Karte (9/10/11/12/13/53) und Debug-UART0 (37/38) | +| UART zur Hauptplatine | TX GPIO33 / RX GPIO31 | TX GPIO33 / RX GPIO31 | **TX GPIO17 / RX GPIO18** | ### Waveshare 7" (H) — Besonderheiten des Bringups @@ -74,15 +75,21 @@ Das Panel hängt hinter einer Waveshare-Bridge und braucht **keinen** Hersteller ## Verkabelung zur Hauptplatine (UART, gekreuzt) Für **beide JC-Panels** dieselben P4-Pins (4,3": Header JP1, Schaltplan -`JC4880P443C_I_W/5-Schematic/4_USB&IO.png` · 7,0": FPC-Buchse FPC4). Beim Waveshare-Board -werden die beiden Pins in [`config.h`](config.h) nach dem Aufdruck des eigenen Headers -gesetzt: +`JC4880P443C_I_W/5-Schematic/4_USB&IO.png` · 7,0": FPC-Buchse FPC4): ``` S3 GPIO43 (TX) ----> P4 GPIO31 (RX) (DISPLAY_UART_RX_PIN) S3 GPIO44 (RX) <---- P4 GPIO33 (TX) (DISPLAY_UART_TX_PIN) S3 GND ------ P4 GND ``` + +**Waveshare ESP32-P4-Pico** (40-poliger Header): + +``` + S3 GPIO43 (TX) ----> P4 GPIO18 (RX) (DISPLAY_UART_RX_PIN) + S3 GPIO44 (RX) <---- P4 GPIO17 (TX) (DISPLAY_UART_TX_PIN) + S3 GND ------ P4 GND +``` > Die rechte JP1-Spalte (`C6_U01TXD`/`C6_I10RXD`/…) gehört zum **ESP32-C6** — nicht > verwenden. 3,3-V-Logik beidseitig → keine Pegelwandlung nötig. diff --git a/JC_Display_Firmware/config.h b/JC_Display_Firmware/config.h index 445e3f1..b1541e6 100644 --- a/JC_Display_Firmware/config.h +++ b/JC_Display_Firmware/config.h @@ -109,13 +109,15 @@ // // Waveshare ESP32-P4-Pico (WS_PANEL_7H): 40-poliger Header im Raspberry-Pi-Pico-Format. // Belegt sind dort u.a. I2C (7/8), TF-Karte (9/10/11/12/13/53) und der Debug-UART0 -// (37/38); diese Pins duerfen NICHT genommen werden. Die beiden Werte unten nach dem -// Aufdruck des eigenen Boards setzen. +// (37/38); diese Pins duerfen NICHT genommen werden. Genutzt werden GPIO17/GPIO18: +// GPIO17 (P4 TX) ----> S3 GPIO44 (RX) +// GPIO18 (P4 RX) <---- S3 GPIO43 (TX) +// GND ---- S3 GND #define DISPLAY_UART_PORT Serial1 #define DISPLAY_UART_BAUDRATE 230400 #if JC_PANEL_TYPE == WS_PANEL_7H -#define DISPLAY_UART_TX_PIN 33 // TODO: freien GPIO des Pico-Headers eintragen -#define DISPLAY_UART_RX_PIN 31 // TODO: freien GPIO des Pico-Headers eintragen +#define DISPLAY_UART_TX_PIN 17 +#define DISPLAY_UART_RX_PIN 18 #else #define DISPLAY_UART_TX_PIN 33 #define DISPLAY_UART_RX_PIN 31