Uploaded by Sebastián Heredia

HerediaAriel ED Proyecto2B

advertisement
PROYECTO DE ELECTRÓNICA DIGITAL: BIMESTRE II
Heredia Andrango Ariel Sebastián.
24 de marzo de 2021
1.
Introducción
El desarrollo de la electrónica digital ha revolucionado el ámbito tecnológico a gran escala, dando como
resultado un sinnúmero de dispositivos que emplean
circuitos digitales con aplicaciones novedosas y útiles
para la sociedad. Con el presente proyecto se pretende demostrar el uso de circuitos integrados, memorias
y otros elementos mediante la implementación de un
circuito digital para un reloj que carga datos desde
2.
memorias permanentes, opera y guarda la información
de la hora en una memoria temporal en intervalos de
tiempo especı́ficos, ası́ como también se mide su tiempo de funcionamiento en esos mismo intervalos
Se presentan los aspectos teóricos considerados para el
diseño del circuito, ası́ como la funcionalidad del mismo
dentro del software de simulación electrónica Proteus.
Planteamiento
Se tiene almacenado la hora de inicio de un reloj en una memoria ROM, al arrancar la simulación, un reloj
toma ese dato y empieza a trabajar. Cada 20 segundos que el circuito est´a funcionando, guarda su valor en
flip flops. Cuando se pare el reloj con un botón, en displays diferentes deben mostrar el tiempo aproximado que
ha podido trabajar el reloj. Es decir que se podr´a observar el tiempo transcurrido en múltiplos de 20. Diseñe
todo el circuito digital que demuestre este evento.
3.
Objetivos
3.1.
Objetivo general
Desarrollar un circuito de reloj que cargue datos, funcione y guarde la información en flip-flops, y que un
cronómetro mida su tiempo de funcionamiento en un intervalo fijo.
3.1.1.
Objetivos Especı́ficos
Diseñar de manera esquemática circuitos contadores para reloj y cronómetro, y circuitos para almacenamiento temporal con flip-flops.
Definir un archivo binario con la información de hora de inicio con el software Max Loader.
Implementar memorias ROM para la extraer la información del binario y enviarla al reloj para el funcionamiento del resto del circuito.
Generar un sistema de almacenamiento de la hora de reloj y cronometrado del circuito para un intervalo
de 20 segundos.
4.
Diseño del circuito digital
Para realizar el circuito se emplearon los siguientes componentes:
Display de 7 segmentos ánodo común color verde.
Compuertas NOT TTL 7404
Compuertas AND TTL 7411
1
Compuertas NAND TTL 74132
Decodificadores BCD para display 7 segmentos
Memorias EEPROM
Contadores de décadas sı́ncronos 74160
Flip-Flops tipo D
Resistores de 500 Ω
Switch
Diodos
Generadores de pulsos
4.1.
Consideraciones previas
Se requiere que al arrancar la simulación, el reloj cargue la información de la hora de inicio almacenada
en memoria permanente. En este caso, al emplear una sola memoria ROM implica extraer la información de
posiciones especı́ficas y luego cargarla a cada contador que posee el reloj; sin embargo, esto derivarı́a en un
retraso relativo que generarı́a más carga computacional en el software. Se considera entonces el uso de varias
memorias para que la carga sea instantánea.
Los contadores del reloj digital tienen una entrada LOAD que se activa con BAJO, para que el contador
cargue el valor inicial deseado y empiece a trabajar, la activación de la entrada debe realizarse una sola vez y
por un lapso corto
.
En este informe se presentan las abreviaciones US: unidades de segundo, DS: decenas de segundo, UM:
unidades de minuto, DM: decenas minuto, UH: unidades de hora, DH, decenas de hora.
4.2.
Carga de datos desde EEPROM
Las EEPROM seleccionadas para el circuito son de 16 kB, de la serie NMOS 27128. Para esta primera fase
se implementaron 6 memorias, cada una carga respectivamente las decenas y unidades tanto de horas, como
de minutos y segundos. La idea de usar varias memorias es para que se obtengan los valores de las diferentes
posiciones de forma automática, y se envı́en directamente al reloj sin ninguna operación manual por parte del
usuario.
La información de la hora de inicio se guarda en un archivo .bin, el cual se genera desde el software Max
Loader. Como se requieren de 6 dı́gitos se utilizan 6 posiciones de memoria, de la 0 a la 5. En ese orden se
configuró: unidad de segundo, decena de segundo, unidad de minuto, decena de minuto, unidad de hora y decena
de hora.
Figura 1: Generación del archivo binario con la hora de inicio
En base a esto, las entradas (de direccionamiento) de cada memoria se conectan a Vcc o GND respectivamente
en función de la posición donde se encuentra la información. Los pines de encendido y lectura de las memoria
se activan en bajo.
2
Figura 2: Disposición de las memorias EEPROM
Con los pines de encendido y lectura activados, la memoria arroja la información en la posición configurada
y la manda a la siguiente fase, la del reloj.
4.3.
Reloj de 24 horas
La fase del reloj consiste en implementar un conjunto de contadores sı́ncronos en secuencia que realicen la
cuenta de segundos, minutos y horas. Los 74160 son contadores de décadas (0-9). Ası́:
Contadores de segundos
Consta de dos contadores en secuencia, uno para US y otro para DS. La cuenta es a 60 (0-59), esto se
logra activando el pin Reset del contador de decenas cuando llega a 6. En el de unidades no se hace nada
porque después de nueve retorna a cero. El número 6 en binario es 110, por lo que basta conectar las bits
Q2 y Q1 a una NAND y ésta al reset (que se activa en bajo).
Figura 3: Conteo de segundos
Contadores de minutos
Dos contadores en secuencia que dependen de los contadores de segundos, el contador UM se activa cuando
se cuentan 59 segundos. Esto se logra conectando el pin RCO de US (contador de unidades de segundo)
y los bits Q2 y Q0 del contador DS en una compuerta AND. Esta compuerta se conecta a las entradas de
habilitación del contador de UM.
Al igual que en los segundos, se configuran los contadores para una cuenta de 60 minutos (0-59).
3
Figura 4: Conteo de minutos y segundos
Contadores de horas
Dos contadores de UH y DH que dependen de los dos anteriores, se sigue el mismo procedimiento que para
los minutos. La configuración adicional es que se cuentan 24 horas (0-23), conectando Q1 del contador de
DH y Q2 del de UH a una NAND y ésta a los pines reset de los dos contadores.
Figura 5: Conteo de horas, minutos y segundos
Pulsos de reloj
Como son contadores sı́ncronos, se utiliza una misma señal de pulsos a las entradas CLK de cada uno.
Carga de datos de EEPROM
El reloj no comenzará desde cero, sino partir de la hora almacenada y extraı́da de las memorias ROM,
como el pin LOAD de cada contador se activa en bajo, se dispara un solo flanco de subida (de 0 a 1) para
que la carga se efectúe una pequeña fracción de tiempo, ya que de lo contrario se mantendrı́a ese valor
cargado y el reloj no podrı́a continuar. Una vez tomado el dato que se encuentra ya en las entradas D0,
D1, D2 y D3 de cada contador, el reloj comienza a trabajar.
4
Figura 6: Reloj completo
Como se verfica en la figura 6, se colocaron decodificadores BCD 7447 junto con displays 7 segmentos de
ánodo común, para poder visualizar la hora en decimal.
4.4.
Contador de 20 segundos
La siguiente parte consiste en un contador de 20 segundos, este sirve para la etapa de almacenamiento de
hora. Este contador tiene la misma señal de pulsos de la sección de reloj, cuando se llega a 20 segundos (0-19) o
dos decenas el contador debe resetearse. Esto se logra conectando una NOT desde Q1 (del contador de decenas)
hacia el RESET de las decenas. Una vez que llega a 20, la salida de aquella compuerta NOT, sirve para ser
enviada a la siguiente fase.
Figura 7: Contador de 20 segundos
5
4.5.
Almacenamiento de hora en Flip-Flops
Consiste de un arreglo de flip-flops tipo-D de 6 direcciones de 4 bits cada una, que recibe la información de
la hora que está en el reloj. Dado que se requiere almacenar la hora cada vez que transcurren 20 segundos, las
entradas CLK deben recibir los flancos de subida desde el contador de 20 segundos de la parte anterior. Como
la señal que resetea el contador es 0, se utiliza una compuerta NOT para de ahı́ conectar a las CLK de todos
los flip-flops.
Figura 8: Arreglo de flip-flops para almacenamiento de hora
4.6.
Cronómetro de funcionamiento
Se busca medir el tiempo de ejecución del circuito. El diseño es similar al reloj de 24 horas, con las siguientes
diferenciaciones:
Se incrementa cada 20 segundos
No tiene datos iniciales que cargar, empieza desde 0.
Utiliza la misma señal de pulsos del reloj de 24 horas.
El display para las unidades de segundo (US) se mantiene siempre en cero porque són múltiplos de 20,
esto se logra conectando las entradas de datos del 7447 a un mismo diodo cuyo ánodo se conecta a tierra,
para evitar algún tipo de cortocircuito.
El display de las decenas de segundo (DS) debe mostrar múltiplos de 2 (2 decenas = 20). Por caracterı́sticas
de los números pares en binario, su bit menos significativo es 0. Por lo que este bit se desconecta del
contador y se lo reconecta a tierra con un diodo de protección.
Las unidades y decenas de minutos se conservan.
Se quita el limitante de conteo a 24 horas, para llegar hasta 99 horas posibles.
6
Figura 9: Cronómetro de funcionamiento
5.
Simulación
Para la simulación se tiene el siguiente ejemplo:
En un archivo binario, en las posiciones más bajas de memoria, se encuentra almacenada la hora 23:49:16, la
cual se carga al reloj.
Figura 10: Carga de archivo desde las memorias hacia al reloj
El reloj toma el dato y empieza a operar, una vez que han pasado 20 segundos, se guarda la hora en el
arreglo de flip-flops, y el cronómetro marca los primeros 20 segundos en su marcador.
7
Figura 11: Hora de reloj
Figura 12: Almacenamiento de hora
8
Figura 13: Cronómetro de funcionamiento
Al parar el reloj en tiempo arbitrario (por ejemplo en 23:50:02) deteniendo los pulsos, los flip-flops almacenan
la hora que haya estado a los 0:20, 0:40, 1:00, 1:20, etc; y el cronómetro indica el tiempo aproximado de
funcionamiento del reloj en múltiplos de 20. en el ejemplo el cronómetro indica un tiempo aproximado de 40
segundos, y en ese tiempo se guardó la hora que tenı́a el reloj también en ese instante.
Figura 14: Simulación general con detenimiento del reloj
En la hora arbitraria 23:50:02, en realidad han pasado 46 segundos, pero como el cronómetro está configurado
para contar cada 20 segundos, muestra una aproximación a 40 segundos. La hora guardada fue 23:49:55.
9
6.
Análisis de resultados
El circuito cumple con lo planteado; sin embargo, existe un retraso de un segundo debido al tiempo de carga
de los datos en el reloj, en el primer segundo se hace la transición de 0:00:00 a 23:49:16 pero el tanto el contador
de 20s como el cronómetro ya se han inicializado. Esto hace que en los primeros 20 segundos se guarde la hora
con esa diferencia de 1 segundo, de modo que no se guarda 23:49:36 sino 23:49:35 (el cronómetro también marca
0:20 en ese tiempo). A partir de ahı́ sı́ se guarda la hora de 20 en 20.
7.
Conclusiones
La utilización de varias memorias ayuda a una lectura simultánea de los datos, reduciendo la carga
computacional que equivaldrı́a utilizar una única memoria y cargar dato por dato con el uso del simulador.
Las compuertas NAND permiten limitar el conteo hasta determinado número cuyos bits son igual a 1 (a
las entradas de las compuertas), debido a que la salidas activan en bajo el reset de los contadores. Este
principio fue de utilidad para el diseño del reloj y del cronómetro.
Para que los contadores carguen un dato inicial y empiecen a operar, debe activarse el pin LOAD, pero
debe activarse por única vez. Esto hace que requiera un solo pulso para cargar el dato en un instante
determinado, o un único flanco para que cargarlo en un tiempo 0.
Los flip-flops tipo D son los que permiten almacenar información de manera temporal, y junto con los
registros de desplazamiento son el principio de las memorias RAM. Para este caso no se emplearon estos
registros de desplazamiento, cada flip-flop almacena cada bit cuando se le envı́a un flanco de subida.
8.
Recomendaciones
Se recomienda en la parte práctica no utilizar tantas memorias con valores altos de almacenamiento si el
circuito no lo requiere, puede terminar en costes innecesarios.
Se recomienda analizar bien las entradas y salidas de los integrados, verificando si se activan con alto o
bajo, y si su valor de verdad es cero o uno.
Se recomienda practicar el grabado de memorias ROM fı́sicas para adquirir destrezas previo a futuros
armados de circuitos más complejos.
Se recomienda colocar diodos, para algunas entradas o salidas inncesarias, para darles un solo sentido de
corriente y evitar algún cortocircuito.
10
Related documents
Download