Inicio > CPLD's > Escribir en un LCD utilizando un CPLD con Xilix

Escribir en un LCD utilizando un CPLD con Xilix


En el ejercicio vamos a escribir en un LCD con un CPLD, el CPLD que vamos a utilizar es el XC9572 de la familia XC9500. Para programarlo se utilizara el entorno de trabajo de Xilinx. El ejercicio esta realizado en maquina de estados tipo moore sincrina.Lo primero que necesitamos saber es el proceso de trabajo, es decir, la secuencia de inicio, las instrucciones para controlar el LCD y los datos que vamos a enviar. Cuando este mas o menos claro, lo siguiente es determinar todas las variables que vamos a utilizar en la maquina de estados.

Creamos un nuevo proyecto y añadimos una fuente de tipo State Diagram y agregamos las sig. variables:

Una vez agredado todas las variables podemos empezar a diseñar la maquina de estados. El estado 0 es al que acudiremos tras efectuar un ‘reset’ al autómata. Las salidas las dejamos como indica la figura todas a 0. En el estado 1 ponemos la salida ‘reloj_registro’ a ‘1’ para aumentar la cuenta en el contador de comandos y en el estado 2 habilitamos el LCD y lo ponemos en modo de lectura, así podremos leer el flagBUSY’ para saber si está ocupado, y en el estado 3 mantenemos las salidas anteriores y nos quedamos en este estado hasta que el LCD deje de estar ocupado y pasamos al estado STATE4 si ‘D7_I=0’.

Del estado 4 nos vamos al estado 5, para mandar el comando de inicio. Habilitamos el LCD y dejamos las señales ‘Dx_O’ del autómata comunicadas al puerto ‘Dx’ del LCD, todo ello para mandar el código de la condición de inicio ‘00111000’. Por este estado pasaremos 3 veces. Pasamos al estado 9, si no hemos terminado de mandar los códigos de la condición de inicio volvemos al estado 0. Tras los 3 comandos de la condición de inicio vamos a mandar uno que deje la pantalla en ON, el cursor en ON y el parpadeo del cursor en ON y  Para eso añadimos el estado 6. Por ultimo añadimos el estado 7 en el que habilitamos el LCD y dejamos las señales ‘Dx_O’ del autómata comunicadas al puerto ‘Dx’ del LCD, todo esto para mandar el código de ‘cursor a casa’.

Del estado 9 pasaremos al STATE10 para comenzar a mandar el mensaje de la primera línea. Ponemos la salida ‘reloj_dato’ a ‘1’ para aumentar la cuenta en el contador de datos. Las demás salidas, al no ser contempladas, quedan todas a nivel ’0’. De este pasamos al estado 11 en el que habilitamos el LCD y lo ponemos en modo de lectura, así podremos leer el flagBUSY’ para saber si está ocupado. El estado 12 comprueba otra vez el busy para ver si el LCD esta ocupado en caso contrario pasa al estado 13.

Primera linea

Segunda linea

En los siguientes pasos debemos tener claro lo que vamos a escribi y tambien debe tener un orden. Con la ayuda de la tabla podemos podemos llevar un mejor control de los datos que vamos a meter.

Una vez tengamos la máquina de estados terminada podemos generarar un .VHD y  este le introducimos al proyecto y generamos con él un símbolo.

Por ultimo creamos un .UCF para poder asignar los pines a las variables. Compilamos el ejercicio y cargamos en el CPLD el archivo HED utilizando un JTAG.

descargar memoria aqui

Anuncios
Categorías:CPLD's
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: