Die ersten Schritte mit einem neuen EVE4 Display-Controller müssen nicht kompliziert sein.
In dieser Anleitung erfahren Sie, wie Sie ein Riverdi EVE4-Display auf einem STM32 Evaluation Board zum Leben erwecken – von der ersten Verdrahtung bis zur Anzeige des ersten Frames.
Es handelt sich um eine präzise, aber dennoch auf den Punkt gebrachte Anleitung für Ingenieure, die eine solide Grundlage für künftige EVE-basierte Projekte suchen, ohne sich in unnötigen Details zu verlieren: Verdrahten; Öffnen des Projekts in STM32CubeIDE; Erstellen und Flashen; Bestätigen der Anzeige und Berührung – konzentriert auf das Wesentliche; ein erstes Projekt, das Sie als Grundlage für künftige, komplexere Anwendungen wiederverwenden können.
Hardware


| Artikel | Beispiel/PN | Anmerkungen |
| ST-Link V3/V2 | STLINK-V3 | Beide Versionen funktionieren gut |
| Riverdi Auswertungsplatine | STM32 Evaluierungsboard | RiBUS-kompatibel |
| EVE4 7″ | RVT70HSBNWC00-B | 7″ IPS, BT817Q |
| RiBUS FFC | FFC0520150 | Enthalten in Evaluation Board und EVE4 |
| Überbrückungskappen | – | Enthalten im Evaluation Board |
| USB-Kabel | 2× Micro-USB | Enthalten in Evaluation Board und ST-Link |
| FF Überbrückungsdrähte | – | SWD |



RiBUS
- Die blaue Versteifung auf dem FFC zeigt normalerweise zur Verriegelung des Steckers (oben). Schieben Sie den Stecker vollständig ein und schließen Sie dann die Verriegelung.
- Verlegen Sie das Kabel mit einem sanften Biegeradius – keine scharfen Knicke – und achten Sie darauf, dass die Kontaktseite mit der Anschlussfläche an beiden Enden übereinstimmt.
- Schalten Sie die Karte nicht ein, während Sie den FFC einlegen/entfernen.
Software
- Installieren Sie STM32CubeIDE.
- (Optional) Installieren Sie STM32CubeProgrammer für einfaches Flashen über ST-Link.
- (Optional) Installieren Sie Git (oder planen Sie den Download einer ZIP-Datei).
- Nur Windows: Installieren Sie den ST-Link USB-Treiber (CubeProgrammer kann dies tun).
Sie bevorzugen eine andere Umgebung (Keil/IAR/Make/PlatformIO)? Das ist in Ordnung – diese Anleitung verwendet der Übersichtlichkeit halber nur CubeIDE.
Holen Sie sich das Projekt von GitHub
Option A
- Öffnen Sie das Repository: Riverdi EVE Demo
- Klicken Sie auf den grünen Code und kopieren Sie die HTTPS-URL (siehe Bild unten).


- Öffnen Sie ein Terminal in dem Verzeichnis, in dem Sie Ihr Projekt haben möchten, und geben Sie ein: git clone https://github.com/riverdi/riverdi-eve4-demo.git riverdi-eve-demo
Option B
- Öffnen Sie das Repository: Riverdi EVE Demo
- Klicken Sie auf den grünen Code und ZIP herunterladen
- Entpacken Sie in einen geeigneten Ordner (z.B. … C:\Users\User1 \riverdi-eve-demo)
Importieren Sie das Projekt in STM32CubeIDE
Folgen Sie diesen Schritten, um das geklonte/entpackte Repo in CubeIDE zu bringen.
- Gehen Sie in CubeIDE auf Datei → Neu → Makefile-Projekt mit vorhandenem Code.
- Vorhandener Code-Speicherort: Klicken Sie auf Durchsuchen… und wählen Sie Ihren riverdi-eve Ordner aus.
- Projektname: Behalten Sie den vorgeschlagenen Namen bei oder geben Sie Ihren eigenen ein.
- Sprachen: Lassen Sie C und C++ markiert.
- Toolchain für Indexer-Einstellungen: Wählen Sie MCU ARM GCC.
- Klicken Sie auf Fertig stellen. Das Projekt wird im Projekt-Explorer angezeigt.


