Vistas de página en total

jueves, 11 de agosto de 2011

Act 5: Contador - Sistemas secuenciales


Introducción
A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también dependen del estado anterior o estado interno. El sistema secuencial más simple es el biestable, de los cuales, el de tipo D (o cerrojo) es el más utilizado actualmente.
La mayoría de los sistemas secuenciales están gobernados por señales de reloj. A éstos se los denomina "síncronos" o "sincrónicos", a diferencia de los "asíncronos" o "asincrónicos" que son aquellos que no son controlados por señales de reloj.
Los principales sistemas secuenciales que pueden encontrarse en forma de circuito integrado o como estructuras en sistemas programados son los Contadores y los Registros (fuente: Wikipedia)

En esta actividad se estudiará el comportamiento de los contadores. Se evaluará el funcionamiento de un contador BCD UP/DOWN y se contrastará con el funcionamiento de un microcontrolador realizando la misma función. 

Objetivos de la Actividad
Evaluar el funcionamiento de un contador BCD con controles de cuenta de manera discreta y programar un microcontrolador, para que realice la misma función. 



PARTE A: Contador discreto
Listado de materiales necesarios para realizar la práctica:

http://www.megaupload.com/?d=7VF35420   

Imagen circuito esquematico Protel
Fotografía del circuito armado en protoboard.

Video de nuestro circuito en funcionamiento:


Funcionamiento:

El 4511 funciona en código BCD ,y convierte la información en un display de 7 segmentos , logrando formar números del 0 al 9 .

El 4510 es un simple contador , donde las entradas A1 , A2, A3 y A4 (patas 4,12, 13 y 3) indican en que numero va a empezar el conteo  ya sea creciente o descendiente. En nuestro caso , 9 (1001 en código BCD). Las patas Q1 , Q2 , Q3 y Q4 (patas: 6, 11 , 14,2 respectivamente.) son las salidas, las que generan los números que luego van a ingresar al 4511. La pata 15 es el Clock , sin el cual no se podría realizar ningún tipo de conteo. La pata 10 , U/D , es el que indica si la cuenta se va a hacer de mayor a menor , y de menor a mayor y PE ( Preset Enable) es la pata que funcionaría como un habilitador. La pata 9 , es el MCLR.

 La pata 5 , CI(Carry in) , controla cuando empieza el conteo; al obtener un 0 en dicha pata  comienza la cuenta regresiva  y asi a la salida de este microcontrolador , se van generando los números en BCD , del 9 al 0. El integrado 4511 recibe esos datos y los traduce en el display , en sus correspondientes números.
El buzzer suena dado a que la compuerta que esta conectada a la salida y entrada de estos dos microcontroladores , cuando llega al numero 0 (0000 en BCD) , esta compuerta da a la salida un 1 , que activa al mismo tiempo el transistor , y el reset del 4013; el transistor le da corriente al buzzer , logrando que suene.
Este proceso no se puede realizar repetitivamente , sin sacarle la alimentación al circuito , ya que a la salida de esta compuerta , siempre va a haber un 1 , por ende el reset siempre va a estar en 1 , y entonces el 4013 en Qnegado , siempre va a tener un 1 , por ende , no se va a volver a activar el 4510
El 4013 genera un 0 en Qnegado cuando se obtiene un 1 en el Set.


Circuito en protoboard parte B



martes, 28 de junio de 2011

TP 4

Circuito esquemático de la PARTE B
Plaqueta de la PARTE B


Imagen del circuito esquemático realizado en protel.
 Imagen de nuestro circuito armado en protoboard
Mediciones realizadas con el tester:

Tensión mínima  medida en Va :  -1,64V
Tensión máxima medida en Va :  1,55V
Tensión en Vo con Vs a GND. -24,4 V

Tabla de valores de Vo y Vs medidas variando el Preset:

Gáfico de las mediciones hechas realizadas en Excel:
aclaración: la ultima medición corresponde al offset.

De -1,47 V a 0,96 , y de 0,69V a 1,46V, aproximadamente,  el circuito se comporta linealmente. Porque cuando el valor de entrada es positivo , el valor de la salida es negativo , por eso es que el circuito es inversor.  Cambia es el signo y el modulo de los valores es diferente

