Enunciado P4 HW - Universidad Autónoma de Madrid

Anuncio
CIRCUITOS ELECTRÓNICOS DIGITALES
ESCUELA POLITÉCNICA SUPERIOR - UNIVERSIDAD AUTÓNOMA DE MADRID
Práctica 4 HARDWARE:
Funciones complejas con EPROMs
Controlador industrial con contador + EPROM
E. Boemo, 2016
Observación:

Lea ambos enunciados y podrá descubrir que con un solo fichero Hex puede tener en la EPROM los
contenidos necesarios para ambos problemas.

No monte cables por encima de la EPROM pues puede necesitar quitarla para reprogramarla.

El Problema 2 puede hacerse reutilizando la mayoría de las conexiones del Problema 1.
Problema 1 (60% de la nota de la sesión HW)
Concepto de LUT (look-up table).
Una memoria tipo ROM es ideal para construir circuitos combinacionales (tablas) que realicen funciones lógicas o
aritméticas complejas de muchas variables de entradas (caben tantas como línea de address tenga la ROM). Cuando
una ROM se utiliza con este fin y no para almacenar un programa, se le llama LUT (look-up table).
En ese ejercicio se practica el concepto anterior. Se pide diseñar y construir un circuito que calcule algunos valores
de funciones trigonométricas. Cada estudiante tiene asignado un rango de ángulos varía según el último número de
su DNI. Además, el circuito incluye un modo TEST para probar los LEDs del equipo del lab.
La entrada del circuito es un ángulo β (un número binario natural), que es diferente para cada estudiante.
La salida del circuito es un número de 8 bits que indica - en formato BCD - las 2 primeras cifras después de la coma
del valor de una función trigonométrica. Por ejemplo, si sen 30º = 0,500000, se pretende que en la dirección 30 de la
memoria (dirección 0001 1110 en binario ó 1E en hexa) contenga el valor 50 en BCD (0101 0000).
Para repartir el trabajo, cada estudiante es responsable de una función trigonométrica y de un determinado rango de
ángulos. La función trigonométrica se especifica en la siguiente tabla:
Turno
Martes
Jueves
Viernes M
Viernes T
Responsabilidad Estudiante 1 del grupo
sen β
cos β
tan β
sec β
Responsabilidad Estudiante 2 del grupo
cos β
sen β
cotg β
cosec β
Se entenderá como Estudiante 1 al mayor (la persona de más edad).
En lugar de almacenar todos los valores de una función trigonométrica como ocurre en circuitos de calculadoras,
sintetizadores de onda, pianos electrónicos, etc., el rango de ángulos se reducirá a sólo 5 valores. De este modo se
simplifica la práctica y puede ser realizada en el tiempo asignado. Los rangos son:

Estudiante 1: Cinco valores a pasos de 1º, comenzando con el ángulo que se obtiene de sumar 10º al dígito
menos significativo del DNI.

Estudiante 2: Cinco valores a pasos de 1º, comenzando con el ángulo que se obtiene de sumar 30º al dígito
menos significativo del DNI.
(Lea bien lo anterior; es importante sumar 10º para que los ángulos no sean demasiado pequeños y se repitan
valores. Y es importante sumar 30º para que las posiciones de memoria que requiere cada estudiante del grupo
estén alejadas).
En resumen, cada estudiante debe hacer su propio fichero Intel Hex. Después juntar los records en un solo fichero de
texto. El Estudiante 1 aporta la primera línea, el Estudiante 2 aporta la segunda, y finalmente agregan juntos las
líneas del Modo TEST (que se describe abajo) y una última línea de fin de fichero (:00000001FF). Con una sola
grabación de la EEPROM se resuelven todos casos, pues los datos se grabarán en diferentes zonas (páginas) de la
memoria. Incluso agregando una primera línea adicional al fichero HEX, puede grabar en la parte inicial de la EPROM
los datos que utilizará para el segundo ejercicio (el semáforo).
Se pide que, para verificar el circuito, las líneas A7 y A6 sirvan para cambiar de página del siguiente modo:


Con A7A6 = 10 deben salir los valores calculados por el Estudiante 1.
Con A7A6 = 11 deben salir los valores calculados por el Estudiante 2.
Además, el circuito debe tener un Modo TEST para verificar los LEDs del tablero entrenador, que da lugar a dos
líneas más en el fichero Intel Hex. Debe funcionar de la siguiente manera:


Cuando A7A6 = 00 y A[5:0] = 111111, debe salir D[7:0] = 10101010.
Cuando A7A6 = 01 y A[5:0] = 111111, debe salir D[7:0] = 01010101.
Montaje HW: Las líneas de dirección A[5:0] se usan para introducir el valor del ángulo en binario y deben conectarse
a interruptores. Las líneas A7 y A6 también se conectan a interruptores y se usan para paginar la memoria. Ese
detalle debe ser tenido en cuenta por cada estudiante al escribir la dirección inicial en su parte del fichero Hex y
también para el Modo TEST. Los LEDs del entrenador se utilizarán para mostrar cada resultado y se conectarán al
bus de datos D[7:0] de la memoria
Muy importante: El resto de las líneas de dirección deben conectarse a cero para evitar direcciones no previstas.
Las señales de control OE, WR, CS, etc. deben fijarse a Vcc o GND tal como indica la hoja de datos de la EPROM.
La pata 1 llamada NC, debe quedar NC (No Connect).
Problema 2 (40% de la nota de la sesión HW):
Sistema de Control basado en ROM (Concepto de Microprograma)
Utilizar el contador 74HC163, puertas adicionales (para reiniciar el contador en el momento adecuado) y la memoria
E2PROM para hacer el control de un semáforo simplificado (sin sensor de coches en Abascal) similar al de la
Práctica 3 sobre FSMs.




Turno Martes: 2 ciclos verde y un 3er ciclo verde-ámbar en cada sentido.
Turno Jueves: 3 ciclos verde y un 4to ciclo verde-ámbar en cada sentido.
Turno Viernes Mañana: 4 ciclos verde y un 5to ciclo verde-ámbar en cada sentido.
Turno Viernes Tarde: 5 ciclos verde y un 6to ciclo verde-ámbar en cada sentido.
Observaciones:



No debe desmontar el circuito anterior; le vale casi todo.
Aproveche para probar el semáforo que la tarjeta entrenadora tiene justamente LEDs verdes, amarillos y rojo.
Antes de montar el contador, puede verificar su semáforo “contando” manualmente con los interruptores
poniéndolos a 0000-0001-0010--etc.
Apéndice A: FORMATO INTEL HEX
El primer paso en la grabación de una memoria tipo EEPROM es escribir los datos que se desean introducir en un
fichero de texto con un formato compatible con los grabadores de EPROMs que se disponen en el laboratorio. De
todos ellos, uno de los más usados es el Intel HEX.
Un archivo HEX típico tiene el siguiente aspecto:
:10008000AF5F67F0602703E0322CFA92007780C3FD
:1000900089001C6B7EA7CA9200FE10D2AA00477D81
:0B00A00080FA92006F3600C3A00076CB
:00000001FF
Los datos se dividen en campos (records), cada uno en una línea. Tomando como ejemplo la primera línea, el
formato es:
El primer carácter (:) indica el comienzo de un campo.
Los dos caracteres siguientes indican la longitud (número de datos) en bytes del campo como un número
hexadecimal de dos cifras. Por ejemplo, este valor es 10 (siempre en hexa) para el primer campo del ejemplo. Es
decir, 16 (en decimal) bytes; (16 números de 8 bits). Usualmente, no se graban más de 16 datos por record pues
esto facilita la visualización de los mismos.
A continuación, los cuatro caracteres siguientes indican la posición inicial de memoria donde se cargarán los datos
del campo representada como un número hexadecimal de cuatro cifras (0x0080 en hexa en el ejemplo; o sea, 128
decimal)
Los dos caracteres siguientes indican el tipo de campo, 00 si se trata de datos, 01 para fin de fichero y 02 para
dirección extendida (esta última opción escapa del contenido de la asignatura CED).
A continuación vienen los datos (que internamente en la memoria son números binarios de 8 bits); cada uno de ellos
representado en el formato Intel Hex como un número hexadecimal de dos cifras (dos caracteres por dato).
Por último, los dos últimos caracteres son el checksum. Este checksum se calcula de manera que la suma de todos
los bytes del campo más el propio checksum sea 0x00 (00 en hexadecimal). Sólo se considera el byte (8 bits o dos
caracteres hexa) menos significativo de la suma.
Si Ud. no ha entendido el párrafo anterior, lo más sencillo es proceder como se indica abajo. Por ejemplo, para la
primera línea (record) el checksum vale FD y se ha obtenido así:
Primer Paso: Se suman todos los bytes del record, con excepción del carácter correspondiente a los dos puntos. Es
decir:
10+00+80+00+AF+5F+67+F0+60+27+03+E0+32+2C+FA+92+00+77+80+C3 = 803
Segundo Paso: Se trunca el resultado y se trabaja solo con el byte menos significativo. En este caso, 03. A este
número se le halla el complemento a 2. Es decir, se deben cambiar los 1 por 0 y viceversa (complemento a 1) y
después sumar 1. En el ejemplo sería:
03 = 0000 0011
Complemento a 1 de 03 = 1111 1100
Complemento a 2 de 03 = 1111 1100 + 1 = 1111 1101
En número resultante, que en hexa se expresa como FD, es justamente el checksum del record.
Con una calculadora hexa, puede verificar que lo anterior es igual a hacer 100 menos el 03 de la suma: 100-03=FD.
El último campo (la última línea) siempre tiene la misma forma, e indica el fin de archivo (campo de tipo 01).También
lleva checksum.
Apéndice B: Calculadora de utilidad para la Práctica 4
Si Ud. no se acostumbra a sumar a mano en hexa, puede utilizar la calculadora del
Windows (en modo “programador”, hexa y byte). Si además usa Android, puede bajar
una calculadora hexadecimal a su teléfono o tableta. Por ejemplo, una llamada
Number System Converter + Calculator que está en:
https://play.google.com/store/apps/details?id=com.somil.number&hl=es_419
Descargar