Display de 6 Cifras Con Interfaz SPI

2
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 R1 10k V CC K1 MAX7219 SEGDP ISET LOAD IC1 DIG0 DIG1 DIG2 DIG3 DIG4 DIG5 DIG6 DIG7 DOUT SEGA SEGB SEGC SEGD SEGE SEGF SEGG DIN CLK CNG 19 18 12 13 11 10 24 14 16 20 23 21 15 17 22 9 4 1 2 6 7 3 5 8 SC52-11 LD1 10 CC dp CC 7 a 6 b 4 c 2 d 1 e 9 f g 8 5 3 SC52-11 LD2 10 CC dp CC 7 a 6 b 4 c 2 d 1 e 9 f g 8 5 3 SC52-11 LD3 10 CC dp CC 7 a 6 b 4 c 2 d 1 e 9 f g 8 5 3 SC52-11 LD4 10 CC dp CC 7 a 6 b 4 c 2 d 1 e 9 f g 8 5 3 SC52-11 LD5 10 CC dp CC 7 a 6 b 4 c 2 d 1 e 9 f g 8 5 3 SC52-11 LD6 10 CC dp CC 7 a 6 b 4 c 2 d 1 e 9 f g 8 5 3 DIN VCC DOUT CLK LOAD GND 081154 - 11

description

Display de contador de 6 cifrras

Transcript of Display de 6 Cifras Con Interfaz SPI

Page 1: 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

Page 2: Display de 6 Cifras Con Interfaz SPI

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