17
Módulo de Comparación Analógica ACMP El módulo de comparación analógico (ACMP) permite comparar dos tensiones de entradas analógicas o comparar una tensión de entrada analógica con una tensión de referencia interna. La señal analógica nunca puede superar los voltajes de polarización. Si se desea utilizar la referencia interna esta debe ser habilitada en el registro SPMSC1 en el bit BGBE Figura 1 diagrama de los pines que hacen parte del módulo ACMP y los valores para el V BG EL ACMP tiene las siguientes características: • Generación de Interrupción bien sea en el flanco ascendente, descendente, o en ambos. • Opción de comparar con el Bandgap voltaje reference • Permitir mediante un pin conocer el resultado de la comparación, ACMPO. • Puede operar en modo Stop3

Clase10 Adc y Acmp

Embed Size (px)

DESCRIPTION

uco

Citation preview

Mdulo de Comparacin Analgica ACMP

El mdulo de comparacin analgico (ACMP) permite comparar dos tensiones de entradas analgicas o comparar una tensin de entrada analgica con una tensin de referencia interna. La seal analgica nunca puede superar los voltajes de polarizacin. Si se desea utilizar la referencia interna esta debe ser habilitada en el registro SPMSC1 en el bit BGBE

Figura 1 diagrama de los pines que hacen parte del mdulo ACMP y los valores para el EL ACMP tiene las siguientes caractersticas: Generacin de Interrupcin bien sea en el flanco ascendente, descendente, o en ambos. Opcin de comparar con el Bandgap voltaje reference Permitir mediante un pin conocer el resultado de la comparacin, ACMPO. Puede operar en modo Stop3

Figura 2. Diagrama de bloques del mdulo ACMP Como se puede observar en el diagrama de la figura 2, el corazn del mdulo es un comparador que puede operar con una entrada fija ACMP- y dos variables dependiendo de las necesidades del diseador, las cuales son ACMP+ como seal externa de comparacin o la referencia interna, la cual ser seleccionada mediante la lnea de control ACBGS, siempre y cuando el ACME este activo el comparador funcionar y podr generar interrupciones o activar el pin ACMPO si se presenta la condicin configurada mediante el registro de Status & control . A continuacin se describir cada uno de los bits que componen el registro de configuracin y su funcin ACMP Status and Control Register (ACMPSC)Este registro permite conocer el estado del mdulo y configurarlo los bits que lo componen son los siguientes:

Figura 3. ACMP status and control register.ACME : Analog Comparator Module Enable habilita el funcionamiento del mdulo.0 ACMP deshabilitado1 ACMP habilitadoAnalog Comparator Bandgap Select ACBGS es usado para seleccionar entre el bandgap reference voltage o el ACMP+ como entrada no inversora para el comparador.0: El ACMP+ pin es seleccionado como la entrada no inversora del comparador.1: La interna referencia es seleccionada como entrada no inversora del comparador.

Analog Comparator Flag ACF este bit se pone en 1 cuando ocurre un evento de comparacin, el evento de comparacin den definido por el ACMOD, este bit puede ser limpiado con la escritura de un uno en el propio bit (ACMPSC_ACF=1;)0: evento de comparacin no ha ocurrido.1: Evento de comparacin ha ocurrido. ACO Analog Comparator Output hacienda una lectura de ACO se puede obtener el actual valor de comparador analgico este bit se mantiene en cero si el modulo esta deshabilitado.

ACOPE Analog Comparator Output Pin Enable ACOPE es usado para habilitar la salida externa y utilizar el pin externo para activar una carga o indicarle el evento a otro sistema digital.

0: Salida del comparador Analgico no disponible en el pin ACMPO.1: El comparador Analgico manipula el valor del pin ACMPO de acuerdo al resultado de la comparacin.

ACMOD Analog Comparator Mode ACMOD permite seleccionar el tipo de evento que evaluar el comparador, si esto se presenta el mdulo colocar en valor alto la bandera ACF.00 Codificacin 0 Comparador detectar flanco de bajada.01 Codificacin 1 Comparador detectar flanco de subida.10 Codificacin 2 Comparador detectar flanco de bajada.11 Codificacin 3 Comparador detectar flanco de bajada o de subida.

