Vistas de página en total

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

MPLAB

Cómo crear un archivo nuevo:
1)Para crear un nuevo proyecto debemos abrir el programa, ir a PROJECT , luego hacer click en PROJECT WIZZARD.
2)Una vez hecho esto , ponemos SIGUIENTE , y seleccionamos el tipo de PIC que vamos a utilizar de la larga lista que hay.  Presionamos siguiente.


3)Elegimos el modo MPASM assembler , y presionamos siguiente. Abajo dirá en que carpeta se localiza.
4) Luego colocamos el lugar donde queremos que genere el archivo , y la carpeta donde se guardara, para eso debemos seleccionar la opción Browse. En nuestro caso lo guardamos en C: , donde haremos una nueva carpeta (Click derecho – Nuevo- Carpeta) , y dentro de esa carpeta pondremos el nombre del archivo que vamos a generar.


5) Una vez generado el archivo , debemos buscar en C: - Archivos de programa - Microchip - MPASM Suite y buscamos el microcontrolador que usamos. Encontrado el mismo , ponemos ADD y seleccionamos siguiente. Este es el ultimo paso , solo resta poner Finalizar en la ventana siguiente.










Rojo: En ese lugar haremos un comentario , como por ejemplo describir el funcionamiento de las instrucciones que va a realizar el pic.
Celeste:  En este caso esta descripto el hardware( estructura física) del pic.
En el reset (MCLR) , ira una resistencia de 10K , para “forzar” un 1 , y hacer que el pic no se resetee. En Vss se conectara la tierra. En RA0 , ira el pulsador a tierra, para resetear al pic , en conjunto con una resistencia. Entre OSC1 y OSC2 se conecta el Oscilador , en este caso de tipo XT(4Mhz aproximadamente.) En la pata correspondiente a VDD se le suministrara 5V.Y en RB7 , se conectara el led , con una resistencia y la alimentación.
También aclaramos que tipo y a que frecuencia trabaja el oscilador que utilizamos.
Vale aclarar que el punto y coma (;) , muestra que a continuación vendrá un comentario.
Verde: Datos utiles como fecha , nombre , y Versión. En la versión pondremos un 0.X(cualquier numero) , esto se hace porque todavía no sabemos si va a funcionar correctamente . una vez que lo sabemos , podremos poner 1.0 , que significa que lo que hicimos anda bien. Si queremos mejorarlo pero no sabemos si la mejora va a funcionar , también pondremos 1.X(cualquier numero). Una vez hecha la mejora , y funcionando correctamente podremos poner versión 2.0
d)Celeste:  __CONFIG es donde activaremos el WD, PWRT, CP y seleccionaremos el tipo de oscilador que vamos a usar.
Debe quedar de la siguiente manera:  WD_OFF , _PWRTE_ON , _CP_OFF, _XT_OSC.
Donde dice ERRORLEVEL , debe ir un menos (-) seguido del numero de error que queremos que NO nos marque , a la hora de verificar si esta bien hecho el programa.
Rosa: Es donde se designaran a las variables y a las “alias”
Las variables se definen #DEFINE , y define un “alias” por una instrucción completa. Por ejemplo pusimos que BANK1 , sea el cambio de banco 1 al 0.
El alias es el nombre que le designamos a algo para que luego el programa lo reconozca con ese nombre , que NO es el original, y se escribe primero lo que queremos denominar , luego ponemos EQU , y después el nombre que le otorgamos.
Gris: Es donde se declaran las variables que vamos a colocar. CBLOCK indica donde se va a ubicar la primer variable . Por ejemplo la primer variable nuestra se ubica en 0x0C , la segunda se ubicara en 0x0D , la tercera en 0x0E , y asi sucesivamente.  Terminado esto debemos colocar la instrucción ENDC , que significa que no vamos a designar mas variables


 NEGRO: Se observa que la combinación de las instrucciones hace que el micro controlador saltee todo el rectángulo rojo. También realiza anteriormente la acción de borrar el registro W. La instrucción org significa que empiece a guardar desde la posición x , en este caso la 0x00.clrw hace la acción de borrar el registro W y la instrucción goto significa que valla a ,en este caso a main .
                ROJO: Esta rutina se activa cuando hay algún tipo de interrupción y actúa de la siguiente manera: guarda la ultima acción que hizo luego de que se interrumpió el programa. Es por esto que la rutina anterior saltea esta.
                AZUL: BANK1 y BANK0 son definiciones. La combinación de estas instrucciones se encarga de poner como entrada a todos los pines del PORT A y como salida única al pin RB7. Movlw B’11111’ y movwf TRIS A es lo que hace que el PORT A sean todos entradas  y bcf TRIS B,LED se encarda de que sea salida el pin RB7


 ROSA:comienza con un bcf PORTB,LED es decir prende el del poniendo un 0 en ese puerto luego loop   btfsc PORTA,SW  y  goto loop mantienen prendido el led hasta que se presione el pulsador y comience el parpadeo  Blink bcf call bsf call  y goto son las que ponen uno y ceros en el RB7 ejecutando el parpadeo . Los 2 call se encargan de ir hasta las subrutinas del próximo recuadro.Y el goto hacia Blink es lo que repite el proceso ilimitadamente.
                MARRON: subrutinas: una subrutina es una forma de achicar tamaño del  programa de la siguiente manera, cuando uno sabe que va a utilizar varias veces una rutina realiza una  subrutina con un nombre que luego va a reemplazar a dicha rutina .decfsz es una instrucción que dice lo siguiente :  a la variable que yo le voy a decir a continuación réstele 1 y fijese si esta en 0 si esta en 0 saltee la siguiente instrucción  , de esta manera un puede poner delay teniendo en cuenta cuanto se demora cada instrucción a través de la siguientes ecuaciones:
F interna del clock es igual a la frecuencia externa dividido 4 , y el Tcyc=1/fint  este es el tiempo que tarda cada instrucción , las instrucciones de salto duran el doble.
                NEGRO: es la instrucción AL ENSAMBLADOR NO AL PROGRAMA que le dice que aca termino el programa. 


Algunos iconos útiles:
.lst : Informacion
.err : Errores en la programacion del pic
.asm : es el archivo fuente
.HEX: Archiv ejecutable que se usa para grabar el microcontrolador (Se puede ver con el Blog de notas)
.mcw: Guarda el espacio de trabajo que usaste( Work Space) , es decir como estan distribuidas las ventanas que usamos.
.mcp: Es el poyecto generado.
.O: Es el objeto previo al ejecutable. Se toman con el Linker y genera un .exe(ejecutable)