Para medir con el osciloscopio y lograr el mismo gráfico que hicimos con el exel pusimos el osciloscopio en modo X-Y. En la X , que es el canal 1 , pusimos Vs , en la Y , que es el canal 2 , pusimos Vo . Ajustamos el canal 1 en 200mV y el canal 2 en 5V.


Ganancia de tensión es Vo / Vs. Tomando un valor de la zona lineal cualquiera , por ejemplo de la tensión de offset nos da como resultado.  -8,35V / 0,56V = 14,9 Veces

En db es : 20 log (14,9V)= 23,52

Si Variamos la tensión de alimentación a 8V,  y nos dio como resultado en Vo:  -4,38 y en Vs  0,28V. El cociente entre estos dos valores da como resultado 15,6. Es decir que prácticamente no varia con la ganancia a 12 V
Al cambiar la R2 por una de 220Kohm, la ganancia ganancia disminuye considerablemente ( nos dio como resultado 2 veces).  Si  solo cambiamos la R1 , por una de 5,6Kohm , la ganancia de tensión aumenta .( nos dio como resultado 25 veces).
A  valores menores a 1 V ,inclusive ,el circuito deja de funcionar. Pudimos ver que en la entrada había más tensión que en la salida.
Si sacamos RL , la ganancia se mantiene prácticamente igual, Hay una variación de 1 vez.
Si conecto el terminal 4 a tierra , el circuito sigue amplificando , pero la ganancia disminuye en comparación al punto anterior. 
Si R1 la cambiamos por una resistencia de 390Ohm y R2 por una de 5,6Kohm , la ganancia de tensión disminuye ( Vo = 12,3mV y Vs =0,5 provocando una ganancia de 0,024 ) Vs nos da 0,505 V.

El canal 1 es la salida , y el canal 2 es la entrada del circuito. Al medir con el osciloscopio logramos obtener la siguiente imagen:



Imagen capturada con el osciloscopio del recorte de la señal.  Esto se comienza a producir a partir de los 20,5 V aproximadamente.

Imagen de la seña , al límite de que se produzca un recorte.
Teóricamente la señal se recorta porque la tensión que usamos (tanto negativa como positiva) en el generador de señales supera a la que usamos en la fuente de tensión para alimentar el circuito menos un V. o sea 12V -1V.


Ganancia de tensión de forma teórica :

R2/R1=  150Kohm / 10Kohm = 15.
En forma práctica a 1Mhz de frecuencia :
A 1Mhz , y con una tensón de entrada de 200mV , el amplificador deja de responder al cociente entre R2 y R1, obteniendo una señal de salida de 356mV

Imagen de la seña de entrada a 1MHz:

Imagen de la señal de salida a 1Mhz:

Circuito TL081:
Al colocar el tl081 en el lugar del 741, observamos que el circuito sigue funcionando como amplificador , pero la ganancia de tensión , a la misma frecuencia (1Khz) , no es la misma.

Imagen tensión de entrada. (160mv  = Vpp):

Imagen tensión de salida(1,96V =Vpp):
La ganancia de tensión , teóricamente debería dar  -15 veces , pero en la práctica nos dio 12,25 veces.

Ganancia de tensión en forma teórica:
-/ R2/R1 / = - 150Kohm / 10Kohm = -15
A 1Mhz el TL081 no sigue funcionando como amplificador.
Es decir que a ganancia de tensión depende de la frecuencia , ya que si la misma es my alta , el circuito deja de funcionar correctamente.

Demostración de que la ganancia depende de la relación entre R2 y R1:
Tomemos el siguiente circuito:
Para demostrar que la tensión de salida depende de R2 y R1 debemos asignar 2 “ Reglas de oro”:
I(-) e I(+) = 0
V1=0
Entonces , con el siguiente circuito sacamos las siguientes ecuaciones:
Ir1 . R1 = (Vs – Va) / R1                                 Ir2 = (Va-Vo) / R2
Ir1 = Ir2 + I(-)

Como I(-) es igual a 0A por a “Regla de Oro”

Entonces : Ir1 = Ir2

(Vs-Va) / R1 = (Va - Vo)/ R2
 Va = 0 por la “ Regla de Oro”

Entonces : Vs/R1 = -Vo/R2

Haciendo pasaje de términos llegamos a la conclusión de que

Vo/Vs = - R2 /R1

Imágenes del circuito  a 1Khz pero con distintas amplitudes:

Canal 1 la señal amarilla ,donde se encuentra Vo. Canal 2 es la señal celeste , donde se encuentra VS:

Vpp= 15,2mV
Vpp= 3,02V  (amplificada)
Ganancia : 201,33

Vpp= 28,8 mV
Vpp = 6,2 V(amplificada)
Ganancia: 240,31

Vs=  60,8mV
Vpp= 13,8V(amplificada)
Ganancia: 226,9







El límite de corte para la señal de entrada es 103 mV



Para poder medir  la resistencia de entrada en el circuito, se debe conectar una resistencia variable en serie antes de la entrada del amplificador. Un caso puede ser utilizar un preset, en el cual puenteamos un extremo con el medio , lo que será conectado a la entrada y el otro extremo se conecta al generador. Una vez hecho esto, se realizan diferentes mediciones variando el valor de la resistencia , y cuando se logre fijar el valor máximo de amplificación , será ese el valor de la resistencia fija que será igual al de la resistencia de entrada del circuito.
Tambien se puede poner una resistencia de prueba en la entrada , en serie con el circuito , que sea mayor a la resistencia que nosotros creemos que vale de entrada. Si hacemos esto , por medio de un divisor , y teniendo las tensiones de entrada y de salida , podemos calcular el valor de la resistencia de entrada con un simple divisor de corriente.
Como nuestra resistencia de prueba es de 100Kohm , la resistencia de entrada del circuito es:

Vi= Vs [Ri/(Rp+Ri)]

268mv= 572mv[Ri / (1Mohm +Ri)]

0,46 ( 1Mohm + Ri) = Ri

460 Kohm + 0,46 Ri = Ri

460Kohm = 0,54 Ri

Ri= 851 Kohm.


Imagen del circuito funcionando como buffer . ( En vez de R2 , va un puente):



Las aplicaciones del amplificador buffer pueden ser :
Como adaptador de impedancia, por ejemplo para poder conectar dos cosas que tienen distintas impedancias ( como un parlante a un amplificador) . Tambien puede servir para manejar corrientes mayores , y como controlador de etapas
Ejemplo: si tenemos que conectar un cartel de alta luminosidad como los que vemos en la calle , si lo conectamos directamente es probable de que no funcione , entonces por medio de un buffer podemos hacer que este cartel ande)







martes, 21 de junio de 2011

Formas de simulación con el MPLAB

Dentro del menu Debugger se encuentran los comandos para correr la simulación del programa que elaboramos. Para verlas tenemos que seleccionar en Debugger -Select Tool - MPLAB SIM


Simulación RUN:
Ejecuta el programa de forma contínua . Las ventanas que se abrieron antes de esto no se actualizarán hasta que esta simulación no sea frenada. Es una forma sencilla y rápida , pero la desventaja es que no se ve como evoluciona la memoria y los dintintos registros. Para acceder a esta forma de simulación debemos clicklear en Debuger - RUN , o presionar F9. 
Simulación Halt (paro):
Para la ejecución del programa y actualiza todas las ventanas. Es el correspondiente a las dos barras celestes.


Simulación animate:
Las intrucciones se ejecutan "animadamente" por una flecha verde que las va indicando a medida que pasa el tiempo. El programa es ejecutado de forma continua y SI son actualizadas las ventanas a medida que se van ejecutado las instrucciones. Es el modo de ejecución mas recomendable, y se activa haciendo click en Debugger - Animate , presionando Ctrl +F9 , o haciendo click en la doble flecha celeste.


Simulación Step Into:
Ejecuta las intrucciones una por una. Una vez que ejecuta una intrucción ,  actualiza todas las ventanas. Es una forma lenta de simulación , pero sirve para poder verificar bien la evolución de todos los registros y memorias. Se activa haciendo click en Debugger- Step Into , o presionando F7, o haciendo click sobre el siguiente icono:


Reset: Equivale al reset por activacion del MCLR. Se escoje seleccionando Debugger - Reset. o pulsando F6 , o seleccionando el icono correspondiente.


Simulación Run to Cursor:
Ejecuta las intrucciónes hasta que se encuentra con el cursor. Para lograr esto hay que situar el cursor en la línea donde está la instrucción que usaremos de tope, luego hacer click derecho , y colocar la opcion Run to Cursor. Luego hacemos click en Run.


Break Point (punto de ruptura):
El break point es un punto que pondremos nosotros en una intrucción , para detener la simulación de la ejecución del programa en la misma. Para que la simulación continúe debemos pulsar Run o Animate.
Para eliminar un break point hacemos doble click donde se encuentra el mismo. Lo bueno de este punto es que podemos analizar hasta cierta parte del programa, sin tener que verlo todo completo

jueves, 9 de junio de 2011

Act. 3: Parte C

PARTE C
Astable y Monoestable con uC 1) Armar el circuito con el PIC12F683. (Vcc = 5 V Regulados)
2) Leer los programas fuentes relacionados con el astable y el monoestable.
3) Grabar el microcontrolador con el programa ejecutable denominado AST_40K.hex.
4) Medir con el osciloscopio los tiempos y valores de tensión de salida.
5) Ahora grabar el microcontrolador con un nuevo programa ejecutable denominado MST_5s.hex.
6) Medir con el osciloscopio los tiempos y valores de tensión de salida.
7) Diseñar (NO HACER) una placa impresa de no más de 30 mm x 30 mm (0,09 dm2) para el circuito con el microcontrolador. Usar molex para todos los conectores.
8) ¿Qué ventajas y desventajas tiene el uso de microcontroladores en el diseño? 
Circuito armado en protoboard:
Circuito esquematico armado en PROTEL:


Circuito de la plaqueta armado en PCB:


Tabla de valores obtenidos en modo Astable:
Tensión de salida máxima
5,28V
Tensión de salida mínima
-240mV
Tiempo de T. máxima
12,40uSeg.
Tiempo de T. mínima
12,40uSeg.
















Si le sacamos el capacitor , la señal es menos regular, pero los valores son los mismos. 



























Valores obtenidos en modo Monoestable:
Tensión máxima
5V
Tensión mínima
-80mV
Tiempo de T. máxima
5 Seg.



Si le cambiamos la resistencia por una de 33K y una de 1M
Tensión máxima
5V
Tensión mínima
-80mV
Tiempo de T. máxima
5 Seg.

Es decir que modificando la resistencia , no se cambia ningún valor del cuadro.
Al cambiarle el capacitor , los valores también darán lo mismo.
Ventajas de este microcontrolador en este circuito: Las ventajas de este microcontrolador en el circuito es que se puede programar para que siempre de un tiempo exacto, aunque se modifiquen los valores de resistencias y capacitores utilizados. La desventaja es que durante la práctica no se le puede variar el tiempo , si no que hay que reprogramar el pic.


Le variamos los tiempos del circuito Astable de la siguiente manera: Agregamos el doble de intrucciones GOTO  $+1, por lo tanto el periodo de la señal vista en el osciloscopio se duplico
Ejemplo grafico:



Señal obtenida en el osciloscopio:




Tabla de valores obtenidos en modo Astable:
Tensión de salida máxima
5,00V
Tensión de salida mínima
-240mV
Tiempo de T. máxima
24,4uSeg.
Tiempo de T. mínima
24,4uSeg.
Asi mismo si se desea reducir los tiempos a la mitad se debe , en vez de agregar el doble de GOTO $+1 ,reducir a la mitad la cantidad de estas instrucciones.


Para modificar el monoestable modificamos el delay de 5000 ms , por 1000ms, mediante el CCS Compiler.:
Midiendo con el osciloscopio corroboramos que el valor es de 1000 ms. 

Tensión máxima
5V
Tensión mínima
0V
Tiempo de T. máxima
1 Seg.

Señal obtenida con osciloscopio