Display de 6 Cifras Con Interfaz SPI
-
Upload
darkking00 -
Category
Documents
-
view
217 -
download
3
description
Transcript of Display de 6 Cifras Con Interfaz SPI
44 elektor, electronics worldwide - 7-8/2009
Display de 6 cifras con interfaz SPI
Por Dr. Ing. Uwe Altenburg (Alemania)
Los displays de 7 segmentos se contro-lan en principio como 7 LED individua-les con un cátodo o un ánodo común. Por lo general son controlados por un micro-controlador. El control de varios displays se realiza normalmente mediante multi-plexación. Los terminales de los segmen-tos correspondientes se conectan los unos a los otros y son controlados por un pin de salida del microcontrolador a través de una resistencia. Además por cada cifra hay un transistor controlado por otro pin de salida. De esta forma, se necesitan 14 líneas de salida para un display de 6 cifras (que consta de siete segmentos y un punto decimal), casi dos puertos completos del microcontrolador.El MAX7219 de Maxim ofrece una posible solución a este problema de E/S. Este chip se controla a través de un interfaz SPI, de modo que sólo se necesitan cuatro pines de conexión. Al MAX7219 se pueden conec-tar un máximo de ocho displays de 7 seg-
líneas LOAD y CLK se conectan simple-mente en paralelo).¿Cómo hay que controlar ahora este dis-play? El MAX7219 tiene 16 registros inter-nos que se pueden direccionar y escribir en serie. Por cada display de 7 segmentos se envía una serie de datos de 16 bits, donde los bits 0…7 contienen los datos y los bits 8…11 la dirección (los bits 12…15 no tiene ninguna función).Los bits se leen en el flanco ascendente de la señal CLK. La línea LOAD debe estar a nivel bajo durante la transmisión. Final-mente, la serie de datos con el flanco ascen-dente se escribe en el registro direccionado. El microcontrolador no requiere de un hard-ware especial para SPI. Como la velocidad de transmisión puede ser baja, puedes rea-lizar el control completamente en software. Para ello el autor escribió rutinas en C [1], que se pueden adaptar fácilmente al micro-controlador utilizado. El protocolo de trans-misión anteriormente descrito se realiza con la rutina SendCmd.Antes del uso hay que inicializar algu-nos registros del MAX7219. En el registro “mode” se fija si debe utilizar el descodi-ficador BCD interno, o si los datos recibi-dos tienen que ser escritos en los displays 1:1. Lo último ofrece más posibilidades, pero el software tiene que hacerse cargo del correcto control de los segmentos (esto se ha realizado en el código fuente con la ayuda del array Segments). Un segundo registro indica cuantos displays tienen que
mentos. Como los LED se iluminan por un tiempo más breve hay que encenderlos con una corriente mayor para obtener la misma cantidad de luz. Según la hoja de carac-terísticas, el MAX7219 puede conmutar un máximo de 500 mA por segmento. A causa de esto pueden formarse interferencias en la alimentación, que puedan influir al micro-controlador de forma negativa. ¡Por lo tanto es necesario un buen desacoplo!Si se utiliza el MAX7219 no se necesitan las resistencias en serie ni tampoco los transis-tores. Sólo se necesita una única resistencia externa. Con ella se configura la corriente de todos los segmentos. Como también se puede configurar la corriente de los seg-mentos a través del puerto SPI, podemos utilizar una resistencia fija de 10 kΩ.El autor ha utilizado para su prototipo un módulo del tipo SC52-11 de Kingbright con cifras de una altura de 13,2 mm. Estos displays tienen un cátodo común y se pueden adquirir en diferentes colores. Quien quiera adaptar el diseño de la placa impreso puede descargar los datos Eagle de nuestro sitio Web [1].Una particularidad del MAX7219 es la posibilidad de poner varios integrados en cascada. Así se pueden controlar varios displays con el mismo controlador. No se requieren pines de conexión adicionales, ya que los chips pasan los datos de los otros displays “al siguiente” (para ello hay que conectar la conexión DOUT del pri-mer chip con la DIN del siguiente, etc.; las
Características• 6 cifras de displays de 7 segmentos
• A parte del display, sólo requiere dos compo-nentes adicionales
• Control mediante software a través del puerto SPI
• Las rutinas en C se pueden adaptar fácilmente a diferentes controladores
R11
0k
VCC
K1
MAX7219SEGDP
ISET
LOAD
IC1
DIG0
DIG1
DIG2
DIG3
DIG4
DIG5
DIG6
DIG7
DOUT
SEGA
SEGB
SEGC
SEGD
SEGE
SEGF
SEGG
DIN
CLK CNG
1918
12
13
11
10
24
14
16
20
23
21
15
17
22
94
1
2
6
7
3
5
8
SC52-11LD1
10
CCdp
CC
7 a6
b4
c2
d1
e9
f
g
8
5
3
SC52-11LD2
10
CCdp
CC
7 a6
b4
c2
d1
e9
f
g
8
5
3
SC52-11LD3
10
CCdp
CC
7 a6
b4
c2
d1
e9
f
g
8
5
3
SC52-11LD4
10
CCdp
CC
7 a6
b4
c2
d1
e9
f
g
8
5
3
SC52-11LD5
10
CCdp
CC
7 a6
b4
c2
d1
e9
f
g
8
5
3
SC52-11LD6
10
CCdp
CC
7 a6
b4
c2
d1
e9
f
g
8
5
3
DIN
VCC
DOUT
CLK
LOAD
GND
081154 - 11
457-8/2009 - elektor, electronics worldwide
ser controlados. Y finalmente hay que configurar la corriente de los segmentos y encender el display. Después de esta ini-cialización puedes controlar los dígitos con la rutina UpdateDisplay.El display es compatible con el TinyBricks M16C, publicado en marzo, que funciona con un M16C y está equipado con un intér-prete BASIC. En la página Web de este
proyecto puedes descargar un programa de ejemplo, donde verás lo fácil que es controlar el display desde TinyBasic.
(081154)
Enlaces[1] www.elektor.es/081154
[2] www.elektor.es/080719
Descargas y productosPlaca081154-1 Disponible a través de www.elektor.es/081154
Software081154-11 Código fuente
Datos CADDescarga gratuita desde www.elektor.es/081154
Lista de materialesResistencias:R1 = 10 kΩ
Semiconductores:D1..D6 = SC52-11 (Kingbright)IC1 = MAX7219CNG
Varios:JP1 = tira de 6 pinesPlaca de circuito impreso 081154-1