¡Enlace copiado en el portapapeles!

Introducción a la visualización de EVE4 – guía completa

Back to top

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ículoEjemplo/PNNotas
ST-Link V3/V2STLINK-V3Ambas versiones funcionan bien
Placa de evaluación RiverdiPlaca de evaluación STM32Compatible con RiBUS
EVE4 7RVT70HSBNWC00-B7″ IPS, BT817Q
RiBUS FFCFFC0520150Incluido en la placa de evaluación y en el EVE4
TaponesIncluidas en la placa de evaluación
Cables USB2× Micro-USBIncluidos en la placa de evaluación y en el ST-Link
Cables puente FFSWD

 

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

  1. Abre el repositorio: Riverdi EVE demo
  2. Haz clic en el Código verde y copia la URL HTTPS (mira la imagen de abajo)
  3. 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

  1. Abre el repositorio: Riverdi EVE demo
  2. Haz clic en el Código verde y Descarga ZIP
  3. 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.

  1. En CubeIDE, ve a Archivo → Nuevo → Proyecto Makefile con código existente.
  2. Ubicación del código existente: haz clic en Examinar… y selecciona tu carpeta riverdi-eve.
  3. Nombre del proyecto: mantén el nombre sugerido o introduce el tuyo propio.
  4. Idiomas: deja marcados C y C++.
  5. Cadena de herramientas para la configuración del Indexador: selecciona MCU ARM GCC.
  6. 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

  1. 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)
  2. 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).
  3. 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.

  1. 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.
  2. 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.
  3. 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).
  4. 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.

  5. 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

  1. Construir: comandos de cola (colores, formas, widgets, imágenes).
  2. Flush: escribe los bytes en RAM_DL.
  3. 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!

Ve a nuestro catálogo de productos y comprueba cómo puedes ahorrar por calidad, no en calidad.

Ponte en contacto con nosotros ahora, ahorra con calidad, no en calidad.