Link copiato negli appunti!

Come iniziare a visualizzare EVE4 – Guida completa

Back to top

Iniziare a utilizzare un nuovo display controller EVE4 non deve essere necessariamente complesso.

In questa guida scoprirai come dare vita a un display Riverdi EVE4 su una scheda di valutazione STM32, dal primo cablaggio alla visualizzazione del frame iniziale.

Si tratta di una guida precisa e al tempo stesso precisa, pensata per gli ingegneri che vogliono avere una base solida per i futuri progetti basati su EVE senza perdersi in dettagli inutili: cablaggio, apertura del progetto in STM32CubeIDE, compilazione e flash, conferma del display e del touch concentrati sull’essenziale; un primo progetto che potrai riutilizzare come base per future applicazioni più complesse.

 

Hardware

 

ArticoloEsempio/PNNote
ST-Link V3/V2STLINK-V3Entrambe le versioni funzionano bene
Scheda di valutazione RiverdiScheda di valutazione STM32Compatibile con RiBUS
EVE4 7″RVT70HSBNWC00-B7″ IPS, BT817Q
RiBUS FFCFFC0520150Incluso nella scheda di valutazione e nell’EVE4
Tappi per ponticelliInclusi nella scheda di valutazione
Cavi USB2× Micro-USBIncluso nella scheda di valutazione e in ST-Link
Fili di ponticello FFSWD

 

RiBUS

  • Il rinforzo blu sull’FFC è solitamente rivolto verso la chiusura del connettore (in alto). Inseriscilo completamente, quindi chiudi la chiusura.
  • Passa il cavo con un leggero raggio di curvatura, senza pieghe brusche, e assicurati che il lato di contatto corrisponda all’impronta del connettore su entrambe le estremità.
  • Non alimentare la scheda mentre inserisci/rimuovi l’FFC.

 

Software

  • Installa STM32CubeIDE.
  • (Opzionale) Installa STM32CubeProgrammer per facilitare il flashing tramite ST-Link.
  • (Opzionale) Installa Git (o pianifica di scaricare uno ZIP).
  • Solo per Windows: installa il driver USB ST-Link (CubeProgrammer può farlo).

Preferisci un ambiente diverso (Keil/IAR/Make/PlatformIO)? Non c’è problema: questa guida utilizza solo CubeIDE per chiarezza.

 

Ottieni il progetto da GitHub

Opzione A

  1. Apri il repository: Riverdi EVE demo
  2. Clicca sul Codice verde e copia l’URL HTTPS (controlla l’immagine qui sotto).
  3. Apri il terminale nella directory in cui vuoi che il tuo progetto si trovi e digita: git clone https://github.com/riverdi/riverdi-eve4-demo.git riverdi-eve-demo

 

Opzione B

  1. Apri il repository: Riverdi EVE demo
  2. Clicca sul codice verde e scarica lo ZIP
  3. Decomprimi in una cartella comoda (ad es. … C:\Users\User1 \riverdi-eve-demo)

 

Importa il progetto in STM32CubeIDE

Segui questi passaggi per portare la repo clonata/scompressa in CubeIDE.

  1. In CubeIDE, vai su File → Nuovo → Progetto Makefile con codice esistente.
  2. Posizione del codice esistente: clicca su Sfoglia… e seleziona la cartella riverdi-eve.
  3. Nome del progetto: conserva il nome suggerito o inserisci il tuo.
  4. Lingue: lascia selezionata la voce C e C++.
  5. Impostazioni Toolchain per Indexer: seleziona MCU ARM GCC.
  6. Clicca su Fine. Il progetto apparirà in Project Explorer.

 

 

Se “MCU ARM GCC” non è presente nell’elenco:

  • Installa/ripristina i componenti di CubeIDE tramite Aiuto → Gestisci i pacchetti software integrati (o reinstalla CubeIDE).
  • Riavvia CubeIDE e riprova l’importazione.

 

Configura il progetto

  1. Scegli la piattaforma Makefile
    Il repo supporta più host. Per la scheda di valutazione STM32 Riverdi (F4), usa:

    • Makefile.stm32f4 (si trova nella root del progetto)
  2. Rinominalo per renderlo attivo
    Rinomina Makefile.stm32f4 → Makefile (CubeIDE e make cercano questo esatto nome di file).
  3. Imposta le definizioni del tuo pannello/display
    Apri il Makefile appena rinominato e assicurati che siano presenti i seguenti flag (disincronizza/aggiungi se necessario) per un modulo EVE4 IPS da 7″:

# Generazione di EVE
DEFS += -DEVE_4
# L’EVE4 utilizza tipicamente un oscillatore esterno.
DEFS += -DEVE_4_EXTERNAL_OSC

# Selezione del pannello (7″ IPS)
DEFS += -DIPS_70

Stai usando un altro display Riverdi EVE?
Sostituisci -DIPS_70 con la definizione corrispondente commentata nel Makefile (il blocco di temporizzazione per HSIZE/VSIZE/HCYCLE/VCYCLE ecc. è legato a quella definizione).
In genere non è necessario modificare nient’altro: per una prima compilazione, gli altri parametri devono essere mantenuti ai valori predefiniti.

 

Struttura del codice principale

