Sie sind auf Seite 1von 5

ADC INCremental.

Características:
• De 6 a 14 bits de resolución
• Salida PWM de 8 bits Síncrona opcional.
• Entrada Diferencial Opcional.
• Salida con signo o sin signo.
• Frecuencias de muestreo de hasta 15.6 ksps (6bits).
• Rango de entrada definido por referencias externas o internas.
• Reloj interno o externo.

Este modulo tiene una frecuencia de datos máxima de hasta 8MHz, pero se
recomienda no usar relojes de mas de 2MHz por razones de linealidad en la conversión.
Este ADC solo puede colocarse una vez, ya que hace uso del decimador por hardware
en lugar de usar un bloque digital. Este es el ADC que mejor uso de los recursos hace.
Es posible agregarle un modulador de segundo orden usando un bloque SC adicional
para mejorar la linealidad cuando se usan relojes de 8MHz.
Este ADC requiere de 2n-1 ciclos de integración para generar una salida de n bits
de resolución.

El rango del ADC esta dado por ±VREF. Este parámetro se da en la ventana de recursos
globales.
Valor de REF MUX Voltaje de Entrada AGND
(Vdd/2)+/-BandGap 1.2 – 3.8 2.5 (Vdd/2)
(Vdd/2)+/-(Vdd/2) 0 – 5.0 (Vss-Vdd) 2.5 (Vdd/2)
BandGap+/-BandGap 0 – 2.6 1.3
(1.6 BandGap)+/-(1.6 BandGap) 0 – 4.16 2.08
(2 BandGap)+/-BandGap 1.3 – 3.9 2.6
(2 BandGap)+/-P2[6] (2.6-VP2.6) – (2.6+VP2.6) 2.6
P2[4]+/-BandGap (P2.4-1.3)-( P2.4+1.3) P2.4
P2[4]+/-P2[6] (P2.4- P2.6)-( P2.4+ P2.6) P2.4
Parámetros:
Data Format: Determina el formato de los datos que pueden se con o sin signo.

Resolution: La resolución en bits del ADC. Se puede elegir de 6 a 14 bits de


resolución.

Data Clock. Este reloj determina la frecuencia de muestreo. Es necesario que se


seleccione el mismo reloj para las columnas analógicas y digitales o de lo contrario este
modulo no funciona bien. Debe de ser mayor a 250KHz si el CPU va a 24 MHz, de lo
contrario puede llegar hasta 125KHz. Siempre debe ser menor a la frecuencia del CPU.
El PWM genera una interrupción cada 256 cuentas del reloj de datos. El
Contador integra la señal por 2n-6 ciclos. Se requiere un ciclo extra para resetear el
integrador y procesar los datos. La frecuencia máxima permitida es 8MHz.

DataClock
Frecuencia _ Muestreo =
256 ( 2n −6 + 1)

Frecuencia de Muestreo (sps) Resolución Data Clock (sps)

Frecuencias de Muestreo Máximas:


Resolución Frecuencia Máxima
de Muestreo
6 bits 15.6 ksps
7 bits 10.4 ksps
8 bits 6.25 ksps
9 bits 3.4 ksps
10 bits 1.8 ksps
11 bits 976 sps
12 bits 480 sps
13 bits 242 sps
14 bits 121 sps

La ventana de muestreo del ADC queda definida por:

PosInput: Entrada Principal al ADC.

NegInput: Entrada inversora para el modo diferencial. Puede asignársele un peso


mediante su parámetro de ganancia. Si no se va a usar el modo diferencial, se
desconecta en el parámetro de ganancia.

NegInput Gain: Selecciona el peso para la entrada inversora.


Cuidados Generales para el Uso de ADCs.
El PSoC 1 tiene varios tipos de ADC: ADCINC, ADCINCVR, ADCINC14,
DELSIG8, DELSIG11, DELSIG, etc.Es bastante comun que al usarlos por primera vez,
no funcionen de manera adecuada como por ejemplo que la conversión no se realice
correctamente, que el resultado sea siempre cero, que no se complete la conversión, etc;
por esto es necesario seguir siempre estas reglas :

Interrupciones Globales.
En el PSoC, el ADC es una combinación de bloques digitales, analógicos y del
CPU. Un bloque SC se configura como modulador que convierte una entrada analógica
en un flujo de bits. Se usa un contador para contar el tiempo que este flujo se encuentra
en alto por un periodo de tiempo dado de integración. Un timer o PWM se usa para
generar el tiempo de integración. Al final de cada ciclo de integración, el timer o PWM
genera una interrupción y el CPU lee el contador en la rutina de interrupción.

Cuando la Interrupción Global se encuentra deshabilitada, el CPU no puede responder


al timer o PWM para leer el resultado del ADC. Así que nunca se completaría la
conversión. Por eso:
¡SIEMPRE ACTIVA LA INTERRUPCION GLOBAL!
Alimentación Analógica.
La Alimentación analógica se selecciona en los recursos globales. Este le da
alimentación a los bloques SC y a las referencias de voltaje.
Para que el ADC funcione bien Siempre selecciona “SC On / Ref Low”, “SC On /
Ref Medium” o “SC On / Ref High”. Si seleccionas “SC Off” o “All Off” el ADC no
funcionará.

La alimentación de referencias debe seleccionarse para que el generador de


referencias pueda generar la alimentación adecuada a los bloques analógicos. La
potencia debe ser siempre igual o mayor a la máxima potencia usada por cualquiera de
los bloques analógicos.

¡Siempre proporciona una alimentación y potencia


adecuadas a los bloques SC y a las referencias!
Column Clock y DataClock.

El ADC tiene un parámetro llamado “Clock”. Este selecciona la fuente de reloj


para la parte digital del ADC. El reloj de columna para los bloques SC debe tener el
mismo valor que este parámetro. En el dibujo de abajo se ve como se pone el reloj de
columna a VC2. Por lo tanto el reloj de columna analógico debe ser también VC2. Si
estos relojes no tienen el mismo valor, la salida del ADC no será correcta.
¡EL RELOJ DE DATOS Y EL RELOJ DE LA COLUMNA
ANALÓGICA SIEMPRE DEBEN SER IGUALES!
Clock Phase.

La salida de los bloques SC no es continua, tienen 2 fases de operación. La fase


1 es la adquisición de carga cuando la señal es muestreada. Durante esta fase la salida
del bloque es cero. La fase 2 el la fase de transferencia de carga donde la carga es
transferida a la salida y la salida es proporcional a la razón entrada – salida de las celtas
de capacitares de conmutación. Por lo tanto la salida solo es valida durante la fase 2.
Ver la Nota de Aplicación “AN2041 - Understanding Switched Capacitor Blocks” para
más detalles.

Si una entrada del ADC se encuentra conectada a otro bloque SC como puede
ser un amplificador de instrumentación de 3 operacionales o a un filtro, la salida de esta
fuente es cero durante la fase 1 del bloque. Como el modulador del ADC tambien usa
un bloque SC, muestrea su entrada en la fase 1, por lo que la salida siempre producirá
un cero. Bajo estas circunstancias la fase del ADC debe de cambiarse para que muestree
durante la fase 2. Si la entrada es un pin

¡VERIFICA EL VALOR CORRECTO DE CLOCKPHASE


DE ACUERDO A TU ENTRADA!
Esperar un resultado dentro de Una Interrupción.

Muchas veces deseas iniciar una conversión dentro de la ISR de otro módulo como un
contador, y procesar la salida del ADC dentro de la Interrupciòn:

void TimerISR (void) // This is an ISR


{
int Result;
ADC_GetSamples(1);
while(ADC_fIsDataAvailable() == 0;
Result = ADC_iGetDataClearFlag();
}

El código de Arriba hará que el programa se quede detenido en la tercera línea. Cuando
se entra a una interrupción la interrupción global se desactiva y no se vuelve a activar
hasta que se sale de la ISR. Por lo tanto dentro de una interrupción no se atiende
ninguna otra interrupción. Como el ADC requiere la interrupción para completar la
conversión , en el código de arriba, la conversión nunca se completará.

Una solución es rehabilitar la interrupción dentro de la ISR, pero no es recomendable,


ya que las interrupciones podrían anidarse para siempre.

¡NUNCA ESPERES EL RESULTADO DEL ADC DENTRO DE


UNA INTERRUPCIÒN!

Das könnte Ihnen auch gefallen