Wenn „MCU ARM GCC“ nicht aufgeführt ist:
- Installieren/Reparieren Sie CubeIDE-Komponenten über Hilfe → Eingebettete Softwarepakete verwalten (oder installieren Sie CubeIDE neu).
- Starten Sie CubeIDE neu und versuchen Sie den Import erneut.
Konfigurieren Sie das Projekt
- Wählen Sie die Plattform Makefile
Das Repo unterstützt mehrere Hosts. Für das Riverdi STM32 Evaluation Board (F4), verwenden Sie:- Makefile.stm32f4 (zu finden im Stammverzeichnis des Projekts)
- Benennen Sie es um, damit es aktiv wird
Benennen Sie Makefile.stm32f4 → Makefile (CubeIDE und make suchen nach genau diesem Dateinamen). - Legen Sie Ihre Panel-/Display-Definitionen fest
Öffnen Sie das neu umbenannte Makefile und stellen Sie sicher, dass die folgenden Flags für ein 7″ EVE4 IPS-Modul vorhanden sind (deaktivieren/hinzufügen, falls erforderlich):
# EVE Generation
DEFS += -DEVE_4
# EVE4 verwendet normalerweise einen externen Oszillator
DEFS += -DEVE_4_EXTERN_OSC
# Bildschirmauswahl (7″ IPS)
DEFS += -DIPS_70
Verwenden Sie ein anderes Riverdi EVE-Display?
Ersetzen Sie -DIPS_70 durch das entsprechende Define, das im Makefile auskommentiert ist (der Timing-Block für HSIZE/VSIZE/HCYCLE/VCYCLE usw. ist an dieses Define gebunden).
In der Regel brauchen Sie nichts weiter zu ändern – belassen Sie die anderen Parameter bei einem ersten Build auf ihren Standardwerten.
Struktur des Hauptcodes
Die riverdi-eve Demo verwendet ein mehrschichtiges Design:
- host_layer – Plattformbindungen (SPI, GPIO, Timing) für STM32, RPi, FT232H/Windows, usw.
- eve_layer – portabler EVE-Treiber (Register/RAM-Zugriff, Befehls-FIFO, Co-Prozessor-Befehle).
- app_layer-Hilfsprogramme und Anwendungslogik (DL/Befehlspufferung, Berührungsbehandlung, Kalibrierung, einfache Benutzeroberfläche/Sound).
Außerdem enthält riverdi_modules Panel-Definitionen (Auflösung, Syncs, pclk, PWM-Vorgaben) und riverdi-demo.c enthält die Beispielanwendung, die die Ebenen zusammenfügt.
Wie EVE4 tatsächlich aufwacht (mit Code-Breadcrumbs)
Wenn Sie die Karte zurücksetzen, führt die Demo die EVE4 durch eine präzise Initialisierungssequenz.
- Bringen Sie die MCU + HAL online
Bevor EVE Sie hören kann, muss STM32 Uhren und Busse bereit haben.- App_Common_Init() – App/Platine vorbereiten.
- Gpu_Hal_Init() – Bridgetek HAL für SPI/GPIO/Zeitgeber.
- platform_init() – Low-Level-Uhr/Timer-Init für STM32F4.
- Verkabeln Sie die Verbindung und übernehmen Sie die Kontrolle
Binden Sie die Kontrollpins und garantieren Sie einen sauberen Start.- Gpu_Hal_Open() – weist CS, PD, INT zu; hält CS/PD hoch.
- Gpu_Hal_Powercycle() – schaltet PD für einen Kaltstart um.
- Wecken Sie die GPU auf und überprüfen Sie die Kommunikation
Schalten Sie auf aktiv und überprüfen Sie die Verbindung.- Host-Befehl → ACTIVE – EVE in den aktiven Modus versetzen.
- Clock config – Programmieren Sie die Zielfrequenz (EVE4 verwendet normalerweise den externen Oszillator).
- Rückmeldungen – überprüfen Sie die REG_ID des Geräts und den Motorstatus (Co-Prozessor, Touch, Audio).
- Programmieren Sie Panel Timings + Hintergrundbeleuchtung
Beschreiben Sie dem Controller Ihr Glas.- Timing-Block schreiben: HSIZE/VSIZE/HCYCLE/VCYCLE, Syncs, PCLK_POL, SWIZZLE, usw.
- Konfigurieren Sie die PWM für die Hintergrundbeleuchtung (REG_PWM_HZ, REG_PWM_DUTY).
- Hinweis (EVE4): Sie stellen auch die Taktquelle/Frequenz des Displays zusammen mit der PWM ein, damit die Timings mit dem Panel übereinstimmen.
Der „EVE4-Hinweis“ ist konzeptionell in Ordnung – achten Sie nur darauf, dass Sie den Pixeltakt und (falls zutreffend) die von EVE4 verwendeten PLL-/Displaytakt-Register setzen und REG_PCLK zuletzt aktivieren.
- Erster Frame: build → flush → swap
Das erste Bild ist eine winzige Display-Liste.- CLEAR_COLOR_RGB(r,g,b) – Hintergrundfarbe.
- CLEAR(1,1,1) – Farbe/Schablone/Anhänger löschen.
- DISPLAY() – Ende von DL.
- Flush_DL_Buffer() – kopiert DL in RAM_DL.
- Gpu_Hal_DLSwap(…, DLSWAP_FRAME) – macht ihn sichtbar.
Anzeigeliste (DL) in Bridgetek EVE
Liste anzeigen – was, warum und warum es gut ist
Eine Anzeigeliste ist das Skript pro Frame, das EVE genau mitteilt, was gezeichnet werden soll (klare Farbe, Formen/Widgets/Text, Bilder) und mit DISPLAY() plus einem DLSWAP_FRAME endet, um es sichtbar zu machen. Wir brauchen es, weil EVE aus einer vollständigen, geordneten Liste rendert – ohne es würden partielle Aktualisierungen flackern und das Timing wäre unvorhersehbar. Es ist eine gute Lösung, weil die Befehle gebündelt werden (weniger SPI-Transfers), die Frames deterministisch bleiben (gleiche Liste → gleiche Pixel) und die MCU den nächsten Frame erstellen kann, während EVE den aktuellen zeichnet – glatte UIs mit minimaler CPU-Last.
Typischer Zyklus
- Erstellen: Warteschlangenbefehle (Farben, Formen, Widgets, Bilder).
- Flush: schreibt die Bytes in RAM_DL.
- Tauschen: Setzen Sie DLSWAP_FRAME, damit die neue Liste sichtbar wird.
Dies minimiert den MCU↔EVE-Verkehr und sorgt für reibungslose Aktualisierungen auch bei UI-Animationen. Beispiel:
App_WrDl_Buffer(phost, CLEAR_COLOR_RGB(0, 64, 128));
App_WrDl_Buffer(phost, CLEAR(1,1,1));
App_WrDl_Buffer(phost, DISPLAY());
App_Flush_DL_Buffer(phost);
Gpu_Hal_DLSwap(phost, DLSWAP_FRAME);
Weitere Details (Befehlssatz, Registerkarte, FIFO-Verhalten) finden Sie im Bridgetek Programmierhandbuch für die BT81x-Serie.
Zusammenfassung
Sie haben nun alle wichtigen Schritte abgeschlossen, um Ihr Riverdi EVE4-Display auf STM32einzuschalten und zu überprüfen – von derEinrichtung der Hardware bis zum Rendern des ersten Bildes mit der EVE-Engine von Bridgetek.
Wenn dieses Basisprojekt funktioniert, können Sie damit beginnen, benutzerdefinierte Anzeigelisten, erweiterte Touch-Interaktionen und eine vollständige UI-Entwicklung für Ihr nächstes Embedded Design zu erforschen.
ENTDECKEN SIE UNSER
Whitepaper
Erzielen Sie die perfekte Interaktion zwischen Benutzer und Display mit dem richtigen Touchsensor-IC. Hatten Sie jemals Probleme mit Phantomberührungen oder Zertifizierungen? Verbessern Sie Ihre Forschung und Entwicklung wie ein Profi mit unserem Whitepaper!



