de ingeniería eléctrica. - 148.206.53.84148.206.53.84/tesiuami/uam4061.pdf · o tres modos de...

28
Universidad Autónoma Metropolitana. ZJnidad Mapalapa. /Divisi6n de Ciencias Bdsicas e Ingeniería. Departamento de Ingeniería Eléctrica. Tesis que presentan los alumnos : /Marin de JesBs José Marcelino90??1344 Mendoza Cohetero Gabriel Agustín 89324205 Para la obtención del grado de : Ing. En Electrhica. Ramírez González Rubén 90224678 Para la obtención del grado de : Ang Biomédicoi

Upload: lamque

Post on 26-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Universidad Autónoma Metropolitana. ZJnidad Mapalapa.

/Divisi6n de Ciencias Bdsicas e Ingeniería.

Departamento de Ingeniería Eléctrica.

Tesis que presentan los alumnos :

/Marin de JesBs José Marcelino 90??1344 Mendoza Cohetero Gabriel Agustín 89324205

Para la obtención del grado de : Ing. En Electrhica.

Ramírez González Rubén 90224678

Para la obtención del grado de : A n g Biomédicoi

S N V I G E

MICE Introducción ....................................................................................................................... 3

Objetivos Generales .................................................................................................. 4

Características del PIC ................................................................................................. .4 Descripción General. Arquitectura. Organización de la Memoria. Comparador. Descripción del Módulo Comparador (modos de operación). Descripción del Módulo de Voltaje de Referencia (utilización). Tiempo de Establecimiento.

Implementación del Circuito .................................................................................... ..I2 Puerto Serial RS232. Indicador de Alimentación y Activación del Sistema. Diagrama de Conexión. Reloj. Entrada y alojamiento del Componente. Conexión del PIC.

Conversiones A/D ........................................................................................................... 14 Convertidor Sencillo. Convertidor Doble. Convertidor Sencillo Modificado.

Método de Medición ................................................................................................. 16 Descripción de la Medición. Mensajes de Error.

Desarrollo del Programa de la Aplicación ................................................................. 17 Objetivos. I m plementación . Etapas. Codificacicin. Listado de Código.

Conclusiones.. .................................................................................................................. .27

Bibliografía ..................................................................................................................... 28

INTRODUCCI~N

El diseiio de circuitos para aplicaciones especificas se ha hecho común, se resudven problemas en forma específica con la ayuda de circuitos integrados ya existentes en el mercado; los cuales facilitan en gran parte estos disefios. Por lo general necesitan de agregades varios componentes externos como pueden ser resistencias y/o capacitores (algunas veces inductancias) 6 algún otro tipo de componente; para lograr la aplicacidn deseada.

Cuando se tenía que acoplar varios bloques independientes, para formar el diseiio; implicaba problemas de acoplamiento entre los diferentes bloques (6 etapas) al unirlas (conectadas entre sí). Con los circuitos integrados (C.I.) se pueden reducir estos problemas de acoplamiento, a la vez que facilita su manejo y mantenimiento.

La selecdbn del proyecto ha realizar fue determinada para usar este tipo de tecnologia y comprobar la utilidad de usar C.I. en aplicaciones que puedan resultar atractivas y por lo tanto de uso frecuente. Bajo estos preceptos se ha escogido a los dispositivos llamados "microcontroladores" de los wales existen diferentes compaiiías que se dedican a fabricados; de estas se ha escogido a las elaboradas por la compafiía MICROCHIP; por cubrir en gran medida los requisitos que se necesita para la funcidn de la aplicacidn. La cub1 va a cubrir dos aspectos importantes: la comunicacibn con un medio externo al sistema y un trabajo interno realizado por el C.I.; estos dispositivos estan subdivididos en familias, las que se diferencian por sus características: capacidad de memoria, líneas de transmisibn, empaquetado, consumo de potencia, etc.; se escoge un modelo de reciente creacidn.

El modelo PIC16C622 de la familia PlCl6C6XX, es de reciente creacidn en los microcontroladores de 8 bits fabricados por MICROCHIP; el C.I. tiene internamente dos mMulos que se ocupan uno denominado MODULO COMPARADOR y otro llamado MODULO VOLTAJE DE REFERENCIA; ambos se especifican como funcionan y como son utilizados en la aplicacidn. Las aplicaciones típicas en donde puede ser utilizados estos C.I. son tales como controladores d censores a distancia de bajo poder; se busca que la mayor parte del trabajo se desarro116 en estos m6dulos y despliegue los resultados en un medio externo (computadora).

A lo largo de este documento, se va profundizando acerca del desarrollo de cada una de las etapas que constituye la aplicacidn, la implementacidn del hardware, las tbcnicas utilizadas, referencias a informacidn sobre el diseiio, implementacibn del software, expectativas y resultados obtenidos (prueba hechas). La siguiente secuencia denota los pasos durante el desarrollo:

Se empezará por hacer una descripción del PIC en forma general (caracteristicas ektricas, organización interna, registros de trabqjo, etc).

Desarrolb &órico de las diferentes etapas a utilizar (modos de operación y de configuración) por el PIC

Desmpcidn del manejo y configuraciones de los registros a d como de los bancos de memoria que tiene el PIC

Disehs de hmdwme (dagrama de conexión) y software (de bajo y alto nid).

Auebas, análisis de resrrhadbs y conelwsiones.

3

OBJETIVOS GENERALES --- Seleccidn de una aplicacidn específica y concreta.

- Observar una interrelacidn entre el hardware, software de la aplicacidn y la utilidad de un medio externo (computadora).

-- Importancia de la programacidn de bajo nivel junto con la programach de alto nivel.

-- Una Aplicacibn de uso frecuente y prhctico.

CARACTER~STICAS DEL PIC

El PICl6C622 incluye características de la familia PlCl6CXX tales como son : O Microcontrolador. 0 CPU RlSC de alto desempefio. O Unicamente consta de 35 instrucciones de programacidn. O Dos ciclos de mfrquina para saltos 6 llamadas. 0 Un ciclo para todas las demfrs llamadas. o Reloj a 20 Mhz. O 200ns de ciclo de mfrquina. O Capacidad de Interrupciones. O Puerto B de interruptor de cambio. O 13 pins de entraddsalida con control individual. O Memoria de programa y de datos. O Stack de 8 niveles (brea de memoria, ubicacidn de registros). O Tres modos de direccionamiento ( directo, indirecto y relativo ). O Watchdog timer. O Proteccibn de código programable. 0 Tecnología CMOS.

DESCRIPCIóN GENERAL

La familia de microcontroladores PlCl6C62X es CMOS de alto desempefio y bajo costo, estos microcontroladores son conocidos como controladores de Rango Medio. Emplean una arquitectura RlSC avanzada; y utilizan líneas de transmisidn (bus) independientes para los datos e instrucciones, permiten palabras de 14 bits para los comandos de instruccidn y de 8 bits para datos.

Estos microcontroladores tienen un PIPELINE de 2 etapas para las instrucciones, lo que permite que las instrucciones se ejecuten en un solo ciclo de mwuina excepto las ramificaciones d saltos condicionados los que requieren de dos cicfos. Utiliza 35 instrucciones con una reduccidn en el cbdigo de 2:l y una mejora en la velocidad de 4:l en comparacidn con los demhs microcontroladores de 8 bits de su clase. El C.1. tiene una salida bmwn-out , llamado detector de circuitería y un filtro para entrada Reset (MCLR); Brown-out detecta y mantiene el dispositivo en Reset mientras VDD este por debajo del voltaje detectado por brownaut, el filtro de Reset es usado corno filtro de salida en el pin MCLR.

Existen dos versiones de empaquetado: una con ventana para borrado UV, esta versi6n puede borrarse y reprogramarse para cualquier modo que se use de oscilador; y otra sin ventana conodda como OTP (Programable una sola vez) que es mfrs barata y se utiliza para producddn masiva. Los siguientes son los arreglos de los pin para cada empaquetado : PQeOVECBO BE IN~'[email protected]/I 11 4

Empaquetado PDIP, SOIC, CERDIP

CARACm?fS71cAS E L PSC

Empaquetado SSOP

Se utiliza la versi6n de reprogramaci6n (SSOP) en la siguiente tabla se describe la funci6n de los pin: NOMBRE SSOP TIPO TIPO DESCRIPCI~N

# Pin I/O/P OscllClklN 18 I ST1CMOS Entrada Oscilador cristal I entrada reloj externo. OsdlClkOUT 17 O Salida oscilador cristal. Conexión a un cristal o resonador en modo

oscilador de cristal. En modo RC salidas en el pin OSC2 CLKOUT en las cuales se tiene % de frecuencia del OSCI, y denota el ciclo de la instrucción.

Este pin activa Reset bajo del dispositivo. PUERTO A es bidit&ccional pueito entiirda I sálida.

MCLRNPP 4 UP ST Entrada de Clear maestro (Reset) 1 entrada de voltaje programado.

RAOIANO 19 I/O ST Entrada del comparador analógico. RAI IAN I 20 I10 ST Entrada del comparador analógico. ~ I A N ~ N R E F 1 110 ST Entrada del comparador analógico ó salida VREF. RA3lAN3 2 I10 ST Entrada del comparador analógico. RAllA-OCKI 3 ¡¡O ST Se puede SeleCC.ionar como entrada de reloj a l TIMERO

(timedcontador) ó salida de un comparador. Salida del tipo lazo abierto. PUERTO B es bidireccional puerto de entrada I s a l i d a . El puerto B puede ser programado por software para dar de alta todas sus entradas.

RBOIINT RBI RB2 R83 RB4 RB5 RB6 RB7 vss

7 8 9 10 11 12 13 14 5;6

110 110 ¡/O 110 110 I10 ilc) I/O ? -

TTUST") Puede ser seleccionado por un pin de interruptor externo. ST ST 6T ST Interruptor en cambio de pin. ST Interruptor en cambio de pin.

TTUS?') Interruptor en cambio de pin. Programacidn reloj seria¡. TTUST'*) Interruptor en cambio de pin. Programacidn reloj serial.

--- Ratorando 9 !iPnn pF!m !&$e. y pins !/O: VDD 15,16 P " Fuente positiva para IdgiG y pins 110.

Símbolo : O = Salida I/O = Entradalsalida P = Poder - = No usado I = entrada ST = entrada Schmitt Trigger. l T L = entrada TTL. NOTA (1): Este buffer es una entrada Schmitt Trigger cuando es configurado con un interruptor extemo. NOTA (2): Este buffer es una entrada Schmitt Trigger cuando es usado en modo de programacih serial.

ARQUITECTURA .- El alto desempeAo de esta familia se le atribuye a su forma de arquitectura Harvard c m u:: rnicrqxccesador EISC, !',en= una mernchc Indtptnditntt pars !os datos t inst~mcic::es (programa) accesando a cada una de ellas por diferente bus. El PIC contiene una ALU (Unidad Aritm&ica L6gica) de 8-bits y un registro de trabajo (Acumulador); donde se van a efectuar las operaciones aritm4ticas y booleanas así como funciones de operaciones entre registros. En el diagrama No.1 muestra los diferentes m6dulos que lo componen y su conexi6n.

ORGANlZAClbN DE LA MEMORIA .-Se puede direccionar 8Kx14 de espacio en memoria para programas, de los cuales los primeros 2Kx14 ( OOOOh - 07ffh ) son implementados físicamente para el PIC. Tiene definidos 8 niveles de stack (pila), seguido de un vector de Reset (000h-003h) y un vector de interrupciones (0004h), estas localidades son restringidas solo de lectura; quedando disponibles 0005h a la 07ffh (ver mapeo de memoria stack).

7 ' .

cARAcmlsnm v € L DIAGRAMA No.1 LA ARQUITECTURA

13

NOTA (1) : El orden de los bits esta dado por el registro STATUS.

MAPEO DE MEMORIA STACK

CALL. RETURN

I I STACK LEVEL2

I

Puerto9

MAPEO DE MEMORIA 1

- I I

Bank0 Bank 1

'OS.

PIC

La memoria de datos esta particionada en dos bancos ( Bank O y Bank 1 ) se encuentran los registros de prop6sito general y los registros de funciones especiales. La seleccidn del Banco O 6 1 esta dada por el registro STATUS a través de la seleccidn adecuada de sus bits denominados RPO. Los registros de funciones especiales son localizados en las primeras 32 localidades de memoria de cada uno de los bancos (ver mapeo de memoria datos y registros).

El circuito comparador es un circuito que tiene dos entradas y una salida; donde se comparan entre sí

entradas excede a la otra. Un circuito comparador básico sencillo es en esencia un amplifi[cador operacional, ?a! wmo se mues?ra en !a figura N,. 1 ; cuarrdo e! vo!?aje \I+ es menos que el ti-, !a sa!Ma del comparador es un nivel digital bajo (O), en caso contrario es un nivel digital alto (I).

!SS doe en?radas y !e se!Ide es une cendloibn digfie! (O 6 ?) que representa si e! wkaje de une de !as

Entrada -+

Salida Salida Entrada -

('-2V) V d

FIGURA No. 1

En la figura No2 se muestra una señal senoidal acotada por los niveles de entrada del comparador y su correspondiente salida en forma de unos y ceros; las Breas sombreadas en la onda de salida representa la incertidumbre debido a offsets y a la respuesta en tiempo (provocada por la transicidn entre un nivel y el otro).

Entrada

Entrada

Salida n n COMPARADOR SENCILLO

FIGURA No. 2

El C.I. cuenta con un mddulo COMPARADOR, el cual contiene dos comparadores sencillos que se pueden configurar a traves de un registro especial (CMCON).

MóDULO COMPARADOR

Este módulo contiene dos comparadores analdgicos con 8 modos de operacibn; las entradas de los comparadores son multiplexadas por medio de los pins marcados R A O hasta M 3 . Se puede usar una sefial de referencia Interna 6 Externa dependiendo de la seleccidn del modo de operacibn del Comparador; esta sena1 de referencia debe estar entre Vss y VDo. Cuando se utiliza una señal de 6409?E.CTO @E I ! N ~ ! E E X I E ~ I J I I 7

CAmCmsnm 2x1 PIC referencia Interna, estí4 es generada por el mddulo de voltaje de referencia; en este modo el voltaje interno es aplicado al pin VIN+ de ambos comparadores. El Registro de Control Comparador (CMCON) controla las entradas y salidas multiplexadas mediante la configuracibn de sus bits. En el siguiente esquema se muestra su descripcidn.

REGISTRO CMCON (1Fh)

I C2OUT 1 ClOUT I " I I CIS I CM2 I CM1 I CM0 ] bit 7 bit 6 Bit 5 bit 4 bit 3 bit 2 bit 1 bit O

R R U ii aw *vi *-t" .. -e.. K l v v

R : lectura W: escritura U : deshabilitado se lee como "O" bit O - bit 2 : CM<2:0> Modo del comparador (Hay ocho modos). bit 3 : CIS Switch de entrada del Comparador.

Cuando CM<2:0> = O01 : 1 = C l (comparador C1) VIN- conectado a RA3.

Cuando CM<2:0>=01 O : 0 = c1 VIN' cÜ¡¡edaiÜ 3 f%g.

! = C1 (mmparsdor C? ) '!iK- c?3nec!sdc? 3 PA3. C2 (comparador C2) VIN- conectado a RA2.

O = 61 VIN- conectado a RAO, C2 VIN- conectado a RA1 .

bit 4 - bit S : Sin implementacibn, no esten disponibles; se leen como "O". Mt 6 : ClOUT , comparador C1 salida.

0 = cj WIN+ cj VIN-

bit 7 : C20UT1 comparador C2 salida.

1 = c 1 VIN+ > c1 VIN'

4 - -e., I - bL VlNi = VIN'

0 = c2 VIN+ < c2 VIN'

MODOS DE OPERAC16N DEL COMPARADOR Por medio del registro CMCON se selecciona el modo de operacibn; de la figura N,.3 a la figura N,.10 se muestran las diferentes configuraciones. El registro TRISA controla la direccidn de los datos en los pins para cada modo. Si el modo es cambiado, el nivel mostrado en la salida del comparador puede ser no vdNd8 se debe especificar entre cada cambio un retardo para la estabilidad del comparador.

NOTA: Los interruptores deberen estar deshabilitados durante cada cambio de modo para evitar interrupciones no deseadas.

CM<2:0> = O00 FIGURA No.3

CM<2:0> = 1 1 1 FIGURA N0.4

CARAcmfsTIcfIs v € L PSC MODO COMPARADORES EN RESET (figura No.3) : Considerado el modo de mhs bajo consumo de potencia ya que los comparadores esthn apagados, las entradas R A O a la RA3 son anabgicas, las salidas marcadas con "OFF" se leen como un " O ; este modo está dado por el registro CMCON<S:O> que denota los pins 2, 1 y O, su valor va de acuerdo con cada modo; en este caso va a ser 000.

MODO COMPARADORES OFF (figura N0.4): Similar al anterior excepto por las entradas las cuales en este caso son digitales, se consume más comente que en el anterior. Las salidas en "OFF" se lee como "O", el valor del registro es: 1 1 1 (pins 2 , l y O).

MODO DOS COMPARADORES INDEPENDIENTES (figura NOS) :En este modo pueden trabajar de forma independiente los comparadores , sus entradas son analbgicas e independientes.

MODO CUATRO ENTRADAS MULTIPLEXADAS PARA DOS COMPARADORES (figura No.6): Tienen una entrada en común VIN+ a un voltaje de referencia y la otra multiplexada por un para cada entrada VIN-; las entradas multiplexadas se seleccionan a través del bit 3 en el registro CMCON, conforme la siguiente tabla:

swtich de dos entradas bit CIS marcado con el

O RAO RA1 1 RA3 RA2

A VIN+ RA3lAN3

A VIN- C l O U T

RA31AN3, - 4 KAOJAN O

RAOIANO A

i A

MODO DOS COMPARADORES CON REFERENCIA EN COMúN (figura No.7): Se configura a los comparadores con una seflal de entrada común (M2) en VIN+; la entrada RA3 que sobra es configurado como pin digital 110, el registro está determinado por CM<2:0> = O1 l.

MODO DOS COMPARADORES CON RETROALIMENTACI6N (figura No.8) Tiene una entrada común como el caso anterior, la diferencia es que las salidas de los comparadores se conectan a los pins (VO) RA4 Y RA3; para RA4 se requiere de una resistencia de arranque por ser una salida de lazo abierto. El valor de la resistencia afectara la respuesta en tiempo del comparador C2.

MODO UN COMPARADOR (figura No.9): Tiene a C1 apagado con RAO y RA3 digitales y las entradas de C2 analogicas con una salida C20UT.

MODO TRES ENTRADAS A DOS COMPARADORES (figura No. 1O):Utiliza como entrada la seAal de RA2 común a VIN+ de los dos comparadores. RAl como entrada para VIN- del C2 y para VIN- de C1 esta multiplexada por el bit CIS del registro CMCON; si CIS = O se toma RAO en caso contrario se toma FW3. a ! R , O m C T O @E IxpNzEQtIa I I 9

CM<2:0> = O 1 1

FIGURA No.7

CM<2:0> = 101

FIGURA No.9

CM<2:0> = 110 FIGURA No.8

CM<2 :O> = O0 1 FIGURA No.10

MóDULO VOLTAJE DE REFERENCIA

Es un mddulo que consta de una red escalera de diecis6is estados o niveles de resistencias por lo que se tienen distintos niveles de voltaje (ver figura No.1 l), cada segmento provee dos valores del VREF. Este voltaje tiene una funcidn de apagado (sleep) para conservar la potencia cuando no se est6 usando; su forma de seleccionar un nivel 6 estado diferente es a traves del registro VRCON.

REGISTRO VRCON ( 9Fh ) RMI RNV RMI U RMI RNV RNV RMI

I VREN I VROE I VRR I ""I- I VR3 I VR2 I VRI I VRO I bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit O

R : lectura W: escritura U : deshabilitado se lee como "o" bit O - bit 3 : VR<3:0> Valor de selecci6n de VREF en el siguiente rango:

O 5 VR[3:0] I 15 Cuando VRR = 1 : VREF = ( VR<3:0> i 24 j R VDD.

Cuando VRR = O: VREF = 1 / 4 * VDD + ( VR<3:0> / 32 * VDD). bit 4 : sin impiemgfiieci&, "a g~t6 di~mfiibié; ~8 ~~~ "c. bit 6 : VRR: .Rango de selecci6n para VREF.

4 - ea"-- n-:- I - nab tyu oap.

O = Rango Alto.

1 = VREF es salida en el pin RA2. O = VREF es desconectado para el pin RA2.

1 = VREF del circuito esth encendido. O = VREF el circuito esta apagado 6 sin hacer nada, no hay IDD.

bit 6 : !-!sSi!i?sciSr! de! VREF de %!ida.

bit 7 : Habilitaci6n de VREF

UTILIZACIoN DEL VOLTAJE DE REFERENCIA Este mddulo opera de manera independientemente a el mddulo comparador. La habilitacidn del voltaje de referencia con una seiial de entrada presenta incrementa el consumo de corriente, los incrementos son debidos a esta seAal de entrada; el incremento de consumo de corriente es dependiente de la colocaci6n del VREF y del valor de la seAal de entrada. El siguiente par de ecuaciones determinan el valor del voltaje de referencia:

VRR = 1 , VREF = ( VR<3:0> / 24 ) X VDD V R R e O , V R E F = ( V D D / ~ ) + ( V R < ~ : O > / ~ ~ ) X V D D

Si el voltaje de referencia es usado con el mddulo comparador, los siguientes pasos deberh seguirse cuando se seleccione otro valor de voltaje de referencia; para evitar conflictos a la hora de cambiar:

A).- Inhabilitar las interrupciones del comparador. B).- Hacer cambios al voltaje de referencia. C).- Permitir un retardo de lops para estabilizar el VREF. D).- Permitir un retardo de 1 Ops para establecer los comparadores. E).- Limpiar las banderas de interrupcidn:

Leer el registro CMCON. Limpiar el BIT CMIF.

F).- Habilitar los interruptores del comparador.

La salida del voltaje de referencia puede ser usado como un simple ADC, sin embargo, esta salida esta limitada cuando se conecta al pin RA2. Si el VREF es usado como una salida, deberá utilizarse un buffer externo.

TIEMPO DE ESTABLECIMIENTO DEL VOLTAJE DE REFERENCIA Esta definido como el tiempo que toma el voltaje de salida para mantenerse despues de realizarse un cambio; los cambios incluyen el ajuste en la posicidn de la red de resistencias, la habilitacih de la salida y la habilitación de la misma referencia. Si el voltaje de referencia es usado con el mMulo comparador, se considerar& m&s tiempo para establecerse (por medio de un retardo predefinido por el usuario bajo programa).

11

IMPLEMENTACIÓN DEL CIRCUITO

La aplicacibn del circuito llamada “PICMETER” medidor utilizando un PIC, usa un PIC de la familia 16C62XXX de nombre PICl6C622 se basa en la utilización de un convertidor sencillo de una sola cresta (convertidor ND) a traves de la utilizacibn de los dos comparadores con los que cuenta el PIC en su estructura interna, haciendo una forma de onda con carga exponencial correspondiente a una RED RC. En principio es medir el tiempo de carga que genera esta onda exponencial de una red formada por componentes conocidos e ir comparando contra el tiempo generado por una red formada con uno de los componentes desconocidos, así hasta determinar el valor de ese componente, utilizando para ello los registros que ya se describieron y el complemento del sistema con un software para inicializacibn del sistema, de los registros, de la medicidn del tiempo y operaciones. Los resultados obtenidos son transmitidos a una PC en la cual se despliega el resultado del componente a medir; se presenta un diagrama esquem&ico de la configuracibn de todo el sistema.

El sistema consta de las siguientes etapas: I).- Puerto Serial RS232. II).- Indicador de alimentacibn y activacibn del sistema. Ill).- Reloj por medio de una configuracibn con cristal de cuan0 para generar un reloj de 4 Mht. IV).- Entrada y alojamiento del componente desconocido ( a medir ) por medio de dos puntas de

V).- Conexibn del PIC. conexibn.

I) Puerto Serial RS232. En esta etapa se consideran dos de los factores mhs importantes en este sistema: Fuente de alimentacibn y la transmisidn - recepcibn de datos (todas las referencias que se hagan a los dispositivos se pueden verificar en el diagrama de conexibn, que aparece en la siguiente hoja).

El puerto serial RS232 es por medio de un conector DB9, que consta de 9 pins de los cuales, 5 se emplean en esta aplicaci6n los cuales son : pin 2 : RXD pin 3 : TXD pin 4 : DTR pin 5 : GND pin 7 : RTS

Las líneas RTS y DTR del puerto serial proporciona salidas de 3V y de I IV; los didos 02 y 03 en la parte de la alimentación preven cualquier daño al puerto serial de la PC en caso de sobrecarga; el resistor R10 es usado para limitar la corriente del diodo Zener,D4. El diodo 04 es usado para regular al voltaje de RTS y DTR a 5.6V. Los capacitores C3 y C4 filtran la sena1 dada por el diodo Zener para alimentar al PIC. La línea GND proporciona tierra al sistema.

Este m6todo de alimentacibn es muy simple y útil para dispositivos que usan el puerto serial, ademhs ofrece ¡as caracieristicas necesarias en cuanto a voiiaje y corrienie se refiere, ya que e¡ eiemento principal de este sistema, el PIC, solo requiere de 7 mA aproximadamente para funcionar.

En cuanto a la transferencia de datos, la recepcibn se lleva a cabo por el pin 2; la transmisih es a traves del pin 3; bi envid y recepcibn es desde la PC hacia el sistema 6 viceversa. Esta interaccion de la informacibn se realiza por medio del programa de PC, en el que esthn implementadas las rutinas del puedo serial.

El transistor Q1, opera como un sistema de conmutacibn entre la recepci6n y la transmisibn. Cuando el pin 2 (RXD) de recepcibn se encuentra a un nivel bajo, el colector de Q l se encuentra tambi6n a un nivel bajo lo cual ‘enciende” al transistor permitiendo la recepcibn de datos en la PC. En cambio cuando la línea de TXD esta en nivel alto, Q1 esta “apagado”, permitiendo el flujo de datos de la PC al sistema.

P R O G R A M A V E A P L I C A C I d N

DIAGRAMA DE CONEXI~N DEL SISTEMA COMPLETO.

#

1 BORNE DE ENTRADA (+)

SfVlTCii DE SELECCION

m ENTRADA Y ALOJAMIENTO DEL COMPONENTE

(St) I *

> 2

v: I s 7 I E f Y

BORNE DE ENTRADA (-)

..

C O N E X I ~ N DEL PIC

I I +O" SWITCH DE

INICIO

i 5 Rid

PUERTO S E R I A L

R1 i i

vdd ?

FIGURA No.12

13

P R O G R A M A VDE A P L f C A C I d N II) Indicador de alimentacibn y activacibn del sistema. Esta etapa es una de las mas pequeiins de nuestro sis?ema; y ecta wnformada tan solo por un resistor (Rl) y un diodo led (Dl) los cuales son conectados en serie y puestos en paralelo con el diodo Zener (D4), para indicar si el sistema esta recibiendo la alimentacibn por parte del puerto serial; al observar el estado del diodo Dl quien deber6 recibir un voltaje a traveSs de R1 para limitar en corriente a D l permitiendo que no se queme.

111) Reloj por medio de una configuracibn con cristal de cuarzo para generar un reloj de 4 M hz. Esta etapa es tan solo un cristal de cuarzo, el cual al conectarlo al PIC permite tener una oscilacidn de 4Mhz (ver diagrama anterior). Es utilizado para que el PIC tenga sus ciclos de reloj establecidos a frecuencia conocida. Esta configuracidn se lleva a cabo desde el programa de PIC.

IV) Entrada y alojamiento del componente desconocido por medio de dos puntas de conexibn. Aquí la operacidn principal de reconocimiento del dispositivo se lleva a cabo por medio del switch de seleccih S1 (para todas las referencias, se puede ver el diagrama anterior). Este switch es usado para seleccionar cualquiera de los dispositivos capacitores d resistencias a medir. La entrada del PIC marcada con el pin PB5 detecta el tipo de componente, a su vez, intercambia un componente anterior (en caso que de que se halla efectuado una medicidn antes) en la red formada con el nuevo (ha medir).

Si se selecciona un capacitor y es una resistencia lo que se desea, el circuito se reduce a un resistor en la entrada VIN del comparador (ver conversiones ND) y el resultado que marca es de "O" pF; si el voltaje en el resistor es mas grande que el de referencia establecido se marca un error.

Si se selecciona una resistencia y es un capacitor lo que se desea, el circuito se reduce a un capacitor distribuido por la red en el pin VIN- del comparador, en este caso se produce un mensaje de error. Iniciando la medicidn sin componentes ocurre; si se tiene seleccionado resistencia causad un error; si es capacitor dar6 por resultado "O pF.

V) Conexibn del PIC. En esta parte se concentran todas las etapas anteriores ademfrs de una parte de polarizaci6n formada por R6 y R7 en paralelo y una etapa de reset. El reset se lleva a cabo por un switch de pulso, S2 conectado a tierra. S2 es usado para iniciar la medición (reset), conectada al pin RB6 del PIC y a la habilitacidn del puerto B cada vez que se presiona se detecta una interrupcidn del sistema y el reinicio de una nueva medicidn.

CONVERSIONES A / D Los convertidores mfrs sencillos y ffrciles de implementar son los llamados de "cram lineal", por su alta linealidad y buena resolucidn para bajos rangos de conversidn. Se hace una breve descripcidn de los dos tipos b6sicos y de la utilizada en esta aplicacidn.

Convertidor Sencillo. La configuracidn de un convertidor sencillo es como se muestra en la figura 13, un integrador en paralelo con un switch (Sl) y un capacitor ((21); y la salida se obtiene a travbs de un comparador, el cufrl lleva una seiial de entrada (AIN) con la que se va a comparar para generar la seiial de salida digital.

Cuando el switch S1 es abierto, en ese momento comienza la 'cresta"; el intervalo de tiempo entre que se abre el switch y el cambio de estado del comparador es proporcional al valor de la seaal AIN. En este tiPo de convertidor su estabilidad depende en gran medida del valor del capacitor (Cl), es decir, de SU valor; para valores grandes se tiene menor estabilidad y viceversa.

P R O Y E C T O @E Z ! N ~ E ! N Z E ~ Z / r XI 14

Convertidor Doble. Su configuracibn es como la que se muestra en la figura 14. La diferencia con respecto al anterior, es que se utiliza un voltaje de referencia a la entrada del lntegrador conmutada por medio de un switch (SZ), con la que se integra desde la parte negativa de AIN hasta el VREF.

S1

-V F'tl

FIGURA No.13 FIGURA No.14

El tiempo de duracibn que requiere la "cresta" para regresar a cero es proporcional al valor de AIN. Ambas crestas (AIN y VREF) son hechas con el mismo capacitor (C'l), de manera que solo se necesita establecer un ciclo de conversidn, este convertidor remueve el factor de estabilidad que introduce el capacitor (Cl); pero la absorcibn dieldctrica del mismo tiene un efecto directo. La absorcibn dieledrica est4 definida como el dielktrico que recibe o da carga instantanea de forma embnea, genera con ello diferentes vaiores de salida para una entrada estable. Para corregir esto se utilizan capacitores con diel6ctricos de tefldn, polyester y propileno, que son mejores que los de mica, vidrio y papel; los peores son ¡os eiectroiiicos; por eso no se deben usar en e¡ uso de convertidores.

Convertidor Sencillo Modificado. Se observa en la figura 15. Este convertidor ha sido disefiado para compensar los efectos que presentan los convertidores previos, es el utilizado para la aplicacidn. Algunas de sus características son: 0 Correcta continuidad para los "ceros" y escala llena en todos los componentes del circuito. 0 La integracidn del capacitor (Cl) es cargada peribdicamente y siempre en la misma direccibn, el error debido a la absorcibn diel6ctrica serA pequefia y compensada por la utilizaci6n de un offset en el procedimiento de la calibración.

No hay posibilidad de rechazo, ya que la sefial va conectada directamente a la entrada del comparador. Si se utilizarh un filtro podría causar un retardo debido al tiempo que necesita el fittro para reestablecerse.

FIGURA No.15

1s

P R O G R A M A V f A P L f C A C I d N El microcontrolador coloca una señal periódica al switch S1 independiente del modo de operación del sistema. La salida del integrador es a una frecuencia fija, periodo y amplitud en la cual se mantiene dentro de la entrada del comparador. El tiempo entre las "crestas" es bastante amplio para permitir la descarga completa de C1.

La otra entrada del comparador est4 conmutada a trav6s del switch S2, desde AIN hasta tierra pasando por el VREF. Cuando el microcontrolador inicia la conversión la sefial de tierra es conmutada, en el comparador se mide y guarda el tiempo de la cresta desde cero (constante de tiempo); de la misma manera se hace para las otras sefiales. Asumiendo que se tiene una alta linealidad, se pueden tener valores de constantes de tiempo medidos muy precisos para su posterior uso.

MÉTODO DE MEDICIóN

Para medir una resistencia ó capacitancia desconocida se emplear4 el convertidor sencillo descrito anteriormente; por medio de una red RC formada por una resistencia conocida y el capacitor a medir 6 un capacitor conocido y la resistencia a medir; por "conocido" se indica que sabemos su valor de antemano. Los procedimientos para la medicibn de la RESISTENCIA o CAPACITANCIA son los mismos excepto por los pins de I/O usados para el control de la red RC que se forma.

La idea es conocer el tiempo de carga de una red con valores conocidos e ir comparhndola contra la formada por el componente desconocido hasta encontrar su valor, pareciera que se tienen que realizar un buen número de comparaciones hasta lograr encontrar el valor correcto; sin embargo, todas las operaciones de medición y comparación son realizadas por el CPU del PIC; y a ese nivel es mucho m4s rhpido el proceso debido al número de operaciones que realiza el chip en cuesti6n de milisegundos, ademLs de que se fija un rango de ieduras.

Estos tiempos de carga (constantes de tiempo) son medidos a traves de un "contador" predefinido que trae el mismo PIC, llamado uTIMER09p y considerando la linealidad del convertidor se pueden establecer las siguientes relaciones :

RDES ( TDES X RCON 1 1 TCON CDES ( TOES X CCON 1 1 TCON

Donde : RDEs y CDEs son el resistor ó capacitor desconocidos, RCoN y CCoN son los componentes conocidos, y finalmente z son las constantes de tiempo para cada una de las redes (mn=conocida, des=desconocida).

Debido a que los resultados son obtenidos mediante comparaciones sucesivas, se tiene una tolerancia de error en la medid&i: en el diseho se tratara de minimifar lb m& que se püeda pan obtener ÜAB aproximación lo bastante aceptable.

DESCRlPClbN DE LA MEDICJ6N. Para poder inicializar una medición se deber4 tener todas las salidas aterrizadas para la descarga de los capacitores, esto es los pines de I/O del chip marcados con PORTA y PORTB que se esten utilizando por default ir4n a tierra. El escoger medir una red u otra depender4 de como se conforme al PIC por medio de la programacibn en su memoria (EPROM)$ es decir, e s t a ~ n previamente seleccionados las entradas y salidas por medio del programa.

Inicialmente se tiene una red RC formada de componentes conocidos (R4 y C1) al seleccionar el tipo de componente a medir, mediante un switch; de la red se mueve el componente según sea el caso. Esto se logra haciendo RBO ó RB2 una entrada para el PIC, las dem4s conexiones se siguen manteniendo a tierra, se inicializan los mbdulos analhgicos, el modo de los comparadores es colocado para cuatro entradas multiplexadas (ver figura No.6).

P R O G R A M A V E A P l f C A C f 6 N El bit marcado con el nombre de CIS, del registro CMCON, es limpiado para seleccionar R A O como la entrada (VIN-) del comparador1 y ha RA1 ! como la entrada (VIN-) del comparador2; se habilita el voltaje de referencia, se deshabilita la salida; de la red escalera de resistores se selecciona el valor de 12 por ser el valor mAs bajo de VREF para generar una constante de tiempo lo bastante larga para alcanzar una buena resoluci6n.

Después de cada medicibn de una constante de tiempo se introduce un retardo de 20 mseg para que estabilicen los comparadores, se limpia su bandera, se limpia el TIMERO, y se habilitan los interruptores del comparador (se ponen los bts PElE y el GIE a “1”).

Ahora el sistema está listo, cuando se le aplica la alimentación a la red RC (por medio de RB1 6 RB3 en “l”), el TIMERO empieza su conteo por medio de tres registros enlazados en cascada, aquí se almacena el valor de la constante de tiempo del componente; mientras se checa los estados de las banderas de ERROR y del comparador, hasta que se presenta cualquiera de las dos; en caso de ERROR (dependiendo de cual, ver mensajes de error) se detiene y actúa según el caso; cuando es del comparador se detiene teniendo el valor guardado en los registros.

Acto seguido se deshabilita el modulo comparador, para evitar cualquier mala lectura posterior y para descarga de los capacitores. Una vez obtenido el valor de la constante, se manipula aritméticamente por medio de los acumuladores del PIC para encontrar el valor del componente, es decir, se muttiplica por el valor del componente conocido y se divide por la constante de tiempo conocida (la cual se mide de la misma manera) el valor calculado est4 en pf o en R.

Se maneja números de 24 y 56 bits utilizando solamente los bits mas significativos, quedando un número de 24 bits el cual es el que se transmite hacia la computadora.

MENSAJES DE ERROR. Los mensajes de error solamente aparecen cuando se esta realizando una medición y detecta un error, en otro caso no aparecen. Estos pueden ser por intentar medir un componente cuando se ha seleccionado a otro; cuando se intenta medir y no hay componente en las terminales; por estar fuera del rango medible. Por errores en el puerto, ya sea por no estar bien conectado al puerto de la computadora ó por haber seleccionado un puerto que no corresponde.

Cuando aparece el mensaje de error, se dice en que parte ocumb cuando se trata de hardware; cuando se trata software se debe reinicializar el sistema completo. Para el caso de los componentes, el rango medible en las resistencias es de 1 KC2 a 999 KR para un valor de C2 de 1 pt en el caso de los capacitores va de 1 nF a 99 nF para valores de R3 de 1 MR . El cristal de 4 Mhz le da una resolucibn de 1 psec al contador (TIMERO), con la cual debed alcanzar una cuenta mkima de 900,000 seg. tras del cual se debe reinicializar para el caso en el que se tenga el switch S1 mal seleccionado 6 se este midiendo sin componente en las terminales.

DESARROLLO DEL PROGRAM DE APLICACIóN

La familia de PIC’S cuenta con herramientas de desarrollo basadas en Windows que permiten escribir, editar, simular y compilar ddigo; además de programar ha el microcontrdador por medio de un m6dulo de programacibn. La grabaci6n del chip se logra a través de una tarjeta con socket grabador junto con un software especial conocido como MPLAB (desarrollado por la misma empresa MICROCHIP).

Aparte del MPLAB se tiene diversas herramientas de soporte para software y hardware: PICMASTER CE, Emulador en circuito en tiempo real; ICEPIC, Emulador en circuito de bajo costo; PROMATE II, Programador Universal; PICSTART PLUS, Programador prototipo de niveles de entrada; PICDEM-1, PICDEM-2, PICDEM-3, Tarjeta de Demostraci6n de bajo costo; MPASM, Compilador en Ensamblador; MPLAB-SIM, Software Simulador; MPLAB-C , Compilador en C. QROYECTO @E I?fGEXIERIA 11 17

OBJETIVOS DEL SOFTWARE.

El programa en conjunto deber4 cubrir con las siguientes funciones:

A) Encendido y apagado de todo el sistema. B) Seleccibn del puerto de comunicación. C] SelecGibn del componente a medir. D) Transmisirin de los datos. E) Cálculo de los valores y operaciones aritm4ticas. F ) Reinicio del sistema en caso de realizar otra medicidn.

Estos objetivos son de forma general, para cada uno de los puntos se desarrolla de forma más específica la forma de implementarse y características de programacibn (se muestra algunas rutinas utilizadas).

La programacidn se dividirá en dos partes, una que estar6 destinada a la programaci6n en un lenguaje de Alto nivel (Visual Basic) para la interface con el usuario (pantallas de presentacibn, inicio y termino, así como seteccidn del componente); y la segunda, que va enfocado a las operaciones y Calculos ha realizar, las cuales se harán en el PIC aprovechando al m a m o el microprocesador. Complementados con rutinas que cubren las funciones de transmisibn de información y de interrelaci6n entre la PC y la tarjeta.

AI Encendido Y atmaado de todo el sistema

Para entrar al sistema es necesario grabar todo el software (instalarlo), en el disco duro de la computadora. Y ha partir de ahí seleccionar el ejecutable y activarlo (mediante dos clic por medio del ratbn, debido ha que es un programa compatible con Windows 95 6 98). Una vez activado aparece una pantalla como la que se muestra en la figura No.16. Se observan vanas secciones; una, de mensajes que indican el estado del sistema (encendido 6 apagado); una parte de seleccibn (COM1 6 COM2), que activa el usuario a su gusto 6 necesidad; y por último una salida del programa ( E X I T ) . Siendo compatible con Windows tiene las utilidades de minimizar, maximizar y cerrar; con solo seleccionar algunos de los cuadros localizados en las esquinas superiores.

B) Selección del wetfo de comunicación.

En la misma pantalla aparece dos etiquetas marcando Coml y Com2, con la cual se selecciona el puerto de comunicación a utilizar, si se selecciona uno que este ocupado por otra conexi6n 6 simplemente sea un error de selecci6n, el sistema tardará un tiempo en tratar de establecer comunicaci6n despub del que mandará un mensaje de error.

AREA DE CONTROL (ENTRADA Y SALIDA DEL PROGRAMA)

,"""""""" EzIl P I C M E T E R

P""""""W Exit

A- C.B.I.

AT¡# C.B.I.

Universidad AutOnoma Metropolitana unidad Iztrpalrpa.

0 Power

0 coml 0 corn2

AREA DE MENSAJES

AREA DE SE_LEG:C!ON

FIGURA No.16

Una vez seleccionado el puerto Este se corrige simplemente con revisar la conexirh y reiniciar. adecuado se enciende el PICMETER, a traves del botdn de Power, despues del cual se encender6 un led en la tarjeta significando que el sistema esta encendido y aparecer& un mensaje de que ha sido iniciado correctamente. Como se indica en la figura No.17.

UnP t-ez enzendkb y seleccionado el puerto aparece:

3 1 P I C M E T E R

- Exit

AT* A- C.B.I. C.B.I.

-. universidad Auidnoma Xeiropoiiianr unidad Iztrpalrpa.

0 Fü=zr 0 coml 0 corn2

AREA DE MEMGAJES

AREA DE SELECCI~N

FIGURA No.17

GI Selección del comDonente a medir.

Habiendo encendido el PICMETER se selecciona el tipo de componente a partir de un switch que se localiza en la tarjeta del medidor marcado con SI. Con el switch s2 se inicia la medicibn 6 bien con marcar con el mouse el recuadro de inicio, y a partir de ese momento se cambia el mensaje por uno de "medicibn del componente Resistivo b Capacitivo" según sea la seleccidn registrada (ver figura No.18).

P R O G R A M A V E A P L I C A C I 6 N

Aparece una vez que se ha seieccionadc

el componente

a P I C M E T E R

- Exit A- A-

C.E.I. C.B.I.

dr&34X%4¿8d AU*WlI8 hktMpdit8nt unidad lztapalapa.

I "

,hnrr()V 3 - I - - - - - ~

c

Seleccione el tipo de componente mediante el switch 92, hecho esto

inicie ia medicion. - - - 0 Inicio de medición AREA DE

SELECCI~N

FIGURA No.18

En caso de presentarse un error, aparece en la pantalla un mensaje del que se trate; si no hay t a l se mostrarA el valor medido del componente en sus unidades correspondientes (pF b Kf2, ver figura No. 19).

Aparece una vez que se ha calcuiado

su valor.

=1 P I C M E T E R

Bit A%

c5.l. A%

C.E.I.

I- 98.4 nf

k AREADE

1 MENSAJES

AREADE RESULTADOS

FIGURA No.19

p1 TmnsmlsMn de los datos.

Para la transmisibn de los datos tanto de la PC hacia la tarjeta y viceversa se han implementado varias rutinas en lenguaje ensamblador orientadas directamente hacia el PIC, la transmisibn se hará por el

puerto serial durante esta se deshabilitan todas las interrupciones para no perjudicar la velocidad de transmisibn, es decir, se pierda algún dato o se interrumpa.

Una vez iniciada la medicibn, el medio de comunicación ser6 mediante paquetes de cuatro bytes con un byte de comando y tres de datos. Los bytes de comandos pueden ser :

P R O G R A M A V f A P L I C A C I d N 0 ASCII " S significa que la medición ha sido iniciada. 0 ASCII "E" indica a la PC que hay un error. 0 ASCII "R" le dice a la PC que los siguientes tres bytes de datos corresponden al valor de una

0 ASCII "C" indica que el valor es de una capadtancia.

Cuando se tiene un comando "R" ó "C", el primer byte de datos contiene el Bit m& significativo del valor obtenido y el último byte contiene el Bit menos significativo del valor; y solamente se mandan cuando no se ha detectado ningún error. Estos tres bytes de datos pueden contener información ó basura cuando se trata de un comando "S" b "E"; siempre se utiliza un comando "S" cada vez que se inicia una nueva medición (por medio del switch s2).

resistencia,

R Ccirculo de los valores Y oDeraciones arltméficas.

Como se ha visto a partir de las relaciones presentadas para el calculo de las constantes de tiempo y del uso de algunos valores conocidos para el calculo del valor ha encontrar, es necesario establecer algunas rutinas matematicas para lo que son sumas, restas, multiplicaciones, divisiones y la utilización de complementos a 2's; estas rutinas son implementadas en la memoria del PIC para su utiiización se apoya en el uso de cuatro registros llamados acumuladores de 24 bEts localizados en la RAM de propósito general. En la siguiente tabla se muestran las relaciones de estas operaciones con respedo de los acumuladores, as; como cuales son almacenados de forma temporal para su posterior uso.

Fl Reinicio del sistema en caso de realizar ofra medición.

En este caso cuando se ha hecho una medición y se desea hacer otra se tiene un botón de reset en la tarjeta, para borrar cualquier informaci6n que se tenga y no quede como basura (en los registros}; tarda algunos segundos para reiniciar y después queda listo; cada vez que se haga una mediabn diferente hay que oprimir este botón.

Se presentan en esta sección varias de las rutinas empleadas, en d i g o ensamblador y el M i g o utilizado para el programa en Visual Basic. Se da una breve explicación de los que hacen y del tipo de instrucciones que se esta manejando.

En la siguiente pdgina se presenta la codificacidn del programa realizado en lenguaje de alto nivel (Visual Basic), se presenta en este lenguaje por utilizar lo que se llama lenguaje orientado a objetos, es decir, se pueden crear programas basados en &digo 6 rutinas reutilizables; que solo se tienen que adaptar algunos parhmetros. La sgnciíla m a de cmar ventems de M&ese con el tlsuario .permite cre%r pmfatlers de aspecto famaí y de Mdl manejo muy similar a lo acostumbrado en Windows 95 6 98 (minimizar, maximizar, cerrar y salir).

P R O G R A M A V E A P L I C A C I d N Se desarrollan procedimientos de inicio de puertos (localizacibn física de los mismos, si no se tiene no se habilita como seleccibn), ventana de inicio, rutina de reinicio (cancelar), rutina de salida del programa, de deteccibn de tipo de comando (enviado y leído del puerto; "S", "E", "W, "C" ), para algunas de las rutinas se tienen el envío de mensajes a pantalla del usuario para describir que es lo aue se esta haciendo en ese momento. PROGRAMA VISUAL BASiC PICMTR.FRM I* En esta parte del programa se define las características de la pantalla y da de alta a los puertos corn1 y com2. *I Sub Form-Load ()

'Inicializando el programa Image1 .Height - 600 Image1 .Width = 2700 Framel .Caption = "PICMETER Off" Labell .Caption = Label2.Caption =

'lniciando puerto Coml Comml .RThreshofd = 1 Comml .Handshaking = O Comml .Settings = "9600,n,8,1" Commi .CommPort = 2 Cornmi .Pompen = True

"z& vzr!z!3!e $&?S! fk% Firstom = O

End Sub

/* Rutina para cuando w cancele alguna o p e r a c h . ' I Sub Form-Unload (Cancelar)

Comml .RTSEnable = Fatse Cornmi .DTREnable 5 False

Unload PICMETER

'" e e! PWMETE!?

COjm1 .Pomp@fi = Fa&

End Sub

P Definldbn de variables, y definicibn de eventos de acuerdo a los comandos (letras).*/

Sub Comml-On Comm () Dim Value As Double Dim High As Double Dim Medium As Double Dim Low As Double

'Recibiendo un caracter if comm. ".mmEVent = Twn If First% - O Then

If Comml .InBufferCount = 16 Then Labell .FontSize - 10 lnString$ = Comml .Input If InStringS = "Inicializando el MEDIDOR I" Then

End If

Comml .InputLen = 4

Framel .Caption = "PICMETER INICIALIZADO!"

FKSt% 1

End If

If Comml .InBu?TerCount S- 4 Then InStríngS = Commi .Input If Left$(lnS¡~ingS, 1) = "R" Then

Else

Framel .Caption = "Resistencia" LabeKLFontName = "Symbol" LabeIZCaption = "W Labell .FontSize = 24

Elself Lefi$(lnString$, I ) = "C" Then Framel .Caption = "Capacitancia" LabeP.FontName = "MS Sans Serif" Labd2.Caption 5 "nF" Labell .FontSize = 24

Elself Left$(lnStrk&, 1) - "E Then Frame1 .Captian f " E m DMeaaaó" LabeECaption M

Framel .Caption = " Componente Medido" Label2.Caption = m

Elself Left$(lnString$, i) = "S" Then

SROlUECTO aDE IWGEWIERIJ 11

E& Framel .Caption = "Error Detectado" Label2.Caption = ""

End ii If Frameí .Caption = "Error Detectado" Then

Elself Framel Caption - "Componente Medido" Then

Elsa

Labell Caption = "

Labell .Caption = ""

High = 65536# Asc(Mid$(lnString$, 2,l)) Medium = 256# * Asc(MidS(lnString$, 3, 1)) Low = ~Mid$(lnSbkrgs, 4,l))

Labell .Caption= Format$((High + Medium + Low) / 1000, ' W B 0 . 0 ' ) End If

End If End If

End If End Sub P Final del procedimiento ' 1

P Procedimiento de verificadbn de encendido del medidor 7 Sub Check3Dl-Click (Valor Entero) 'Control de encendido del PICMETER If Check3D1 .Value = Fake Then

Commi hpuiien = ü Labell Caption = "" LabeLLCaption = "" Commi .RTSEnable = False Comml .DTREnable = False Frameí .Caption = "PICMETER APAGADO" Instring$ = Comml .Input

Else F ? m ! . c m * First%, = O Comml .InputLen = O II ISU II lgq = cümm1 .Wp-rrt Comml .RTSEnable = True Comml .DTREnable = True

1" -3

End If End Sub

P Procedimiento de salida del programa ' I Sub menExitTop-Click () 'Descargando el PICMETER

Unload PICMETER End Sub P Se activa de acuerdo a la selecdbn del puefto COMl 'I Sub Optionl-Click () 'Abre COMl para comunicaci6n If Option1 .Value = True Then

If Comml .CommPort - 2 Then Comml .Pompen = False Comml .CommPort = 1 Commi .Portopen = True

End If End If

End Sub

Sub Option2-Click () 'Abre COM2 para comunicaci6n If 0ptionZ.Value = True Then

If C o r n 1 .cOmmfbrt - 1 Then Comml .PortOpen = False Comml .CommPort - 2 Comml .Partopen = True

End If End If

End Sub PICMETERBAS aoball% Global First%

22

Como se puede observar no es mucho &digo para definir todas las operaciones ha realizar por el programa, la interacción con el usuario no es complicada; lo que si hay que tener cuidado es en tener por lo menos un puerto COM activado, por que de otra manera no funciona el programa, ya que es la única vía de comunicación que tiene con la tarjeta del PIC.

Ahora se describen algunas rutinas en lenguaje ensamblador, no se pone todo el código por que a diferencia del presentado anteriormente, est6 contiene muchas líneas de c6digo por ser m8s limitado.

PROGRAMA EN ENSAMBLADOR ( PICMTR.ASM 1. P Se empieza con un título, la definicibn del tipo del PIC que se esti3 usando y un tipo de formato, se induye un archivo de Hbrerlas de la mlsma familia, y de a s 1 requerirse se configuran algunos padme- tros iniciales, como si fueran switch (ON/OFF) ' I T!T!!E TEMETEP. par3 P!G?K-" LIST P = 16C622, F = INHX8M INCLUDE "C:WIPLAB\Pi6CXX.INC"

xtal equ .4WOOOO baud equ .9600 fclk equ xtaW ;baudconst equ ((fclWbaud)/3-2) ; Bit Equates (banderas) BEGIN equ O ;Inicializa&n de bandera de medicibn. DONE equ 7 ;bandera de baja. WHEH equ 5 ;bandera para W d C. F-ERROR equ 3 ;Deteccibn de error. EMPTY equ 5 ;Conex¡¿in del componente. Vü equ ü ;voiiaje para R. V i equ 1 V2 equ 2

;voltaje para C. ;tierra para C.

V3 equ 3 V4 equ 4

;voltaje para R desconocida. ;tierra para C desconocida.

m&" equ 7 ;deflnici6n para bit 7 (mas significativo). Isb-bit equ O ;definicibn para bit O (el menos significativo). P Para los valores de resistencia y capacitanda medidos, se divi- den en tres secciones para una adecuada r m n , en parte Alta, Media y Baja; las cueles unidas signilican el número completo. */ RkHl equ OG3iyaíor & ía reslgtereía R4 eormídb 0 B€s&mtdda RkMlD equ Ox9D;segÚn sea el caso, valor en ohms. RkLO equ 0x38 CkHl equ 0x07 ;valor del capacitor C i (conocida 6 desconocido según CkMlD equ Ox47 ;sea el caso en el que se este), valor en pF. CkLO equ 0x48

- Püs€s-%r;ü€~~-~PP&-~~-~PP&-~~úü~-~~ú-~A~ü~-~~~á - XT-OSC .*- Iniciando etiquetas -*

;+--- INICIO DEL PROGRAMA PRINCIPAL ----* org Ox0 I" determina en que localidad se inicia ' I goto init P Se va a una rutina de inicio *I wg m4 P se 1yiii@V€! hada &sa facatidad, ya qüe

las primeras estAn reservadas *I goto Servicelnterrupts P Se tiene un bloque de

Interrupciones se habilitan 6 deshabilitan dependiendo del cam en el que se llamen +I

M org Ox10

bCf sTATL?s;R?O ;S@!€UXiW?WdQ 0 ckf PORTA ;limpiando PORTA y PORTB clrf PORTB

clrf flags ;limpiando el registro de banderas. bsf tx ;dardealtaaelpindesrrtidaTXD.

P limpia la bandera de intermpdones y deshabit@&; se apagan comparadores en modo 11 1. Espere (retardo) para la activad6n de los comparadores. selecci6n del bank l(datos); descarga el cto. RC, k lenf f i todas las salidas en el PORTA. ' I

movtw Ox60 ;configuracibn PORTA<7,4:0> salidas, PORTA<G:J> entradas.

movwf TRISB S4t,OrYEClO (DE z x ~ E x r ! & 4 t , r a z z

movlw W C ;da de alta voltaje de referencia. movwf VRCON bcf STATUS,RPO sel lecú&^ del bank O. m& Oxo8 m o w INTCON

;habilita interrupci6n RBIE.

bffss flags,BEGIN ;espera para iniciar la medicibn. goto start .C" UGI %F,$EGM mpki ~XKIZ~ e ~ ~ ~ ~ b n .

bcf INTCON,GIE ;inicib de la transmisi6n del mensaje

moviw :S' ;a ía PC. call Send bsf INTCON,GIE clrf TimeHl ;reset registros del Tiempo. ckf TimeMlD drf TimeLO btfss PORTB,WHICH ;detecta si es resistor 6 capacitor. goto Capacitor !?m .*-- FunddndemeclidbncuendoesR -*

bsf STATUS,RPO ;coloca VO a la entrada. bsf TRISB,VO bcf STATUS,RPO call AnalogOn clrf TMRO

;lama al AnalogOn.

noP bsf PORTB,V3 ;alimenta a la red desconocida RC.

RwaitU btfsc [email protected],ERROR :detecta si ha ocurrido un error. goto ErrorDetect b t h flags,DONE ;complementa la bandera de medid6n. *tQ w bcf fiags,DONE ;limpia la bandera de medicibn. call AnalogOff cafl SwapTtoA

;Hama al Analogoff.

movtw RkHi ;cambiar ei Tiimpa al aunnutadw a.

;cambiar el valor de la resistencia

m o w ACCbHl movlw RkMlD

;al acumulador b.

movwf ACCbMlD movlw RkLO movwf ACCbLO call Mpy24 ;multiplica los valoras del acumulador a y b. bsf STATUS,RPO ;coloca V3 a la entrada b s f TRlSB,V3 bd STATUS,RPO call AnalogOn CM TMRO

;llama al AnalogOn.

nrip bsf PORTB,VO ;alimenta a la red conocida RC.

RwaitK btfsc ílags,F-ERROR ;detecta si ha ocurrido un error. goto Errorbetect b t f s flags,DONE ;complementa la bandera de

goto R w a i bcf flags,DONE ;limpia la bandera de medidh. CSJl AMJodlm : n c u F g s ! e ! ~ , call SwapTtoA ;cambia el tiempo del acumulador a. caH M 4 ;divide multiplicando por el tiempo conocido. M NTCW,aE msbilita & d 8 s I s s m t . movtw 'R ;transmite, la medici6n de R. can send

;*- kdcio de medid611 -*

de medici6n,

conocido

medicidn.

23

bsf INTCON,GIE ;habilita el bit de interrupci6n global. goto start ;reinicia.

riapa& ;*- Funcibnde medlCi6n cwndoesc -* bsf STATUS,RPO ;coloca V2 a la entrada. bsf TRISB,W bcf STATUS,RPO call Analogon drf TMRO

;llama a el AnabgOn.

noP bsf PORTB,Vl ;alimenta a la red desconocida RC.

Cwaitu bffsc flags,F-ERROR ;detecta si ha ocurrido un error. goto ErrorDetect btfss flags,DONE ;complementa la flag de medidh. got0 cwnitu bcf flags,DONE call AnalogOff

;limpia la flag de medici6n. ;apagado del ana16gico.

wH SwapTtoA ;camba el tiempo dd aatmrrlsdor a. m o w CkHl ;cambia el valor de la resistencia conocida m o d ACCbHl ;al acumulador b. moviw CkMlD movwf ACCbMlD m o w CkLO movwf ACCbLO call Mpy24 ;multiplica a y b. bsf STATUS.RP0 :coloca V3 a la entrada. bsf TRISB,V4 bcf STATUS,RPO mu Analogon CM TMRO

; u a m a Anahgon. noP Dsf Pop.?@,Y! ;e!k?e"Dkreif?GcteRlx&.

Cwam btfsc flags,F-ERROR ;detecta si ha ocurrido un error. goto ErrorDetect b m ¡iagk,rnE ;cmp&mam bandam be

goto cwam bcf Aags,bbNE ;limpia la bandera de med'ici6n. call AnalogOff ;llama AnalogOff. call SwapTtoA ;cambia el tiempo a el acumulador

call Div24 ;divide multiplicando por el tiempo

bcf INTCON,GIE ;deshabilita todas las

modw 'C' ;bansmite, ía medfcibn de C. call Send bsf INTCON,GIE ;habilita el bit de interrupd6n global.

medid6n.

a.

conocido,

interrupciones.

got6 -I? ;ti?tnieíb. ErrorDetect ;*- Funci6n Detecci6n de Error -*

bcf STATUS,RPO ;deshabiltta TMRO. bcf INTCON,TOIE bcf INTCON,TOIF c a n AnalogOff :enciende analog off. bcf flags,F-ERROR ;limpia bandera de error. b d INTCON,GIE ;deshabilita todas las interrupciones. WYIH, 'E' call Send

;&fWY??&&,&k!??di&h&G.

bsf INTCON,GIE ;habilita el bit de interrupcbn global. ajb *it pdri&.

;*- Rutina de Transmisi6n RS232 Transmit

bcf STATUS,RPO movwf &reg bcf k ;coloca bit de inid6. movlw baudconst movwf delay movhv M mowd count

decfsz dstay goto txbaudwaiit m o w baudconst m o w delay de& count goto SendNextBit movlw 0x9

txbaudwaii /" espera para poder mandar otro byte*/

Q R O Y E C T O @ E INGENIEQeZJ I I

P R O G R A M A D € A P L f C A C f d N movwf count

rsttrrr!

rrf txreg b t h STATUS,C goto Setlo bsf k

bsf k ; c o l o c a bit de par6.

SendNextBit

goto txbawi Setlo bcf k

;*- Suma de 24-bit ;*- Usando ACCa y ACCb, ACCe + ACCb -> ACCb -* f?M4

goto txbaudwait

movf ACCaL0,W addwf ACCbLO ;suma de bytes bajos. btfsc STATUS,C ;suma de carry en caso necesario. goto A2

addwf ACCbMlD ;suma bytes medios. b W STATUS$ ;suma de carry si es necesario. incf ACCbHl movf ACCaHI,W addwf ACCbHl ;suma bytes altos. rethv O

A2 incf ACCbMlD b W STATUSJ incf ACCbHl goto A l

A l movf ACCaMID,W

;*- Resta ( 24 - 24 -> 24 ) * ;*- Usando ACCa, ACCb, ACCd; ACCa -> ACCd, -* ;*- Complemento a 2's en ACCa, ;*- llamada Add24 ( ACCa + ACCb -> ACCb ), c

kub24 .*- ACCd -> ACCa

movf ACCaHi,W ;Tmtieie ACCa a ACCd. movwf ACCdHl movf ACCaMID,W m o d ACMMlb movf ACCaL0,W movwf ACCdLO call compA ;complemento a 2's de ACCa. c a n Add24 ;suma ACCa a ACCb. movf ACCdHl,W ;Transfiere ACCd a ACCa movwf ACCaHl movf ACCdMID,W mow& A G G M movf ACCdL0,W movwf ACCaLO rew f

;*- MuttipliCa ( 24 X 24 -> 58 ) * ;*- Usando ACCa, ACCb, ACCc, ACCd -* .*- ACCa ACCb -> ACCb,ACCc salida de %bit con ACCb (ACCbHI,ACCbMID,ACCbLO) con 24 msb's y -* .*- ACCc (ACCcHI,ACCcMID,ACCcLO) con 24 Isb's -*

mloop rrf ACCdHl ;rotaci6n a la derecha.

bPy24 call Msetup

rrf ACCdMlD nf ACCdLO btfsc STATUS$ ; S i es necesario se suma. ca# Add24 rrf ACCbHl rrf ACCbMlD wl ACCbLO rrf ACCcHl rrf ACCcMlD

rrf ACCcLO decfsz temp ;loop hasta que todos los bits sean revisados. goto mloop

reUw O

movtw 0x18 ;para despltlzamientos de 24 bit. movwf temp movf ACCbHI,W ;mover ACCb a ACCd m o W ACCd#I movf ACCbMID,W movwf ACCdMlD movf AccblQW m o d ACCdLO drf ACCbHl drf ACCbMlD ckf ACCbLO retfw O

b t u P

;'- Divisidn ( 56 / 24 -> 24 ) ;*- Usando ACCa, ACCb, ACCc, ACCd

P R O G R A M A V f A P L f C A C I d N goto cont

M A W L 0

goto minus call Add24 ;S1 = U, entonces m a a (fMsor fos 24 Mts goto check ;del dividendo

dear btfsc ACCaHl,msb-bit

cont b t l h ACCcL0,lsb-bit ;checa el lab del dividendo.

minus cal Sub24 ; S i = 1, entonces resta del divisor !os

check decfsz temp,f ;Haciendolo 24 veces ;24 b'ns d C 1 didendo.

got0 dloop bcf STATUS$ df ACCcLO ;desplaza los 24 bits bajos d e l dividendo 1 bit rlf ACCcMlD lakaizqulerda. rlf ACCcHl btfsc ACCbH1,msb-bit ;

4

;"- *bit divididos en ACCb,ACCc ( ACCb tiene msb's y K?

CCc tiene Isb's) - 7 24-bit divisor en ACCa ; b t f s ACCaHl,msb-bR ;almacena en el Isb de el dividendo. almacenados en ACCc el residuo almacenado en ACCb -*

-

incf ACCcLO got6 \ivlid

incf ACCcLO

goto wend btfsc ACCaHl,msb-bit :el msb del dvkror no lo es. goto wend call Add24 ;suma a el divisor el residuo conecto.

Div24 call Dsetup

dfoop bcf STATUS,C rlf ACCcLO ;Rotacibn de 1 bit a la izquierda. rtf ACCcMlD Ilf ACCcHl df ACCbLO rlf ACCbMlD tif ACCbHl btfsc STATUS$ ;invertir el cany inclusive o con el oto dear :msb del d i i r se mueve 1 bit

wl btfsc ACCaHl,msb-bit

wzd Mfss ACCbHl,msb-bit ;si el msb del reaiduo es colocado

wend rethv o ; a n 24 ws dd d " J 0 .

Dsetup ;residuo en 24 m a s del dividendo.

m& 0x18 jaw 24 veces.

Mfes ACCaH1,msb-bit :dentro de el Isb del dividendo. incf ACCcLO

mowvf temp retlW0

Se presenta algunas rutinas importantes utilizadas en el programa, presentar todo el &digo sería demasiado largo y tedioso.

El archivo se puede codificar en cualquier editor de texto, sin un formato especial; simplemente se tiene que cumplir se tenga una sangría para las líneas de comando, debido a que este espacio es utilizado por etiquetas que definen puntos de llamada a procedimientos, rutinas 6 de referenda; tambibn se puede llevar un número de línea consecutivo para no perderse y llevar un control, ademhs de que sirve para detectar rbpidamente los errores seiialados por el compilador. El archivo se graba con extensibn ASM (ensamblador)

Una vez que se tiene el archivo se pasa ha compilar, por medio de un software del que se dispone; se configura este compilador de manera que sea el mismo PIC que se est& usando, el tipo de reloj, y las librerías externas. Por medio de este compilador se comprueba que no haya errores y una vez que se tenga compilado se genera un archivo con extensibn HEX, el cual va a ser finalmente el que se va ha grabar en la memoria del PIC.

El utilizar un compilador permite poder simular diferentes situaciones que se pueden presentar y observar la respuesta del PIC a cada uno ellos y así poder analizar su comportamiento, para ver si es el adecuado b si se presentan condiciones diferentes d un mal funcionamiento (errores). Estas son las pruebas a nivel de tarjeta que hay que verificar antes de conectarlo a todo el sistema, otra parte de la que tambi6n se puede verifícar por aparte es la transmisibn por el puerto el envío y recepcibn de los paquetes de byte que se esperan sean transmitidos.

21

El compilador que se utiliza para el programa en Visual Basic tambih tiene la facultad de ir paso a paso en el desarrollo del trabajo e ir verificando su funcionamiento por separado luego hacer las pruebas necesarias cuando se complemente todo el sistema, tanto tarjeta, bus de comunicacibn y el software en la mAquina.

Una vez hecho el balance de cada una de las partes se efectúan pruebas de todo el sistema en conjunto, en diferentes computadoras para mantener un rendimiento dptimo, es decir, dependiendo de la capacidad de la maquina en la que se trabaje determinar que tan rhpido 6 lento sea el proceso; para poder definir características mínimas de requerimiento para poder instalar el software.

28

C O X C L U S I O W E S

CONCLUSIONES

Este proyecto muestra la facilidad con que se implementa una interfase de comunicación entre una PC y una aplicacidn determinada.

El uso de un microcontrolador facilito las complicadas tareas de diseiio de etapas de comunicación a trav6s de un puerto de comunicación de una PC, adquisición de datos y conversión A / D ; en nuestra aplicaci6n todo se redujo a un sencillo sistema hardware y a dos programas de software. Estos programas se complementaron en función para dar como resultado final el calculo y desplegado de un valor, se logra conjuntar la eficacia de un lenguaje de bajo nivel, por medio del cual el microprocesador calcula el valor de un componente desconocido y la elegancia de un lenguaje de atto nivel para la mayor comodidad y manejo del usuario.

La elección del número de microcontrolador fue esencial para cumplir con los objetivos trazados al inicio de este trabajo, ya que este dispositivo cuenta con las características mecánicas y de arquitectura necesarias para obtener un sistema bajo en costo y consumo de energía.

Este bajo consumo de energía permite que el sistema aproveche las líneas de alimentacidn provenientes del puerto serial de la computadora evitando con ello el uso de una fuente externa, ademhs la interacción entre los dos programas permite la detección de errores tanto en el sistema y apreciación del dispositivo a medir como en las rutinas de comunicaci6n en transmisión y recepcidn .

Durante las pruebas del PICMETER se encontraron factores que hacen suponer que el rango de valores medidos puede ser ampliado, y aunque en la realidad no se llevo a cabo la implementaci6n, esto se a comprobado realizando una simulación del sistema en computadora

Es de mencionarse el hecho de presentar la pantalla de presentacidn en la computadora de forma grafica, ya que esta permite el contacto con el usuario en forma mas agradable y &moda ademas de poder observar mensajes en caso de posibles errores .

En resumen el PICMETER reúne características avanzadas en cuanto a su arquitectura basada en el microcontrolador y a la vez simples en lo referente a su diseiio e implementación ademas de las ventajas y comodidad en su manejo y desempeiio ya que ofrece un alto margen de exactitud lo cual da confianza para su uso como instrumento de medición en el laboratorio de electrónica .

Por ultimo mencionamos los contratiempos en la realización de este proyecto los cuales fueron pocos, siendo el mayor, la disponibilidad del kit de microchip para poder grabar el microcontrolador; ya que durante el periodo de pruebas se tuvo la necesidad de regrabar el dispositivo, esto debido a la modificacidn en algunas rutinas del software, todo con el fin de obtener el mayor desempefio de este proyecto.

27

C O X C L V S I O N E S

Manual de Referencia del PIC 16C62X(A). Microcontroladores CMOS de 8-bit con EPROM. Publicación hecha por MICROCHIP TECHNOLOGY INC. aiio de 1995.

Electrónica: Teoría de Circuitos. Robert L. Boylestad / Louis Nashelsky. Sexta edición. aiFo de 1997. Ed. Prentice Hall,

Circuitos Electrónicos Discretos e Integrados. Donald L. Schilling / Charles Belove Ed. Marcombo, año de 1991.

28