jueves, 13 de diciembre de 2012

MSP430: Registro de Desplazamiento

En este capítulo vamos a exponer las pinceladas básicas de como trabajar con un registro de desplazamiento (shift register). Es cierto que este tipo de dispositivos no es un componente al uso de los que veníamos presentando (sensor de temperatura, pantalla lcd, etc) pero que, conjuntamente con los microcontroladores, pude ser un arma bastante útil y poderosa a la hora de ahorrar patitas a nuestro microcontrolador.


Para entrar en materia, vamos a clasificar los distintos tipos de registros de desplazamiento que podemos encontrar en el mercado:

Tipo Registro de DesplazamientoFunción
· Serie - SerieTanto los datos de entrada como los de salida salen cada flanco de reloj (de uno en uno).
· Serie - ParaleloLos datos de entrada entran de uno en uno y se reflejan en múltiples salidas.
· Paralelo - SerieLos datos de entrada están descritos en varias entradas (patitas) y se reflejan en una única salida (patita).
· Paralelo - ParaleloTanto los datos de entrada como los de salida son mediante múltiples patitas.

En nuestro caso, y como hemos expresado anteriormente, nuestra misión es ahorrar patitas del microcontrolador (y por ello, justificar el uso de este tipo de dispositivos). Es por ello, que el tipo de registro de desplazamiento en el que vamos a profundizar es el del tipo: Serie - Paralelo.

El principio de funcionamiento es sencillo, se pasan tantos datos de manera serie (generalmente por una o dos patitas del componente) como salidas en paralelo tiene éste.

En otras palabras, imaginemos un hipotético registro de desplazamiento que tiene 4 salidas, pues iremos ingresando por su entrada de manera serie el valor que tendrán las cuatro salidas correspondiente.

La aceptación o manera de validar una entrada en estos tipos de componentes, es mediante un flanco (de subida o bajada) que actúa de reloj, siguiendo con nuestro ejemplo, cada flanco de subida validará un dato.

La forma de proceder es que cada vez que el dispositivo detecta una flanco de subida, éste desplaza el valor introducido una posición y almacena en nuevo valor.

Y llegados a este punto, ¿por qué es útil un registro de desplazamiento? Pues sencillamente por la posibilidad de controlar varias salidas (tantas como tenga el registro de desplazamiento) con un par de patitas de nuestro microcontrolador, además de, poder ahorrar energía poniendo a nuestro microcontrolador en estado de IDLE o reposo.

Existen varios fabricantes que comercializan estos tipos de dispositivos, en nuestro caso, vamos a emplear el registro de desplazamiento serie-paralelo siguiente: CD74HCT164 de la compañía Texas Instruments.

Su diagrama funcional es el siguiente:

Diagrama FuncionalPatitas
· DS1: Entrada. Patita de entrada de datos.
· DS2: Entrada. Patita de entrada de datos 
· #MR: Entrada. Reset manual. Las salidas toman el valor cero (estado LOW).
· CP: Entrada. Reloj para validar y desplazar dato cada flanco de subida.
· Qn: Salida. Las 8 salidas del dispositivo.


Y la tabla de verdad o de funcionamiento del dispositivo se muestra a continuación:

Modo de OperaciónEntradasSalidas
#MRCPDS1DS2Q0Q1-Q7
ResetLXXXLq0-q6
Desplazamiento HllLL-L
HlhLL-L
HhlLL-L
HhhHL-L

Donde:

· L ó l: Nivel bajo ('0' lógico)
· H ó h: Nivel alto ('1' lógico)
· ↑: Flanco de subida.
· X: No importa.

¿Como interpretar bien la tabla de verdad? Pues es bastante fácil, dependiendo del valor de entrada de DS1 y DS2 en cada flanco de subida, asís será el valor de salida del pin Q0 y su posterior desplazamiento.

Además, como podemos comprobar viendo la tabla de verdad del dispositivo, en nuestro caso, para que haya una transición de bajo a alto solamente nos hace falta el dato de entrada DS2 (estando DS1 siempre en alta). En otras palabras, con la entrada DS2 y el reloj CP, podremos disponer y controlar hasta 8 salidas.


Para poner en práctica los conceptos y el control de este tipo de dispositivo, os dejo un ejemplo:

Ejemplo: MSP430 + Registro Desplazamiento
1. ProgramaControl de 8 leds con 2 patitas del μC.
2. ProgramaControl de LCD HD44780 con 3 patitas del μC.


Como se ha podido ver, este tipo de dispositivos son bastante útiles en aquellos proyectos donde las patitas del microcontrolador son escasas y además, es necesario el ahorro máximo de energía posible.

0 comentarios: