Convertidor Análogo Digital ADC con el PIC18F4550

publicado en: Teoria pic18f4550 | 0

convertidor-analogo-digital-adc-con-el-pic18f4550-1

DESCRIPCIÓN

El convertidor analógico digital es capaz de convertir una señal de voltaje variable en valores digitales a una resolución de 8 o 10 bits. Ademas, se puede llegar hasta a 50K muestras por segundo, lo que es ideal para proyectos de adquisición de datos como Datalogger, etc. A continuación se muestra las características y se describe los registros involucrados con el convertidor ADC y se realizaran ejemplos.

  • Resolución programable por software en modo de 8 y 10 bits.
  • 13 canales de entradas multiplexadas.
  • Rango del voltaje de entrada para el ADC 0-Vcc.
  • Referencia de voltaje interna o externa.
  • Modo de conversión ADC (continua o individual).
  • Inicio de conversión ADC por Auto-Disparo en fuentes de Interrupción.
  • Interrupción ADC al completar la conversión.

En las siguientes imágenes se detallaran los registros involucrados al ADC

convertidor-analogo-digital-adc-con-el-pic18f4550-2 convertidor-analogo-digital-adc-con-el-pic18f4550-3 convertidor-analogo-digital-adc-con-el-pic18f4550-4 convertidor-analogo-digital-adc-con-el-pic18f4550-5

Hay que seguir los siguientes pasos para una correcta conversión AD

convertidor-analogo-digital-adc-con-el-pic18f4550-6

Todo parece sencillo hasta que se llega al paso 2, y es aquí donde hay una gran pregunta y varias dudas al respecto; ¿Por qué es necesario el Tiempo de Adquisición?, ‘¿Cuánto es el Tiempo de Adquisición mínimo? Y ¿Cuál es el Tiempo de Conversión que debo utilizar? Primero realizaremos una breve descripción.

convertidor-analogo-digital-adc-con-el-pic18f4550-7

El módulo interno A/D del PIC incorpora un condensador de muestreo como muestra la imagen de arriba. Entonces antes de dar inicio a una conversión A/D hay que asegurarnos de que el condensador haya sido cargado con la tensión suministrada en el canal seleccionado, esto viene a ser como el tiempo de adquisición. Existen 2 formas de generar este tiempo.

  1. Por Software: se establece por código un tiempo simbólico igual al tiempo de adquisición y luego se inicia una conversión A/D.
  2. Automático: se configura un Tiempo de Adquisición que se establecerá de forma automática entre, la orden de inicio de conversión y muestreo de la señal para iniciar la conversión. Este tiempo se puede configurar a través de los bits ACQT[2:0] del registro ADCON2.

Según la hoja de datos (datasheet) del PIC18F4550 dice que para este PIC lo siguiente

  1. Tacq = Tiempo de Adquisición.
  2. Tad = Tiempo de Conversión (por cada bit, para 8 o 10 bits).

Tacq >= 2.45uS

0.7uS < Tad < 1.3uS

Luego de saber cuál es el Tacq mínimo y Tad por cada bit, es necesario saber cuánto debe ser el tiempo total requerido para una correcta conversión A/D. Para una resolución de 10 bits.

Tiempo Total = Tacq + Tconversion + Tdescarga.

Tiempo Total = 2.45uS + 10*(1.3uS) + 3uS

Tiempo Total = 19.45uS  ≈  20uS

El tiempo de descarga es necesario para dar inicio a un nuevo muestreo por el canal A/D

En la siguiente imagen se muestra una tabla del Tad respecto a la Fosc, esto nos indica cual debe ser el divisor de la Fosc para respetar el Tiempo de Adquisición y Conversión.

convertidor-analogo-digital-adc-con-el-pic18f4550-8

EJEMPLO N°1 – CONVERTIDOR ANALÓGICO DIGITAL DE 8 BITS

En el siguiente ejemplo mostraremos el voltaje de una resistencia variable (potenciometro) que esta conectada al pin RA0, y a través de unos leds ubicados en el puerto D se podrá visualizar su valor digital binario. Tambien, utilizaremos el oscilador interno del PIC18F4550 configurado a 8Mhz, configuraremos el Tiempo de conversión con los bits ADCS[2:0] = 001 esto seria igual a FOSC÷8 = 1us. Este tiempo sera el que utilice el tiempo de conversión, mientras que el tiempo de adquisición sera 4TAD = 4×1us = 4us, este nuevo valor sera el tiempo de adquisición para dar inicio el tiempo de conversión AD. A continuación se muestra el circuito de conexión y el código de este ejemplo.

convertidor-analogo-digital-adc-con-el-pic18f4550-9

Código principal MAIN

EJEMPLO N°2 – ADC DE 10BITS + SENSOR LM35

En este nuevo ejemplo se configura el ADC a 10bits de resolución, y, los demás parámetros de configuración se mantienen igual al ejemplo anterior. Sin embargo, ahora se utiliza el sensor de temperatura LM35 (datasheet), revisando su hoja de datos, el fabricante nos dice que el factor de conversión de temperatura a voltaje es igual a 10mv por cada 1°C. Ademas, el sensor LM35 tiene un rango de temperatura de -55°C a +150°C co una precisión de 0.5°C. Por ultimo, hay que tener en cuenta que el valor leído del sensor LM35 es de voltaje y es necesario realizar varios cálculos para poder transformarlo en un numero y en grados. A continuación se muestra el circuito de conexión de este segundo ejemplo y también el código de mismo.

 convertidor-analogo-digital-adc-con-el-pic18f4550-10

Código principal MAIN

Código FUSES

Deja un comentario