Il demo di riverdi-eve utilizza un design a strati:

  • host_layer – binding della piattaforma (SPI, GPIO, timing) per STM32, RPi, FT232H/Windows, ecc.
  • eve_layer – driver EVE portatile (accesso a registri/RAM, FIFO di comando, comandi del co-processore).
  • app_layer –aiutanti e logica dell’applicazione (buffering di DL/comandi, gestione del tocco, calibrazione, semplice UI/suono).

Inoltre, riverdi_modules contiene le definizioni dei pannelli (risoluzione, sincronizzazioni, pclk, default PWM) e riverdi-demo.c contiene l’applicazione di esempio che unisce i livelli.

Come si sveglia EVE4 (con briciole di codice)

Quando si resetta la scheda, la demo guida l’EVE4 attraverso una precisa sequenza di avvio.

  1. Porta l’MCU + HAL online
    Prima che EVE possa ascoltarti, l’STM32 deve avere orologi e bus pronti.

    • App_Common_Init() – preparazione dell’applicazione/scheda.
    • Gpu_Hal_Init() – HAL Bridgetek per SPI/GPIO/timers.
    • platform_init() – init a basso livello di clock/timer per STM32F4.
  2. Collega il link e prendi il controllo
    Collega i pin di controllo e garantisci un avvio pulito.

    • Gpu_Hal_Open() – assegna CS, PD, INT; mantiene CS/PD alti.
    • Gpu_Hal_Powercycle() – attiva il PD per un avvio a freddo.
  3. Risveglia la GPU e verifica le comunicazioni
    Passa ad attivo e verifica il collegamento.

    • Comando host → ATTIVO – EVE in modalità attiva.
    • Clock config – programma la frequenza di destinazione (EVE4 in genere utilizza l’oscillatore esterno).
    • Readback – verifica il REG_ID del dispositivo e lo stato del motore (co-processore, touch, audio).
  4. Programma le tempistiche del pannello + la retroilluminazione
    Descrivi il tuo bicchiere al controller.

    • Blocco di temporizzazione della scrittura: HSIZE/VSIZE/HCYCLE/VCYCLE, sincronizzazioni, PCLK_POL, SWIZZLE, ecc.
    • Configura il PWM per la retroilluminazione (REG_PWM_HZ, REG_PWM_DUTY).
    • Nota (EVE4): dovrai anche impostare la sorgente/frequenza dell’orologio del display insieme al PWM in modo che i tempi corrispondano a quelli del pannello.

    Quella “nota di EVE4” va bene concettualmente – basta essere espliciti nell’impostare il pixel clock e (se applicabile) i registri PLL/display clock utilizzati da EVE4, quindi abilitare REG_PCLK per ultimo.

  5. Prima immagine: build → flush → swap
    La prima immagine è un piccolo Elenco di visualizzazione.

    • CLEAR_COLOR_RGB(r,g,b) – colore di sfondo.
    • CLEAR(1,1,1) – cancella il colore/la matita/l’etichetta.
    • DISPLAY() – fine di DL.
    • Flush_DL_Buffer() – copia DL nella RAM_DL.
    • Gpu_Hal_DLSwap(…, DLSWAP_FRAME) – lo rende visibile.

 

Elenco di visualizzazione (DL) in Bridgetek EVE

Elenco di visualizzazione: cosa, perché e perché è utile

Un elenco di visualizzazione è lo script per fotogramma che dice a EVE esattamente cosa disegnare (colore chiaro, forme/widget/testo, immagini) e termina con DISPLAY() più un DLSWAP_FRAME per renderlo visibile. Ne abbiamo bisogno perché EVE esegue il rendering da un elenco completo e ordinato: senza di esso, gli aggiornamenti parziali sfarfallerebbero e i tempi sarebbero imprevedibili. È una buona soluzione perché raggruppa i comandi (meno trasferimenti SPI), mantiene i fotogrammi deterministici (stesso elenco → stessi pixel) e permette all’MCU di creare il fotogramma successivo mentre EVE disegna quello attuale: un’interfaccia utente fluida con un carico minimo per la CPU.

Ciclo tipico

  1. Build: comandi in coda (colori, forme, widget, immagini).
  2. Flush: scrive i byte nella RAM_DL.
  3. Scambio: imposta DLSWAP_FRAME in modo che il nuovo elenco sia visibile.

In questo modo si riduce al minimo il traffico della MCU↔EVE e si ottengono aggiornamenti fluidi anche per le animazioni dell’interfaccia utente. Esempio:

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);

Per maggiori dettagli (set di comandi, mappa dei registri, comportamento della FIFO), consulta la Guida alla programmazione di Bridgetek per la serie BT81x.

 

Sintesi

Ora hai completato tutti i passaggi essenziali per accendere e verificare il tuo display Riverdi EVE4 su STM32, dallaconfigurazione dell’hardware al rendering del primo fotogramma utilizzando il motore EVE di Bridgetek.

Con questo progetto di base funzionante, puoi iniziare a esplorare elenchi di visualizzazione personalizzati, interazioni touch avanzate e lo sviluppo completo dell’interfaccia utente per il tuo prossimo progetto incorporato.

SCOPRI IL NOSTRO

Carta bianca

Ottieni un’interazione perfetta tra utente e display con il giusto IC per sensore tattile. Hai mai avuto problemi con eventi di tocco fantasma o con la certificazione? Potenzia la tua ricerca e sviluppo come un professionista con il nostro Whitepaper!

Consulta il nostro catalogo prodotti e scopri come puoi risparmiare sulla qualità, non sulla qualità.

Contattaci subito, risparmia con la qualità, non sulla qualità.