fix(P4): UART auf GPIO20/21, Touch oben/unten spiegeln (1.6.3) #31
@@ -1,3 +1,14 @@
|
|||||||
|
Version 1.6.3:
|
||||||
|
- Waveshare ESP32-P4-Pico: UART zur Hauptplatine liegt jetzt auf TX = GPIO20 und
|
||||||
|
RX = GPIO21 (vorher GPIO17/GPIO18). Die JC-Panels bleiben bei GPIO33/GPIO31.
|
||||||
|
- Das Bild steht in der tatsächlichen Einbaulage richtig herum, die 180-Grad-Drehung aus
|
||||||
|
1.6.1 ist deshalb wieder abgeschaltet (WS7_ROTATE_180 = 0). Sie bleibt als Schalter
|
||||||
|
erhalten, falls das Panel später anders montiert wird.
|
||||||
|
- Der Touch war dagegen oben/unten spiegelverkehrt: Der Digitizer sitzt gegenüber dem Bild
|
||||||
|
um die Hochachse gedreht. WS7_TOUCH_MIRROR_RAW_X steht dafür jetzt auf 1. Bild- und
|
||||||
|
Touch-Ausrichtung sind damit zwei getrennte Schalter, weil sie an diesem Panel eben
|
||||||
|
nicht zusammenfallen.
|
||||||
|
|
||||||
Version 1.6.2:
|
Version 1.6.2:
|
||||||
- Kommt das Panel nicht hoch, stürzt der P4 nicht mehr wortlos ab. Die Bringup-Schritte
|
- Kommt das Panel nicht hoch, stürzt der P4 nicht mehr wortlos ab. Die Bringup-Schritte
|
||||||
melden ihren Fehler jetzt im Klartext auf der seriellen Konsole (auch bei abgeschaltetem
|
melden ihren Fehler jetzt im Klartext auf der seriellen Konsole (auch bei abgeschaltetem
|
||||||
|
|||||||
@@ -45,14 +45,14 @@ Vendor-Pakete: 4,3" im Ordner `JC4880P443C_I_W/`, 7,0" im Repo-Ordner
|
|||||||
| WLAN/BT (hier ungenutzt) | ESP32-C6 | ESP32-C6 | — (kein Funkmodul) |
|
| WLAN/BT (hier ungenutzt) | ESP32-C6 | ESP32-C6 | — (kein Funkmodul) |
|
||||||
| Display | ST7701, 480×800 IPS, MIPI-DSI | JD9165, 1024×600 IPS, MIPI-DSI | 1280×720 IPS, MIPI-DSI 2 Lanes über Waveshare-Bridge |
|
| Display | ST7701, 480×800 IPS, MIPI-DSI | JD9165, 1024×600 IPS, MIPI-DSI | 1280×720 IPS, MIPI-DSI 2 Lanes über Waveshare-Bridge |
|
||||||
| Farbformat | RGB565 | RGB565 | **RGB888** (Bridge nimmt nichts anderes) |
|
| Farbformat | RGB565 | RGB565 | **RGB888** (Bridge nimmt nichts anderes) |
|
||||||
| LVGL-Ausrichtung | Rotation **270°** (PPA) → 800×480 | **keine** Rotation, nativ 1024×600 | nativ 1280×720, bei Einbau auf dem Kopf **180°** (PPA) |
|
| LVGL-Ausrichtung | Rotation **270°** (PPA) → 800×480 | **keine** Rotation, nativ 1024×600 | **keine** Rotation, nativ 1280×720 |
|
||||||
| Touch | GT911, I²C SDA=GPIO7 / SCL=GPIO8 | GT911, I²C SDA=GPIO7 / SCL=GPIO8 | **GT9271** (I²C-Adresse **0x14**), SDA=GPIO7 / SCL=GPIO8 |
|
| Touch | GT911, I²C SDA=GPIO7 / SCL=GPIO8 | GT911, I²C SDA=GPIO7 / SCL=GPIO8 | **GT9271** (I²C-Adresse **0x14**), SDA=GPIO7 / SCL=GPIO8 |
|
||||||
| Touch-Rohkoordinaten | 480×800 (= Panelraster) | **800×480** → wird auf 1024×600 skaliert | **720×1280** (Hochformat) → X/Y werden getauscht |
|
| Touch-Rohkoordinaten | 480×800 (= Panelraster) | **800×480** → wird auf 1024×600 skaliert | **720×1280** (Hochformat) → X/Y werden getauscht |
|
||||||
| LCD-Reset | GPIO5 | **GPIO27** | kein Reset-Pin (macht die Bridge) |
|
| LCD-Reset | GPIO5 | **GPIO27** | kein Reset-Pin (macht die Bridge) |
|
||||||
| Backlight | GPIO23 (LEDC-PWM) | GPIO23 (LEDC-PWM) | **Bridge-Register** auf I²C **0x45** (`AD`/`AB`/`AA`) |
|
| 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 |
|
| 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) |
|
| 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** |
|
| UART zur Hauptplatine | TX GPIO33 / RX GPIO31 | TX GPIO33 / RX GPIO31 | **TX GPIO20 / RX GPIO21** |
|
||||||
|
|
||||||
### Waveshare 7" (H) — Besonderheiten des Bringups
|
### Waveshare 7" (H) — Besonderheiten des Bringups
|
||||||
|
|
||||||
@@ -68,9 +68,12 @@ Das Panel hängt hinter einer Waveshare-Bridge und braucht **keinen** Hersteller
|
|||||||
`Display On` → DPI-Start → **erst dann** Hintergrundbeleuchtung. Wird das Licht früher
|
`Display On` → DPI-Start → **erst dann** Hintergrundbeleuchtung. Wird das Licht früher
|
||||||
eingeschaltet, blitzt beim Start Bildrauschen auf.
|
eingeschaltet, blitzt beim Start Bildrauschen auf.
|
||||||
- **Einbaulage:** `WS7_ROTATE_180` in [`pins_config.h`](pins_config.h) dreht Bild **und**
|
- **Einbaulage:** `WS7_ROTATE_180` in [`pins_config.h`](pins_config.h) dreht Bild **und**
|
||||||
Touch um 180°, wenn das Panel auf dem Kopf montiert ist (Vorgabe: gedreht). Die Drehung
|
Touch um 180°, falls das Panel auf dem Kopf montiert wird. Vorgabe ist **0** — in der
|
||||||
macht der PPA-Grafikbeschleuniger; die Software-Rotation des LVGL-Ports beherrscht nur
|
jetzigen Einbaulage steht das Bild richtig herum. Die Drehung macht der
|
||||||
RGB565 und käme für dieses Panel nicht in Frage.
|
PPA-Grafikbeschleuniger; die Software-Rotation des LVGL-Ports beherrscht nur RGB565.
|
||||||
|
- **Touch-Spiegelung:** Der Digitizer sitzt gegenüber dem Bild um die Hochachse gedreht.
|
||||||
|
`WS7_TOUCH_MIRROR_RAW_X` steht deshalb auf **1** (dreht oben/unten), unabhängig von der
|
||||||
|
Bilddrehung.
|
||||||
|
|
||||||
> Beim 7-Zöller ist die Expansion-IO **kein Stiftleisten-Header**, sondern eine
|
> Beim 7-Zöller ist die Expansion-IO **kein Stiftleisten-Header**, sondern eine
|
||||||
> FPC-Buchse (1,0 mm Raster, 16-polig) — für die UART-Verdrahtung wird ein
|
> FPC-Buchse (1,0 mm Raster, 16-polig) — für die UART-Verdrahtung wird ein
|
||||||
@@ -90,8 +93,8 @@ Für **beide JC-Panels** dieselben P4-Pins (4,3": Header JP1, Schaltplan
|
|||||||
**Waveshare ESP32-P4-Pico** (40-poliger Header):
|
**Waveshare ESP32-P4-Pico** (40-poliger Header):
|
||||||
|
|
||||||
```
|
```
|
||||||
S3 GPIO43 (TX) ----> P4 GPIO18 (RX) (DISPLAY_UART_RX_PIN)
|
S3 GPIO43 (TX) ----> P4 GPIO21 (RX) (DISPLAY_UART_RX_PIN)
|
||||||
S3 GPIO44 (RX) <---- P4 GPIO17 (TX) (DISPLAY_UART_TX_PIN)
|
S3 GPIO44 (RX) <---- P4 GPIO20 (TX) (DISPLAY_UART_TX_PIN)
|
||||||
S3 GND ------ P4 GND
|
S3 GND ------ P4 GND
|
||||||
```
|
```
|
||||||
> Die rechte JP1-Spalte (`C6_U01TXD`/`C6_I10RXD`/…) gehört zum **ESP32-C6** — nicht
|
> Die rechte JP1-Spalte (`C6_U01TXD`/`C6_I10RXD`/…) gehört zum **ESP32-C6** — nicht
|
||||||
|
|||||||
@@ -109,15 +109,15 @@
|
|||||||
//
|
//
|
||||||
// Waveshare ESP32-P4-Pico (WS_PANEL_7H): 40-poliger Header im Raspberry-Pi-Pico-Format.
|
// 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
|
// 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. Genutzt werden GPIO17/GPIO18:
|
// (37/38); diese Pins duerfen NICHT genommen werden. Genutzt werden GPIO20/GPIO21:
|
||||||
// GPIO17 (P4 TX) ----> S3 GPIO44 (RX)
|
// GPIO20 (P4 TX) ----> S3 GPIO44 (RX)
|
||||||
// GPIO18 (P4 RX) <---- S3 GPIO43 (TX)
|
// GPIO21 (P4 RX) <---- S3 GPIO43 (TX)
|
||||||
// GND ---- S3 GND
|
// GND ---- S3 GND
|
||||||
#define DISPLAY_UART_PORT Serial1
|
#define DISPLAY_UART_PORT Serial1
|
||||||
#define DISPLAY_UART_BAUDRATE 230400
|
#define DISPLAY_UART_BAUDRATE 230400
|
||||||
#if JC_PANEL_TYPE == WS_PANEL_7H
|
#if JC_PANEL_TYPE == WS_PANEL_7H
|
||||||
#define DISPLAY_UART_TX_PIN 17
|
#define DISPLAY_UART_TX_PIN 20
|
||||||
#define DISPLAY_UART_RX_PIN 18
|
#define DISPLAY_UART_RX_PIN 21
|
||||||
#else
|
#else
|
||||||
#define DISPLAY_UART_TX_PIN 33
|
#define DISPLAY_UART_TX_PIN 33
|
||||||
#define DISPLAY_UART_RX_PIN 31
|
#define DISPLAY_UART_RX_PIN 31
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
// Firmware
|
// Firmware
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
#define DISPLAY_FW_VERSION "1.6.2" // Firmware-Stand der P4-Display-Steuerung (Info-Seite)
|
#define DISPLAY_FW_VERSION "1.6.3" // Firmware-Stand der P4-Display-Steuerung (Info-Seite)
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
// Protokoll
|
// Protokoll
|
||||||
|
|||||||
@@ -4,10 +4,11 @@
|
|||||||
|
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
// Waveshare 7" (H): Einbaulage. Haengt das Panel auf dem Kopf (Flachbandkabel oben statt
|
// Waveshare 7" (H): Einbaulage. Haengt das Panel auf dem Kopf (Flachbandkabel oben statt
|
||||||
// unten), dreht 1 das Bild UND den Touch um 180 Grad. Auf 0 setzen, wenn das Panel
|
// unten), dreht 1 das Bild UND den Touch um 180 Grad. In der aktuellen Einbaulage steht
|
||||||
// andersherum eingebaut wird.
|
// das Bild richtig herum -> 0. Der Touch braucht davon unabhaengig eine Spiegelung,
|
||||||
|
// siehe WS7_TOUCH_MIRROR_RAW_X weiter unten.
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
#define WS7_ROTATE_180 1
|
#define WS7_ROTATE_180 0
|
||||||
|
|
||||||
#define EXAMPLE_LVGL_PORT_TASK_MAX_DELAY_MS 500 //range 2 to 2000
|
#define EXAMPLE_LVGL_PORT_TASK_MAX_DELAY_MS 500 //range 2 to 2000
|
||||||
#define EXAMPLE_LVGL_PORT_TASK_MIN_DELAY_MS 5 //range 1 to 100
|
#define EXAMPLE_LVGL_PORT_TASK_MIN_DELAY_MS 5 //range 1 to 100
|
||||||
@@ -83,11 +84,15 @@
|
|||||||
#define WS7_MADCTL 0x00
|
#define WS7_MADCTL 0x00
|
||||||
|
|
||||||
// Der GT9271 meldet im Hochformat: Roh-X 0..720, Roh-Y 0..1280. Fuer das Querformat
|
// Der GT9271 meldet im Hochformat: Roh-X 0..720, Roh-Y 0..1280. Fuer das Querformat
|
||||||
// werden die Achsen getauscht. Zeigt der Cursor spiegelverkehrt, hier die passende
|
// werden die Achsen getauscht. Die Spiegelung geschieht VOR dem Tausch, also noch auf den
|
||||||
// Achse auf 1 setzen (die Spiegelung geschieht VOR dem Tausch, auf den Rohwerten).
|
// Rohwerten: Roh-X wird zur Bildschirmhoehe, Roh-Y zur Bildschirmbreite.
|
||||||
|
// WS7_TOUCH_MIRROR_RAW_X = 1 -> dreht OBEN/UNTEN um
|
||||||
|
// WS7_TOUCH_MIRROR_RAW_Y = 1 -> dreht LINKS/RECHTS um
|
||||||
|
// Der Digitizer dieses Panels sitzt gegenueber dem Bild um die Hochachse gedreht, deshalb
|
||||||
|
// ist oben/unten dauerhaft aktiv.
|
||||||
#define WS7_TOUCH_RAW_X_MAX 720
|
#define WS7_TOUCH_RAW_X_MAX 720
|
||||||
#define WS7_TOUCH_RAW_Y_MAX 1280
|
#define WS7_TOUCH_RAW_Y_MAX 1280
|
||||||
#define WS7_TOUCH_MIRROR_RAW_X 0
|
#define WS7_TOUCH_MIRROR_RAW_X 1
|
||||||
#define WS7_TOUCH_MIRROR_RAW_Y 0
|
#define WS7_TOUCH_MIRROR_RAW_Y 0
|
||||||
|
|
||||||
#elif JC_PANEL_TYPE == JC_PANEL_70
|
#elif JC_PANEL_TYPE == JC_PANEL_70
|
||||||
|
|||||||
Reference in New Issue
Block a user