En el siguiente tutorial veremos cómo conectar a la BASYS 3 un display de 7 segmentos y 8 dígitos controlado con el MAX7219.
MAX7219 - display de 7 segmentos y 8 dígitos
El MAX7219 usa una interfaz serie síncrona tipo SPI de 3 hilos (DIN, CLK, LOAD) para controlar hasta 8 dígitos de 7 segmentos, 64 ledes o una matriz 8×8 de manera eficiente.
Como ejemplo de aplicación haremos un contador cuya salida sacaremos en binario por un bus de 32 bits de ancho. El valor del contador se muestra en hexadecimal en los ocho dígitos del display.
El esquema de conexión es muy sencillo. Conectamos la alimentación a los pines 3V3 y GND de la BASYS 3 y las señales DIN, CLK, LOAD a los pines JA0, JA1 y JA2 respectivamente.
El circuito consiste en una señal de reloj customizada de 1Hz para el contador, el contador de 32 bits y el driver para el MAX7219.
El pulsador reset_counter resetea el contador a 0 y el switch reset_max congela el módulo MAX7259 pero el contador sigue funcionando.
En la siguiente imagen podemos ver el código Verilog del módulo superior del proyecto. No pego todo el código de los módulos individuales para que no quede muy extenso, pero los puedes descargar al final e la página.
Subimos el código a la BASYS 3 y vemos el valor del contador reflejado en el display de ocho dígitos.
Este proyecto nos va a venir muy bien para conectar el display al procesador MIPS y ver en tiempo real la información que circula por los buses de datos. Próximamente.
MAX7219 Verilog code by cidoca Thanks for sharing
Descarga el código Verilog en el siguiente enlace.