Está en la página 1de 6

Examen de VHDL/20 puntos 10 de mayo de 2023

TAREA1/10p La tarjeta DE2 de Altera cuenta con un puerto PS/2 en el cual se puede conectar ya sea
un teclado o un ratón con ese tipo de interface.

El puerto PS/2 tiene 6 pines de los cuales solo se usan 4, dos dedicados a la alimentación (Vcc y Gnd)
y los otros dos corresponden a una señal de reloj (Clock) y la señal de datos (Data), ver figura 1.

Figura 1. Esquema de conexionado de un conector Mini-PS/2

El diagrama y pines de conexión del puerto PS/2 en la DE2 se muestra en la figura 2, el pin de reloj y
data son PS2_CLK y PS2_DAT, respectivamente.

Figura 2. Esquema y pines de conexión del puerto PS/2 de la DE2 de Altera (tomado de DE2
manual.pdf)

El protocolo de comunicación que usa el PS/2 es sencillo y se muestra en la figura 3. En estado inactivo;
es decir, cuando no se ha presionado una tecla, los hilos de clock y data permanecen en nivel alto.
Cuando una tecla es presionada el controlador del teclado envía dos grupos de 11 bits cada uno. La
estructura de cada uno de los grupos enviados es el mostrado en la figura 3; es decir, se inicia con la
transmisión de un bit 0 de inicio luego se transmiten los 8 bits de datos y se termina con un bit de
paridad y uno de stop (parada) que siempre es 1.

En el primer grupo se transmite el byte: 𝐹0ℎ = 11110000𝑏 y en el segundo grupo se transmite el


byte correspondiente a la tecla presentada de acuerdo a lo mostrado en la figura 4.
Figura 3. Señalización del protocolo de comunicación protocolo de comunicación PS/2

Figura 4. Códigos (hexadecimal) transmitidos para cada tecla, ejemplo: al presionar la tecla A se
transmite 1Ch; es decir: 00111000b, la transmisión de cada bit se realiza en cada flanco de bajada del
reloj del teclado.

La comunicación en PS/2 es síncrona y se realizan en cada flanco de bajada del clock proporcionado
por el teclado, ver detalle de flancos de bajada en figura 3. De igual manera en la figura 4 se muestra
una captura real de la señalización de la DE2 cuando se ha presionado la tecla D.

IMPORTANTE: Si bien en el estándar indica que por ejemplo cuando se presiona la tecla D el envío
debería ser en hex: F0-23 se puede ver de la captura del osciloscopio que la transmisión es: hex: 0F-
23

Figura 5. Señalización de comunicación PS/2 en la DE2 cuando se presiona la tecla D, se aprecia en el


primer grupo la transmisión de 0Fh y luego 23h

TAREA:
Se desea capturar y mostrar en los LEDs rojos de la DE2 los códigos de las letras presionadas en el
teclado conectado a la DE2, (solo el código de la letra no la parte F0h). En la figura 6 se muestran
ejemplos de lo que se desea observar cuando se presionen las teclas A y S respectivamente. En la
figura 7 se muestran las conexiones de los pines de los LEDs rojos contra la FPGAS de la DE2.

Figura 6. Ejemplo de resultados que se esperan, arriba letra A, abajo letra S

Figura 7. Asignación de pines de los LEDs rojos de la DE2

Para realizar esto se puede considerar que, ya que la comunicación es serial se puede usar un registro
de desplazamiento para almacenar todos los bits transmitidos desde el teclado y una vez que se hayan
transmitido los 22 bits, se puede tomar los 8 bits de datos del a segunda palabra transmitida.

TAREA2/10p En este caso se desea desplegar en el display LCD de la DE2 un par de caracteres a nuestra
elección.

La DE2 tiene un display LCD de dos líneas de 16 caracteres, el esquemático y la asignación de pines en
la DE2 se muestra en la figura 8.
Figura 8. Esquemático y asignación de pines del display LCD en la DE2

El LCD usa las señales de control RW (read/write), RS (register/select) y Enable y un bus de datos de
8bits por el cual se le pasan las palabras ya sean de control o de despliegue.

Para mostrar caracteres en el LCD es necesario previamente configurar el LCD, para esto vamos a
transmitir al LCD las siguientes palabras(hex): x38, x38, x38, x38, x08, x01, x0C, x06.
El controlador del LCD lee las palabras del puerto de 8 bits en los flancos de bajada del Enable. Cuando
las señales RW y RS están en nivel bajo el manejar entiende las palabras presentes en el bus de datos
como palabras de configuración del LCD. Por otro lado, el controlador entiende como dato a desplegar
en el LCD cuando la señal RW está en bajo y la señal RS está en alto al momento del flanco de bajada
del Enable. En el ejemplo de la figura 9, se muestra existen 4 flancos de bajada de la señal Enable
cuando en el bus de datos esta la palabra x”38” al ser el segmento de configuración se tiene RW=’0’ y
RS=’0’, luego cuando en el bus de datos se coloca la palabra x”42” se coloca la señal RS=’1’ con lo que
se considera este dato como carácter a desplegar en el LCD.

Figura 9. Ejemplo de señales de control y datos que se deben configurar

Una vez configurado el manejador del LCD se podrán enviar diferentes caracteres al mismo para su
despliegue.

El trabajo consiste en idear la forma de crear las señales que permitan generar estas señales de control
y su correspondiente implementación con la parte de VHDL que se ha visto hasta el momento.

Usaremos el reloj de 50MHz para generar a partir de éste un reloj que este alrededor de los 400Hz y
este se usará para deducir el resto de señales de control necesarias. En la figura 10 se muestra el
conexionado de la señal interna del DE2 de 50MHz.
Figura 10. Reloj de 50MHz de la DE2

También podría gustarte