Vous êtes sur la page 1sur 15

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

V BG

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 deshabilitado
1 ACMP habilitado

Analog 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 temperatura

El mdulo de conversin anlogo a digital usa un SAR el cual funciona de la


siguiente manera
El ADC de aproximaciones sucesivas
Casi todos los mdulos ADC de los microcontroladores son de aproximaciones
sucesivas. Funcionan con cuatro elementos bsicos: un comparador analgico,

una lgica de control (SAR: successive approximation register), un conversor


digital analgico DAC y el reloj que gua los pasos de la conversin. Los DAC
son mucho ms simples que los ADC y entregan resultados casi de inmediato.
Cada nmero binario generado va siendo convertido en una tensin
analgica Vout, que luego se compara con la tensin de entrada que se quiere
medir Vin. Si son iguales (o los ms cercanos posible), en ese momento el
sistema ya ha encontrado el nmero binario que corresponde a Vin. 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 seal Vin de 4.00000 Volts. Para realizar la conversin el ADC que es
de 10 bits, dar los 10 pasos mostrados en la siguiente tabla:
Paso #
1

Binario Generado
D9 ... D0
10 0000 0000

Vout (DAC)
(Voltios)
2.50244

Vin (ADC)
(Voltios)
4.00000

11 0000 0000

3.75366

4.00000

11 1000 0000

4.37927

4.00000

11 0100 0000

4.06647

4.00000

Vout >
Vin ?
S, queda
D9
S, queda
D8
No, limpiar
D7
No, limpiar
D6

11 0010 0000

3.91000

4.00000

11 0011 0000

3.98826

4.00000

11 0011 1000

4.02737

4.00000

11 0011 0100

4.00782

4.00000

11 0011 0010

3.99804

4.00000

10

11 0011 0011

4.00293

4.00000

Valor
final

11 0011 0010

3.99804

---

S, queda
D5
S, queda
D4
No, limpiar
D3
No, limpiar
D2
S, queda
D1
No, limpiar
D0
---

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 bit D9 en alto. Este nmero se


convierte en el valor analgico Vout, que despus se compara con Vin. 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
limpiar D7. Y se sigue con el resto de manera similar hasta alcanzar el bit D0.
Como se puede observar, al final nos quedamos con el valor 11 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 ADC
A 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 ADC


El 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 Trigger

Usted 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 temperatura
Internamente 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 sensor
VTEMP25: Es el voltaje que tendra el sensor a temperatura de 25C, ver tabla
m: 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 VDD
Analog Ground VSSAD: Si est disponible conecte a VSS=GND
Voltage 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 VDD
Voltage Reference Low VREFL:Este es el voltaje mnimo de referencia para la
conversin, en algunos microcontroladores est conectado a V SSAD, conecte esta
terminal a VSS
Nota: los valores analgicos de entrada nunca pueden sobrepasar el rango de
VSS a VDD
A continuacin se mostrarn los registros de configuracin y estado del mdulo
ADC

Status 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 completado
1: 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 continua


0: 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 comparacin
0: funcin de comparacin deshabilitada.
1: funcin de comparacin habilitada.
ACFGT: Permite elegir el modo de comparacin
0: compara cuando la entrada es menor que el valor de comparacin
1: compara cuando la entrada es mayor o igual que el valor de comparacin.

Data Result High Register & Low Register (ADCRHADCRL)


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 velocidad
1: 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 potencia
0: 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 no


0: ADX es utilizado como un pin ADC
1: 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 associated
MCU 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.

Vous aimerez peut-être aussi