Empezar a utilizar un nuevo controlador de pantalla EVE4 no tiene por qué ser complejo.
En esta guía, aprenderás a dar vida a una pantalla Riverdi EVE4 en la placa de evaluación STM32, desde el primer cableado hasta mostrar el fotograma inicial.
Se trata de un recorrido preciso, pero directo, diseñado para ingenieros que desean una base sólida para futuros proyectos basados en EVE sin perderse en detalles innecesarios: cablearlo; abrir el proyecto en STM32CubeIDE; construir y flashear; confirmar la visualización y el toque centrados en lo esencial; un primer proyecto que puedes reutilizar como base para futuras aplicaciones más complejas.
Hardware


| Artículo | Ejemplo/PN | Notas |
| ST-Link V3/V2 | STLINK-V3 | Ambas versiones funcionan bien |
| Placa de evaluación Riverdi | Placa de evaluación STM32 | Compatible con RiBUS |
| EVE4 7 | RVT70HSBNWC00-B | 7″ IPS, BT817Q |
| RiBUS FFC | FFC0520150 | Incluido en la placa de evaluación y en el EVE4 |
| Tapones | – | Incluidas en la placa de evaluación |
| Cables USB | 2× Micro-USB | Incluidos en la placa de evaluación y en el ST-Link |
| Cables puente FF | – | SWD |



RiBUS
- El refuerzo azul del FFC suele estar orientado hacia el pestillo del conector (arriba). Insértalo completamente y cierra el pestillo.
- Enruta el cable con un radio de curvatura suave -sin pliegues pronunciados- y asegúrate de que el lado de contacto coincide con la huella del conector en ambos extremos.
- No alimentes la placa mientras introduces/extraes el FFC.
Software
- Instala STM32CubeIDE.
- (Opcional) Instala STM32CubeProgrammer para facilitar el flasheo a través de ST-Link.
- (Opcional) Instala Git (o planea descargar un ZIP).
- Sólo Windows: instala el controlador USB ST-Link (CubeProgrammer puede hacerlo).
¿Prefieres otro entorno (Keil/IAR/Make/PlatformIO)? No pasa nada: esta guía sólo utiliza CubeIDE para mayor claridad.
Obtén el proyecto de GitHub
Opción A
- Abre el repositorio: Riverdi EVE demo
- Haz clic en el Código verde y copia la URL HTTPS (mira la imagen de abajo)


- Abre el terminal en el directorio en el que quieras tener tu proyecto y escribe: git clone https://github.com/riverdi/riverdi-eve4-demo.git riverdi-eve-demo
Opción B
- Abre el repositorio: Riverdi EVE demo
- Haz clic en el Código verde y Descarga ZIP
- Descomprímelo en una carpeta adecuada (por ejemplo, … C:\Usuarios\Usuario1\riverdi-eve-demo)
Importa el proyecto a STM32CubeIDE
Sigue estos pasos para introducir el repositorio clonado/descomprimido en CubeIDE.
- En CubeIDE, ve a Archivo → Nuevo → Proyecto Makefile con código existente.
- Ubicación del código existente: haz clic en Examinar… y selecciona tu carpeta riverdi-eve.
- Nombre del proyecto: mantén el nombre sugerido o introduce el tuyo propio.
- Idiomas: deja marcados C y C++.
- Cadena de herramientas para la configuración del Indexador: selecciona MCU ARM GCC.
- Haz clic en Finalizar. El proyecto aparecerá en el Explorador de Proyectos.


