Controladores de 7 segmentos: ¿Cómo funcionan / cómo manejarlos?

0

Así que sé que para manejar una pantalla de 7 segmentos necesitas una TONADA de pines. Sin embargo, hay controladores de pantalla de 7 segmentos (como el MAX7219) que parecen bastante populares.

Sin embargo, estoy mirando la hoja de datos, y estoy un poco confundido. ( enlace ). Menciona el SEG A-G que se conecta a los segmentos obvios de la pantalla de 7 segmentos (AND2307SLC mencionado en la hoja de datos) ... pero ¿para qué son exactamente los DIGI 0-7? (Pero luego en la página 13 se muestran realmente conectados).

Tal vez estoy un poco confundido cómo funciona exactamente. Desde mi vago entendimiento, le enviamos datos en serie al pin DIN de qué segmento queremos mostrar, y se lo enviamos a SEG A-G. (Enviamos 16 bits, y solo se ve en los últimos 4 ¿correcto?) (Por cierto, esto hace que no entienda qué es LOAD exactamente).

Y luego está el modo de decodificación, que supongo que es la forma principal de activar los dígitos a través de la serie en lugar de simplemente activarlos a través de DIG7-DIG0.

¿Estoy en el camino correcto en esto? Estoy un poco confundido de cómo funciona todo junto. También tengo curiosidad por saber cómo se maneja la activación de múltiples segmentos cuando se hace a través de una serie. ¿Está almacenando algo en la SRAM y luego usa algún tipo de temporizador / actualización para mantener los dígitos?

Gracias, es una especie de chip interesante sobre el que me gustaría aprender más.

    
pregunta msmith1114

3 respuestas

1

El diagrama funcional en p5 muestra 5 registros, incluido un registro MODE que define cómo el chip interpreta los datos entrantes.

En el "modo" de segmento directo, la ROM del CÓDIGO B se omitirá para el control directo del registro SIPO (entrada de serie, par. out) al controlador de segmento.

En el "modo" de decodificador de segmento normal, los valores de cada dígito se almacenan en la SRAM de doble puerto y los dígitos se MUX entre 1 y 8 dígitos como se preselecciona para seleccionar tanto los controladores de dígitos como los registros de SRAM.

Los límites de corriente de un LED tienen un pico máximo y una clasificación continua, por lo que no se deben sobrepasar ninguno de los dos, considerando que el brillo promedio está controlado por Rset y PWM, así como el ciclo de trabajo promedio determinado por el número de dígitos.

Los dígitos del cátodo común se conducen a baja con un interruptor de caída de baja tensión, mientras que el segmento del ánodo está regulado por la corriente de + ve por cada dígito.

Esto también plantea un desafío para los proveedores de LED de tener suficiente brillo cuando + ve pulsó en el límite de corriente definido con un ciclo de trabajo de 1/8 sin fusionar la unión de la densidad de corriente excesiva. Esto también está físicamente conectado por un cable de bigotes de oro casi visible. Allí se encuentra la compensación a la corriente máxima y al tamaño del cable.

Si la demanda es superior a 40 mA, se necesita un controlador de segmento externo.

    
respondido por el Tony EE rocketscientist
2

Mire el diagrama funcional de la hoja de datos que publicó.

Cada dígito de la pantalla tiene ocho LED, con todos sus cátodos o todos sus ánodos unidos (el controlador dirá si es un cátodo común o un ánodo común). Cada segmento de cada dígito tiene su otro lado unido. Esto le permite al conductor activar cada dígito, a su vez, para mostrar el patrón deseado en los segmentos.

La comunicación con el controlador utiliza la serie síncrona. Se desplaza en bits utilizando el DIN y CLK. Google "SPI" para saber cómo funciona si no te resulta familiar.

Esos bits son completamente ignorados por el resto del dispositivo hasta que manejes * LOAD low. En ese punto, el patrón de bits se interpreta como ocho bits para escribir y una dirección: esos ocho bits se introducen en la memoria RAM de doble puerto 8x8 (y parece que también puede hacer alguna configuración).

Hay muchas cosas dentro de esa parte. Espere hacer un estudio detallado de la hoja de datos antes de que se resuelva todo.

    
respondido por el TimWescott
1

El MAX7219 se funde a 800 Hz, por lo que, para el ojo humano, los grupos de 8 LED parecen estar encendidos a la vez. Cuando transfiere un byte a un registro de datos, los nuevos contenidos se muestran en la salida. Escribir en un registro es bastante simple:

digitalWrite (ssPin, LOW);
SPI.transfer (registerAddress); // from 1 to 8 for the display outputs.
SPI.transfer (dataToDisplay);
digitalWrite (ssPin, HIGH);

Muy fácil. Haga lo mismo con los 5 registros de control (en setup () para un Arduino, por ejemplo).

Intensidad (brillo): por lo general, la única que cambiarías al vuelo también.

Escanear (normalmente de 3 a 8 dígitos).

Normal / Apagado.

Prueba (enciende todos los LED).

Modo de decodificación (utilizado para asignar de 0 a 9, H, E, L, P a pantalla de 7 segmentos; o crear su propia asignación de fuente).

    
respondido por el CrossRoads

Lea otras preguntas en las etiquetas