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