Modo de funcionamiento

El comparador analgico se puede utilizar para comparar dos tensiones de entrada analgica aplicada a ACMP + y ACMP-; o puede ser utilizado para comparar una tensin de entrada analgica aplicada a ACMP-con una tensin de referencia interna. El bit ACBGS de ACMPSC se utiliza para seleccionar entre la tensin de referencia interna o la entrada + ACMP como la entrada no inversora del comparador analgico. La salida del comparador es alta cuando la entrada no inversora es mayor que la entrada inversora, y es baja cuando la entrada no inversora es menor que la entrada inversora. El bit ACMOD se utiliza para seleccionar la condicin que har que ACF se active. ACF puede detectar flanco de subida, bajada o ambos. La salida del comparador se puede leer directamente a travs de ACO. Pero tambin esta seal puede ser llevada a un pin de salida llamado ACMPO usando el bit ACOPE.

Analog-to-Digital Converter (S08ADC12V1)Caractersticas del Mdulo ADC Utiliza el algoritmo de aproximaciones sucesivas para la conversin con 12 bits de resolucin Hasta 28 canales de conversin Resolucin seleccionable de 12,10 o 8 bits justificado a la derecha Conversin continua o simple Bandera de conversin completa y posibilidad de interrupcin 4 fuentes de reloj seleccionable Operacin en modo de bajo consumo wait y stop3 Trigger por software o hardware Comparacin automtica y generacin de interrupcin programable cuando se cumpla condiciones de menor que, mayor que o igual. Sensor de temperaturaEl mdulo de conversin anlogo a digital usa un SAR el cual funciona de la siguiente maneraEl ADC de aproximaciones sucesivasCasi todos los mdulos ADC de los microcontroladores son de aproximaciones sucesivas. Funcionan con cuatro elementos bsicos: uncomparador analgico, unalgica de control (SAR: successive approximation register), un conversor digital analgicoDACy elrelojque gua los pasos de la conversin. Los DAC son mucho ms simples que los ADC y entregan resultados casi de inmediato.Cadanmero binariogenerado va siendo convertido en una tensin analgicaVout,que luego se compara con la tensin de entrada que se quiere medirVin. Si son iguales (o los ms cercanos posible), en ese momento el sistema ya ha encontrado el nmero binario que corresponde aVin. As de simple.

Figura 4. Diagrama de bsico de un conversor ADC de aproximaciones sucesivas.Ahora bien, siendo el conversor mostrado en la figura 4 de N=10 bits, ste permite generar hasta 1024 nmeros binarios distintos, se tendrn que hacer 1024 comparaciones? La respuesta es No, slo 10. El algoritmo a seguir es similar al que responde a la clsica pregunta: Si entre 100 esferas hay slo una que pesa un poco ms que las otras, cuntas veces habr que llevarlas a una balanza para encontrarla? (Rpta: 6)Para entender mejor cmo funciona este ADC se imitar su operacin. Suponga que el ADC trabaja con tensiones de referencia de 0 V a 5 V, y que se quiere medir una sealVinde 4.00000 Volts. Para realizar la conversin el ADC que es de 10 bits, dar los 10 pasos mostrados en la siguiente tabla:Paso #Binario Generado D9 ... D0Vout (DAC) (Voltios)Vin (ADC) (Voltios)Vout > Vin ?

110 0000 00002.502444.00000S, queda D9

211 0000 00003.753664.00000S, queda D8

311 1000 00004.379274.00000No, limpiar D7

411 0100 00004.066474.00000No, limpiar D6

511 0010 00003.910004.00000S, queda D5

611 0011 00003.988264.00000S, queda D4

711 0011 10004.027374.00000No, limpiar D3

811 0011 01004.007824.00000No, limpiar D2

911 0011 00103.998044.00000S, queda D1

1011 0011 00114.002934.00000No, limpiar D0

Valor final11 0011 00103.99804------

Tabla 1. Tabla que indica los pasos de conversin y los valores que digitales que va tomando a medida que se aproxima al valor de conversin.El primer nmero binario generado tiene el bitD9en alto. Este nmero se convierte en el valor analgicoVout, que despus se compara conVin. Como la comparacin (Vout < Vin) es positiva este bit permance en nivel alto. Despus se prueba activando el siguiente bit,D8, y como ahora la evaluacin (Vout < Vin) sigue siendo afirmativa tambin se deja este bit en 1. En seguida se habilita el bit D7; ahora la evaluacin (Vout < Vin) es negativa y se debe limpiarD7. Y se sigue con el resto de manera similar hasta alcanzar el bitD0.Como se puede observar, al final nos quedamos con el valor11 0011 0010, que significa una tensin de 3.99804 V y que comparado con 4.00000 V da un error de 0.00196 V = 1.96 mV de 0.049%. Nada mal. Es fcil ver que a mayor resolucin en bits se tendr menor error pero se requerir ms tiempo

Pines de ADCA continuacin se muestra los canales de conversin disponibles en donde como se puede observar posee 12 canales de conversin conectados a pines externos, algunos voltajes de referencia, un sensor de temperatura onchip y el internal Bandgap.

Diagrama de Bloques del ADC

Fuentes de reloj para el ADCEl sistema permite diferentes fuentes de reloj para el ADC estas son, el reloj del BUS, reloj de BUS dividido 2, un reloj asncrono (ADACK) o un reloj alternativo denominado ALTCLK, que para el caso del JM60 es el MCGERCLK, se debe tener en cuenta que la fuente de reloj luego de ser dividida, es decir el ADCK, debe de encontrarse en los rangos descritos a continuacin. .Nota: el ALTCLK no puede ser usado como fuente de reloj en modo STOP3

Hardware TriggerUsted puede seleccionar al RTC como disparador de conversin del mdulo ADC, si usted hace esto el ADC iniciar una nueva conversin cada vez que el contador del RTCNT alcance al RTCMOD, para ello no requiere que se tenga habilitadas las interrupciones del RTC, y operar en los modos RUN, WAIT y STOP3.Para que opere en el modo STOP3 requiere que los bits LVDSE y LVDE en SPMSC1 sean configurados en nivel ALTO.Sensor de temperaturaInternamente el microcontrolador cuenta con un sensor de temperatura conectado a uno de los canales del ADC cuya ecuacin para determinar la temperatura es Temp=25-((VTEMP-VTEMP25)/m)VTEMP: Es el voltaje medido en el canal de ADC AD26 y determina el valor actual que est entregando el sensorVTEMP25: Es el voltaje que tendra el sensor a temperatura de 25C, ver tablam: es la pendiente de la funcin de transferencia entre voltaje y temperatura la cual difiere de acuerdo al rango de temperaturas en que opere el sensor, ver tabla, note que los valores son diferentes para los rangos -40 a 25 C y entre 25 y 125C, el usuario deber calcular si el resultado es se encuentra en uno u otro rango y hacer el ajuste cuando sea necesario.Para realizar el cdigo que mida la temperatura, el usuario debe leer el canal del sensor de temperatura, y calcular Vtemp, luego se compara con VTEMP25. Si Vtemp es mayor que VTEMP25, el valor de la pendiente en fro se aplica en la Ecuacin. Si Vtemp es menor que VTEMP25 el valor de la pendiente en caliente se aplica en la ecuacin.

Voltajes de referencia El mdulo ADC cuenta con 4 voltajes de referencia que pueden estar internamente conectados algunos de ellos en ciertos microcontroladores donde no estn disponibles en el empaquetado. A continuacin se indica cual debe ser su conexin Analog Power VDDAD: Si est disponible conecte a VDDAnalog Ground VSSAD: Si est disponible conecte a VSS=GNDVoltage Reference High VREFH: Este es el voltaje mximo positivo de referencia para la conversin, en algunos microcontroladores est conectado a VDDAD, conecte esta terminal a VDDVoltage Reference Low VREFL:Este es el voltaje mnimo de referencia para la conversin, en algunos microcontroladores est conectado a VSSAD, conecte esta terminal a VSSNota: los valores analgicos de entrada nunca pueden sobrepasar el rango de VSS a VDDA continuacin se mostrarn los registros de configuracin y estado del mdulo ADCStatus and Control Register 1 (ADCSC1)

COCO: Si la opcin de comparacin est deshabilitada (ACFE = 0). La bandera COCO se coloca en 1 una vez haya terminado la conversin, pero si la comparacin est habilitada slo se coloca en uno cuando se cumpla la condicin de que ADCRHL=ADCVLH, esta bandera se limpia cuando ADCSC1 es escrito o cuando ADCRL es ledo.0: Conversin no se ha completado1: Conversin completa.

AIEN: Habilita la interrupcin por conversin completa.0: Interrupcin por conversin completa deshabilitada.1: Interrupcin por conversin completa habilitada.

ADCO: Habilita la conversin continua0: Se realiza una sola conversin si se presenta el trigger por software (escritura en ADCSC1) o por hardware (RTCNT=RTCMOD)1: Se realiza conversiones continuas luego de un trigger por software (escritura en ADCSC1) o por hardware (RTCNT=RTCMOD)

ADCH: seleccin el canal de entrada refirase a la tabla 3 para ver la correspondencia entre los canales si se elige todos los bits en 1 el modulo se deshabilita.

Nota: Escribir cualquier valor en ADCH hace que aborte la actual conversin e inicia una nueva Status and Control Register 2 (ADCSC2)Este registro permite configurar el trigger para la conversin y la funcin de comparacin

ADACT: es una bandera que indica si el mdulo actualmente est realizando una conversin

0: Conversin no est en proceso.1: Conversin est en proceso.

ADTRG: existen dos posibles fuentes de trigger una por software que activa la conversin con la escritura en el registro ADCSC1 y la otra por hardware que se genera por un flanco de subida de la seal ADHWT que para el caso de este microcontroldor se genera cuando el RTCNT=RTCMOD.0: Se selecciona un trigger por software.1: Se selecciona un trigger por hardware.

ACFE: Habilita la funcin de comparacin0: funcin de comparacin deshabilitada.1: funcin de comparacin habilitada.

ACFGT: Permite elegir el modo de comparacin0: compara cuando la entrada es menor que el valor de comparacin1: compara cuando la entrada es mayor o igual que el valor de comparacin.

Data Result High Register & Low Register (ADCRH- ADCRL)En estos registros aparece el dato en binario despus de la conversin, para una adecuada lectura se debe leer primero la parte baja (ADCRL) y despus la alta (ADCRH).

Compare Value High & Low Register (ADCCVH- ADCCVL)Este registro permite ingresar el valor con el cual se va comparar la entrada analgica cuando se elige el modo de comparacin.

Configuration Register (ADCCFG)Este registro permite configurar el modo de operacin, la fuente de reloj, el divisor del reloj y comportamiento en bajo consumo y el tiempo de muestreo

ADLPC: Configuracin de bajo consumo de potencia, este permite optimizar el consumo de potencia del SAR pero aumenta el tiempo de conversin.0: Configuracin de alta velocidad1: Configuracin de baja potencia: baja el consumo pero requiere ms ciclos de reloj

ADIV: Permite seleccionar el factor por el cual se dividir la fuente de reloj elegida

ADLSMP: Long simple Time configuration: permite realizar mejores mediciones para seales de entrada con altas impedancias, tambin disminuye el consumo de potencia0: Tiempo corto de muestreo (baja impedancia)1: Tiempo largo de muestreo (Alta impedancia)

MODE: Seleccin de la resolucin en la conversin ADICLK: Seleccin de la fuente de reloj

Pin Control 1 & 2 Register (APCTL1 & APCTL2)Estos registros de control de pin permiten desactivar los pines utilizados como entradas analgicas. APCTL se utiliza para controlar los pines asociados con canales 0-16 del mdulo ADC

ADCPX: controla si el pin es para ADC o no0: ADX es utilizado como un pin ADC1: ADX no es utilizado como un pin de ADC

The pin control registers (APCTL3, APCTL2, and APCTL1) disable the I/O port control of the pins used as analog inputs.When a pin control register bit is set, the following conditions are forced for the associatedMCU pin: The output buffer is forced to its high impedance state. The input buffer is disabled. A read of the I/O port returns a zero for any pin with its input buffer disabled. The pullup is disabled.