domingo, 27 de mayo de 2012

CONVERTIDOR ANÁLOGO A DIGITAL CON MODULO ADCINC



En la publicación anterior se realizo una pequeña revisión del modulo DAC8 de PSoC con el cual se pueden hacer conversiones de datos digitales a análogos, en esta ocasión se va a llevar a cabo el proceso contrario con el modulo ADCINC, el cual es tan solo uno de los tantos módulos que ofrece PSoC Designer para realizar conversiones análogas a digitales, además también se llevara a cabo una práctica sencilla en la cual se pretende convertir una señal análoga a digital y luego retornarla de nuevo de manera análoga, de esta manera se integraran los temas vistos en esta publicación y la anterior.

Los módulos que ofrece PSoC Designer para hacer conversiones análogo a digital son los siguientes:

• ADCINC 
• ADCINCVR
• DelSig
• DualADC
• DualADC8
• SAR6
• TriADC
• TriADC8

El modulo que se va a referenciar es el ADCINC, este es un convertidor análogo a digital que cuenta con una resolución de 6 a 14 bits y provee una velocidad de muestreo de 15,6 Ksps (para 6 bits de resolución), el formato de la salida digital se puede entregar con signo o sin signo, la frecuencia máxima a la que se puede alimentar el bloque (DataClock) es de 8 MHz, sin embargo es recomendable que se utilice una frecuencia de 2 MHz con la cual se provee una linealidad en la conversión. 

Este ADCINC es posible implementarlo de primer o segundo orden, si se implementa una de primer orden son utilizados un bloque digital y un bloque análogo, por su parte al implementar un ADC de segundo orden se utilizaran un bloque digital y dos análogos, la configuración de estos ADC se pueden observar en las figuras 1 y 2 mostradas a continuación, estos esquemas fueron tomados de la hoja de datos del modulo ADCINC. 


(Figura 1. ADCINC de primer Orden)
(Figura 2. ADCINC de segundo Orden)

Configuración modulo ADCINC: 

Al igual que se hizo con el modulo DAC8 los aspectos que se van a tener en cuenta en esta publicación, son solo aspectos mínimos para la puesta en funcionamiento del modulo, para una mayor profundidad sobre el funcionamiento del mismo y mayores características, se recomienda leer la hoja de datos del modulo.

Los parámetros a configurar para este modulo se pueden apreciar en la figura 3.

(Figura 3. Parámetros de configuración del modulo)

DataFormat: Es el formato del valor binario al que será convertido el valor análogo ingresado al sistema, permite dos posibilidades unsigned y signed, en caso de seleccionar unsigned el dato binario se ofrece sin signo, si se escoge signe se utiliza un bit para determinar el signo del valor digital.

Resolution: Es el numero de bits utilizado para realizar la conversión, entre mayor sea el numero de bits, mejor va a ser la resolución del convertidor.

Data Clock: Velocidad del reloj a la cual se alimentan los bloques del modulo, la velocidad máxima es de 8 MHz, esta velocidad determina la velocidad de muestreo del convertidor análogo a digital.



Pos Input: Entrada principal del convertidor. 

Los parámetros anteriores son los mínimos a configurar para poner en funcionamiento el modulo ADCINC, los valores Neg Input y Neg Input Gain, se pueden dejar desconectados y deshabilitados respectivamente. 

Para el funcionamiento del ADC es necesario habilitar las interrupciones, además se recomienda utilizar un modulo PGA de ganancia 1 antes de la entrada del convertidor ADC, a continuación se presenta un código en C en que se muestra como poner en funcionamiento el convertidor, con este código se espera despejar un poco las dudas sobre este modulo. 

//----------------------------------------------------------------------------
// C main line
//----------------------------------------------------------------------------

#include <m8c.h>       
#include "PSoCAPI.h"   

void main(void)
{
PGA_1_Start(3); //se activa el modulo PGA
ADCINC_1_Start(3); //se activa el modulo ADCINC
ADCINC_1_GetSamples(0); // # de muestras a tomar, en este caso muestreo constante
M8C_EnableGInt; //se habilitan las interrupciones
while(1)
{
if(ADCINC_1_fIsDataAvailable()!=0) // si el DAC tiene un dato valido entonces
{
PRT1DR=ADCINC_1_bGetData();//coloca el dato digital por el puerto 1.
}
}
}


Las configuraciones de los parámetros del modulo ADCINC en conjunto con el código anterior son los que se mostraron en la figura 3.

En el siguiente video se muestra una práctica en la cual se toma una señal sinusoidal análoga por medio de un convertidor ADC, este valor se guarda en una variable y por ultimo un convertidor DAC toma este valor retornando como resultado un valor análogo, con lo cual se obtiene la reconstrucción de la señal que se ingreso al sistema en un principio.



No hay comentarios:

Publicar un comentario