Práctica VI y Proyecto Final
EPROM's y un semáforo

Objetivo

Aprender los aspectos básicos del funcionamiento de una EPROM. Programar una EPROM para el problema de construir un manejador de un semáforo de 2 esquinas.

Material

Desarrollo

¿Qué es una ROM?

De sus sigla en ingles (Read Only Memory), memoria de solo lectura; esto es que contiene información que no puede ser alterada durante el funcionamiento de la misma. En cristiano, una ROM recuerda una trayectoria de datos preestablecida.

La información preestablecida fue especificada cuando se fabricó el circuito. La ROM que utilizaremos tiene 10 entradas, líneas de dirección, y 8 salidas, llamadas líneas de datos. Cada lugar de almacenamiento se denomina posición de memoria o palabra de memoria, cada palabra de memoria es identificada por una dirección de memoria. Una dirección de memoria es una combinación de 1's y 0's colocados en las líneas de dirección de la ROM. Como tenemos 10 líneas de dirección, contamos con 2^10 combinaciones, esto es, tenemos 1024 palabras de memoria. Si K=1024 y tenemos 8 salidas, tenemos una memoria de 1Kx8; puesto que 8 bits es una unidad básica (byte), tenemos que la memoria es de 1K-byte, o 1KB.

Hay que notar que las ROM's no tienen reloj de entrada.

Para el manejo de los valores en cada palabra de memoria, se recomienda usar la notación hexadecimal. Así, por ejemplo, la localidad 0000 (si fuera de 4 líneas de dirección) podría tener como contenido Fh (la h indica que es un número en base hexadecimal), que es lo mismo que 1111 (suponiendo que tenemos 4 líneas de datos).

Este es el patigrama del UVEPROM 27C16.


Donde:

Linea
Pin
A7
1
A6
2
A5
3
A4
4
A3
5
A2
6
A1
7
A0
8
S0
9
S1
10
S2
11
GND
12
S3
13
S4
14
S5
15
S6
16
S7
17
CE negado
18
A10
19
DE negado
20
Vpp
21
A9
22
A8
23
Vcc
24

 

Si representa las líneas de datos

Ai representa las líneas de dirección.

Oscilador aestable
Oscilando cada 5 segundos (5Hertz), para poder hacerlo, deberán de calcular con la formulita t=1.44/((Ra+2Rb)C1) los valores de Ra, Rb y C1 se pueden ajustar para lograrlo. Donde t=5. Les sugiero tomen la resistencia más cercana al valor obtenido.

Para asustarlos un poco, este es el diagrama del semáforo del proyecto final. Veremos cada parte con calma. Aprenderemos primero a programar la EPROM descrita arriba.

Programación de la UVEPROM

En el laboratorio existe una PC-sauria (es una PC en serio, 286 pero en serio) bajo MS-DOS (microsoftus neanthertales operatives), la cual contiene el programa que ayuda a cargar los datos en la EPROM. Se localiza en C:/EPROMS/pep.exe

Aparece una pantalla de bienvenida y unas tablas donde deberemos de seleccionar la EPROM a utilizar, sino apareciera en esa lista, estamos en problemas. Al teclear la EPROM seleccionada, aparece la pantalla donde nos pide le demos una opción de los dos tablas en la pantalla; a nosotros nos interesan las siguientes:

1. PROG DEV FROM DISK FILE
En esta opción, nos pide le indiquemos la ruta del archivo ROM (ver más abajo) para cargarla al buffer del programa.

2. PROGRAM ROM
Esta es la más importante, ya que empezaremos a cargar los datos de nuestra EPROM. Al seleccionarla nos preguntará por la dirección de inicio (Enter buffer starting address) y después la dirección de final (Enter buffer ending address). Inmediatamente nos pregunta si deseamos programar la EPROM o salir (Program or skip).

5. BUFFER
Nos muestra, y podemos editar, el buffer que pudimos haber cargado en la opción 1, o podemos crear un nuevo archivo ROM

6.VERIFY DEVICE IS ERASED
Nos indica si la memoria a utilizar esta vacía o fue limpiada previamente, es importante verificar esto, ya que si existen algunos registros que nosotros no habíamos contemplado, el funcionamiento de nuestra EPROM no será como esperamos.

8. COMPARE DEVICE WITH BUFFER
Esta opción es chida, ya que cuando hemos cargado la EPROM, podemos comparar si los registros de la misma coinciden con los del archivo ROM.

Formato del Archivo ROM

Este archivo esta en ASCII, esto es que lo podemos generar a partir de un programa. El formato es el siguiente, es una tabla de 16 columnas por 128 renglones (1024 palabras de memoria o 1KB), donde cada elemento es un numero en hexadecimal de dos dígitos. Una celda no utilizada será puesta en FF, y la que usaremos estará el valor en hexadecimal. Todos los carácteres están en mayúsculas y cada número esta separado por un espacio. El archivo tendrá extensión .ROM

Este es un fragmento de un archivo ROM:

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF AC A1 A2 FF FF FF FF FF FF FF FF FF FF FF FF

La primera parte de esta practica es generar un circuito, el que quieran y programar la UVEPROM. Los que quieran llevar su programa al laboratorio, hay un compilador de CC en la PC-sauria del laboratorio. Nos vemos y les daré la tabla de nuestro semáforo.

Cualquier duda deberán enviarme un correo a julyalm@todito.com