domingo, 21 de febrero de 2021

laboratorio 13: contadores

Laboratorio 13: contadores

juan pablo lopez guevara 20171005073

universidad distrital francisco josé de caldas

Introducción

Los contadores como circuitos secuenciales, nos sirven como elemento de estudio con el fin de aprender sobre el diseño secuencial.  En esta practica se diseña un contador BCD de dos cifras.

Para esto, usamos el diseño dado en clase por el profesor

De donde tenemos la siguiente tabla de estados (cada cambio es un pulso de reloj)

De aqui, tenemos que

Qo+=Q1'Qo'+Q1Qo'=Qo'
Q1+=Q1'Qo+Q1Qo'=Q1(+)Qo

Así, nuestra simulación en circuitverse sería


Con este, construimos el de 4 bits y lo limitamos para que llegue hasta 9 (1001)


ahora, concatenamos 2 de estos para poder contar hasta 99 BCD
Ahora, armamos estos bloques en PSoC


luego, construimos con este uno de 4 bits

y con este, uno de 2 cifras BCD (de 0 a 99)


Podemos ver el funcionamiento de este bloque en conjunto con los demás circuitos de la practica 14 en este link (es el contador de 0 a 99 del tablero de goles)

Conclusiones

Vemos lo útil de estudiar el diseño de contadores a la hora de practicar el diseño secuencial así como sus aplicaciones practicas extremadamente necesarias a la hora de resolver problemas de índole de diseño de circuitos digitales. 





laboratorio 14: Ejercicio contadores

Laboratorio 14: ejercicio contadores

juan pablo lopez guevara 20171005073
universidad distrital francisco josé de caldas

Enunciado

Solución del problema. 

Se implementa los contadores ascendentes de la practica 13, se diseñan contadores descendentes y se limitan para que cumplan con las debidas condiciones.

Contador descendente de 2 bits

Diseñamos sin enable, por lo que cambiará de estado con cada pulso de reloj
tenemos la siguiente tabla que resume el diagrama de estados


Tenemos el siguiente resultado

Qo+=Q1Qo'+Q1'Qo'=Qo'

Q1+=Q1Qo+Q1'Qo'=(Q1(+)Qo)'

Así, tenemos nuestra siguiente simulación en circuitverse usando FFD


Luego, usando la condición necesaria para activar los bits más significativos y llevando el circuito a PSoC, tenemos los siguientes resultados


y con este, construimos el de 4 bits BCD



siguiendo la misma lógica, construimos bloques que bajen desde 5 y desde 2



La logica para entender el funcionamiento de estos bloques es que el ciclo comienza en 00 y no en 11, de tal forma que para 4 bits el ciclo hace 0000 y luego 1111, para cuando se detecta 0000, se obliga a que se reseteen los bits necesarios para que el siguiente numero sea 1001 o 0101 dependiendo de si es hasta 9 o hasta 5

Así, llegamos a nuestro reloj total


por ultimo, reciclamos los bloques de la practica 13 y diseñamos el circuito que permita estar 10 segundos en una posición y 5 en la otra posición

Así, para mantenernos los tiempos solicitados en una y otra posición, tenemos el siguiente circuito, que para eliminar problemas de sincronía usa FFD entre etapas de contadores de 2 bits (reciclados de la practica anterior) y a la salida para almacenar la condición mayor a nueve, de tal manera que garantizamos que estén los 10 segundos en una posición y 5 en la otra.


Así, ahora reciclando el circuito de puntuación


Podemos ver el funcionamiento de este circuito en este link

Conclusiones

Aunque al circuito le falta la posibilidad de resetear (de forma correcta) y poder parar y volver a correr el tiempo, podemos ver que funcionan los demás ítems. Podemos concluir lo útil (y necesario) que es entender el diseño secuencial, debido a que con el podemos diseñar contadores que nos permiten hacer muchas cosas como lo es en nuestro caso marcadores de goles o relojes. 








sábado, 20 de febrero de 2021

Laboratorio 15: matriz de leds

Laboratorio 15: matriz de leds

Juan pablo lopez guevara 20171005073
Universidad distrital francisco José de caldas
Ingeniería electrónica, fundamentos de circuitos digitales

Introducción

Debido a la necesidad de tener más cantidad de salidas de información para el usuario, aparecen las matrices de LED, que nos permiten dibujar figuras como lo son los emoticones.

Objetivos

  • Implementar los 4 emoticones presentados
  • Poder seleccionar cualquiera de los emoticones usando 2 bits de selección
  • Tener la opción de desplazar el emoticón en la matriz

Marco teorico

Matriz de leds

Figura 1. Diagrama de matriz de leds 8x8

La matriz de leds es un arreglo de leds 8x8 que tiene el fin de mostrar diagramas por medio de encender los leds necesarios para este propósito. Debido a las limitaciones de alimentación de la PSoC y a que no es practico consumos tan altos en general, se necesita visualización dinámica para la correcta visualización de los diagramas a graficar. Para nuestro caso, tenemos cátodo común, que significa que encenderemos las columnas con un 1 lógico.

Metodología

Para esta practica, seguimos la metodología dada por el profesor. Esto quiere decir que creamos una ROM 32x8 en la cual tenemos 2 bits para elegir el emoticón y 3 para direccionar cada fila de cada emoticón. Así, diseñamos e implementamos un decodificador 3 a 8 y debido a problemas que se nos presentaron a la hora de usar el registro de desplazamiento, utilizamos 2 bloques sumadores con el fin de desplazar a la izquierda o a la derecha el emoticón.

Diseño

Comenzamos por el diseño del deco 3 a 8, para lo cual creamos su tabla de verdad



Para facilitar el diseño, utilizaremos verilog con la función case. Esto nos reducirá enormemente el proceso de diseño



Esquematico



Siguiendo con la misma técnica, haremos un esquema de los valores necesarios para graficar los 4 emoticones, teniendo en cuenta que son las tierras para la matriz de leds.

De izquierda a derecha, los valores necesarios para cada emoticón serían

emoticón 1

emoticón 2


emoticón 3

emoticón 4


Por comodidad, programamos la rom usando verilog y agregando 2 bits para la elección de cual emoticón se va a visualizar.

























Por ultimo, para el desplazamiento hacemos uso de dos bloques sumadores. Uno para restar la posición y luego, este resultado entra a otro bloque sumador que tiene el objetivo de sumar la cantidad a moverse en la posición opuesta. 
Así, llegamos a nuestro diagrama final

El link para ver el funcionamiento de este circuito es este


Conclusiones 

Vemos la gran utilidad de utilizar visualización dinámica en este caso, ya que somos consientes que la PSoC no es capaz de encender al tiempo todos los leds, lo cual es un problema que soluciona la visualización dinámica (ahorrando recursos energéticos). Por otro lado, vemos la gran utilidad de usar código verilog para reducir la dificultad y tiempo de diseño, en especial a la hora de almacenar datos y crear decodificadores. 

ecuaciones para fisica