Si «MCU ARM GCC» no aparece en la lista:
- Instala/repara los componentes de CubeIDE mediante Ayuda → Gestionar paquetes de software integrado (o reinstala CubeIDE).
- Reinicia CubeIDE y vuelve a intentar la importación.
Configura el proyecto
- Elige la plataforma Makefile
El repositorio admite varios hosts. Para la placa de evaluación STM32 Riverdi (F4), utiliza:- Makefile.stm32f4 (se encuentra en la raíz del proyecto)
- Cámbiale el nombre para que se active
Cámbiale el nombre a Makefile.stm32f4 → Makefile (CubeIDE y make buscan exactamente este nombre de archivo). - Define tu panel/pantalla
Abre el Makefile recién renombrado y asegúrate de que están presentes las siguientes banderas (descomenta/añade lo que sea necesario) para un módulo IPS EVE4 de 7″:
# Generación EVE
DEFS += -DEVE_4
# El EVE4 suele utilizar un oscilador externo
DEFS += -DEVE_4_EXTERNAL_OSC
# Selección de panel (7″ IPS)
DEFS += -DIPS_70
¿Utilizas una pantalla Riverdi EVE diferente?
Sustituye -DIPS_70 por la definición correspondiente que se comenta en el Makefile (el bloque de sincronización para HSIZE/VSIZE/HCYCLE/VCYCLE, etc., está vinculado a esa definición).
Por lo general, no necesitas cambiar nada más: mantén los demás parámetros en sus valores predeterminados para una primera compilación.
Estructura principal del código
La demo riverdi-eve utiliza un diseño por capas:
- host_layer – enlaces de plataforma (SPI, GPIO, temporización) para STM32, RPi, FT232H/Windows, etc.
- eve_layer – controlador portátil de EVE (acceso a registro/RAM, FIFO de comandos, comandos de coprocesador).
- app_layer-ayudantes y lógica de la aplicación (DL/almacenamiento de comandos, manejo táctil, calibración, interfaz de usuario/sonido sencillos).
Además, riverdi_modules contiene definiciones de paneles (resolución, sincronización, pclk, valores predeterminados de PWM), y riverdi-demo.c contiene la aplicación de ejemplo que une las capas.
Cómo se despierta realmente EVE4 (con migas de pan de código)
Cuando reinicias la placa, la demo guía al EVE4 a través de una secuencia de inicio precisa.
- Pon en línea la MCU + HAL
Antes de que EVE pueda oírte, STM32 debe tener listos los relojes y los buses.- App_Common_Init() – preparación de la aplicación/placa.
- Gpu_Hal_Init() – Bridgetek HAL para SPI/GPIO/temporizadores.
- platform_init() – init de reloj/temporizador de bajo nivel para STM32F4.
- Cablea el enlace y toma el control
Une las clavijas de control y garantiza un arranque limpio.- Gpu_Hal_Open() – asigna CS, PD, INT; mantiene CS/PD en alto.
- Gpu_Hal_Powercycle() – activa PD para un arranque en frío.
- Despierta la GPU y comprueba las comunicaciones
Cambia a activo y comprueba el enlace.- Comando anfitrión → ACTIVO – EVE en modo Activo.
- Configurar reloj – programa la frecuencia objetivo (EVE4 suele utilizar el oscilador externo).
- Readbacks – comprueba el REG_ID del dispositivo y el estado del motor (coprocesador, táctil, audio).
- Programa los tiempos del panel + retroiluminación
Describe tu cristal al controlador.- Bloque de temporización de escritura: HSIZE/VSIZE/HCYCLE/VCYCLE, sincronizaciones, PCLK_POL, SWIZZLE, etc.
- Configura el PWM para la retroiluminación (REG_PWM_HZ, REG_PWM_DUTY).
- Nota (EVE4): también configurarás la fuente/frecuencia del reloj de la pantalla junto con el PWM para que los tiempos coincidan con los del panel.
Esa «nota de EVE4» está bien conceptualmente; sólo tienes que ser explícito al establecer el reloj de píxeles y (si procede) los registros PLL/reloj de pantalla utilizados por EVE4, y activar REG_PCLK en último lugar.
- Primer fotograma: construir → purgar → intercambiar
La primera imagen es una pequeña Lista de Visualización.- CLEAR_COLOR_RGB(r,g,b) – color de fondo.
- BORRAR(1,1,1) – borrar color/esténcil/etiqueta.
- DISPLAY() – fin de DL.
- Flush_DL_Buffer() – copia DL a RAM_DL.
- Gpu_Hal_DLSwap(…, DLSWAP_FRAME) – hazlo visible.
Lista de visualización (DL) en Bridgetek EVE
Lista de visualización: qué, por qué y por qué es buena
Una Lista de Visualización es el script por fotograma que indica a EVE exactamente qué debe dibujar (color claro, formas/widgets/texto, imágenes) y termina con DISPLAY() más un DLSWAP_FRAME para hacerlo visible. Lo necesitamos porque EVE renderiza a partir de una lista completa y ordenada: sin él, las actualizaciones parciales parpadearían y la sincronización sería impredecible. Es una buena solución porque agrupa los comandos (menos transferencias SPI), mantiene los fotogramas deterministas (misma lista → mismos píxeles), y permite que la MCU construya el siguiente fotograma mientras EVE dibuja el actual: interfaces de usuario fluidas con una carga mínima de la CPU.
Ciclo típico
- Construir: comandos de cola (colores, formas, widgets, imágenes).
- Flush: escribe los bytes en RAM_DL.
- Intercambiar: establece DLSWAP_FRAME para que la nueva lista sea visible.
Esto minimiza el tráfico MCU↔EVE y produce actualizaciones suaves incluso para las animaciones UI. Ejemplo:
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);
Para más detalles (conjunto de comandos, mapa de registros, comportamiento FIFO), consulta la Guía de programación de Bridgetek para la serie BT81x.
Resumen
Ya has completado todos los pasos esenciales para encender y verificar tu pantalla Riverdi EVE4 en STM32, desde laconfiguración del hardware hasta la renderización del primer fotograma utilizando el motor EVE de Bridgetek.
Con este proyecto base en funcionamiento, puedes empezar a explorar listas de visualización personalizadas, interacciones táctiles avanzadas y desarrollo completo de la interfaz de usuario para tu próximo diseño integrado.
DESCUBRE NUESTRA
Libro Blanco
Consigue una interacción perfecta entre el usuario y la pantalla con el CI de sensor táctil adecuado. ¿Te has enfrentado alguna vez a problemas con eventos táctiles fantasma o de certificación? ¡Impulsa tu I+D como un profesional con nuestro Libro Blanco!



