miércoles, 23 de noviembre de 2016
TALLER TECLADO MATRICIAL 4X4
Buenas
tardes a todos
El objetivo de esta entrada, es mostrar la aplicación de un
tema muy conocido en la electrónica digital, como lo es el teclado matricial de
4x4, interactuando con el lenguaje VHDL de programación de FPGA, ya que es la misma
nuestro medio de procesamiento y visualización.
A continuación se explicara las especificaciones, del ejercicio
propuesto.
ESPECIFICACIONES
El propósito es conectar el teclado matricial de 4x4 al
puerto PMOD JA de la tarjeta NEXYS 4. Cada vez que se presione una tecla, su
valor se mostrara en el diaplay de 7 segmentos (D7S) numero 0, el ultimo visto
desde la derecha del conjunto de displays de la FPGA. tal como se muestra en la siguiente ilustración.
Desarrollo
1. Como primer paso del desarrollo es
importante recordar cómo es la configuración y el algoritmo funcional del teclado
matricial. Se debe tener en cuenta que al oprimir una tecla del teclado, lo que
se hace es poner en corto la posición de una fila con una columna, como se
ilustra en la gráfica 1.
Por las columnas siempre hay un 1 y
por las filas ingresa un 0, de acuerdo a lo anterior, al presionar la tecla con
posición c1f2, se está haciendo rotar un cero hasta dicha posición desde la
fila 2.
Una vez explicado lo anterior, vamos
a mostrar el diagrama de flujo del teclado.
Ahora tenemos que considerar la secuencia que debe
llegar al display 7 segmentos de la FPGA,
proveniente del teclado
Secuencia de encendido de los segmentos
del display
|
|||||||
numero
|
g
|
f
|
e
|
d
|
c
|
b
|
a
|
# 1
|
1
|
1
|
1
|
1
|
0
|
0
|
1
|
# 2
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
# 3
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
# 4
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
# 5
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
# 6
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
# 7
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
# 8
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
# 9
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
# 0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
MODELO MATEMÁTICO DEL TECLADO MATRICIAL 4X4
TECLA = 4 X Fi + Cj
TECLA= tecla oprimida en binario (#9 = 1001)
Fi= número de fila escaneado
Cj= número de columna donde se encontró la tecla
F3
|
F2
|
F1
|
C3
|
C2
|
C1
|
C0
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
Esta tabla, muestra como está construido el vector, con el
que se programa en la FPGA, la posición de la tecla oprimida para este caso.
con el objetivo de hacer un poco mas fácil su comprensión del tema explorado, vamos a incluir un listado de errores que durante el desarrollo fuimos encontrando y a los que fácilmente usted podría llegar.
DIAGRAMA DE ESTADOS
ahora procedemos a adjuntar, el codigo descriptivo de VHDL realizado para el funcionamiento del teclado.
en la primera imagen, se muestra la estructuración de la entidad declarando las entradas y salidas
en la primera imagen, se muestra la estructuración de la entidad declarando las entradas y salidas
en la arquitectura se declaran las señales y constantes en forma de vector, correspondientes a las columnas y filas del teclado.
en la siguiente imagen, se ve la descripción para el inicio del funcionamiento.
en el camino de datos, se incluye el process el cual diseñael case que debe ejecutar el programa.
para finalizar, mostramos la implementacion del teclado matricial, con la FPGA, funcionando correctamente.
1. pensar que VHDL es un lenguaje de programación, tal como lo es c++, c, etc. VHDL es un lenguaje de descripción de hardware, que ejecuta todas las instrucciones dadas, en bloque, es decir al mismo tiempo. en nuestro caso, modelamos la descripción del lenguaje del teclado en arduino y tratamos de incluirlo en VHDL y no fue posible.
2. durante la descripcion en VHDL, no se ha tenido claridad sobre la estructura y que lleva cada bloque, es decir como incluir variables, señales de reloj, ciclos de espera etc. en nuestro caso nos toco, investigar mas sobre el lenguaje VHDL ya que las bases impartidas en le curso no fueron suficientes.
3. no tener en cuenta que la FPGA trabaja a tal altas velocidades, que si no se incluyen ciclos de espera adecuados, no se podra visualizar en los displays lo que se quiere ver.
4. otro error de hardware que nos paso, fue no fijar bien las conexiones del teclado (cableado), con las entradas de la FPGA, pues una mala conexion lleva a que no sea cierta la informacion en los displays, nos sucedio y en los displays se evidenciaba, todos los segmentos activados al mismo tiempo y con el efecto de intermitencia, pero cuando moviamos los cables, se estabilizaba la señal y se podia observar claramente el numero.
bibliografia
libro
el arte de programar sistemas digitales VHDL
Suscribirse a:
Comentarios (Atom)














