Buscar en este blog

domingo, 9 de enero de 2011

Conversor AD del PIC12F675

El PIC 12F675 posee un conversor análogico-digital de 10 bits. A su vez, se pueden tener hasta 4 entradas analógicas a convertir debido a que el conversor hace una multiplexación entre estas cuatro entradas.

Para configurar las propiedades de la conversión, se utilizan los registros ADCON0 (ubicado en el banco 0) y ANSEL (ubicado en el banco 1).

Registros utilizados para configurar el conversor AD del PIC 12F675
Canal a utilizar

La señal analógica a convertir puede ser conectada en cuatro posibles pines del PIC. Estos son los pines: 3 (AN3), 5 (AN2), 6 (AN1) o 7 (AN0). Para seleccionar que entrada deseamos, debemos modificar convenientemente el valor de los bits 3 (CHS1) y 2 (CHS0) del registro ADCON0.
  • CHS1:CHS0 = 00 estaremos eligiendo la entrada AN0 del pin 7
  • CHS1:CHS0 = 01 estaremos eligiendo la entrada AN1 del pin 6
  • etc. .
Reloj de conversión

Una vez que seleccionamos la entrada deseada, debemos indicar que queremos que esa entrada sea analógica y el periodo del reloj que deseamos para la conversión. Para esto usamos el registro ANSEL del Banco1.

Los posibles periodos para los relojes de conversión van de 2 a 64 TOSC (periodos de oscilación del reloj utilizado). Sin embargo, de acuerdo a la frecuencia del reloj utilizado, Microchip recomienda en su hoja de datos unos u otros periodos de conversion.

En la siguiente tabla, los valores recomendados corresponden a los lugares donde no hay referencias a notas al pie.

Periodos de conversion recomendados de acuerdo al oscilador utilizado

Si por ejemplo decidimos utilizar un tiempo de conversion de 16TOSC y la entrada AN0 (pin 5 del PIC) para conectar nuestra señal a convertir, deberemos escribir el siguiente byte al registro ANSEL:

ANSEL = X ADCS2 ADCS1 ADCS0 ANS3 ANS2 ANS1 ANS0 = b'01010001'

Voltaje de referencia

El voltaje de referencia para la conversión puede configurarse para que sea la fuente VDD o un voltaje de referencia externo Vref que deberemos colocar en el pin 6 (VREF) del PIC.

Para realizar esta configuración, se debe poner a 0 o a 1 respectivamente el bit 6 (VCFG) del registro ADCON0.

Observar que si decidimos usar el pin 6 para colocar un voltaje de referencia externo, deberemos indicar en el registro ANSEL que usaremos este pin para una entrada analógica.

Formato de conversión

La conversión es de 10 bits por lo que se utilizan 2 bytes para almacenarla. Estos son los registros ADRESH (Analog Digital Result High) y ADRESL (Analog Digital Result Low).

Como se puede ver en la siguiente imagen, este resultado se puede obtener en dos formatos distintos según el valor que carguemos en el bit 7 (ADFM) del registro ADCON0.

Formato de almacenamiento del resultado de la conversión

Nueva conversión

Previo a iniciar una conversión, hay que habilitar el conversor. Esto se hace seteando (poniendo a 1) el bit 0 (ADON) del registro ADCON0.

Luego, para indicarle al PIC que realize una nueva conversión, se debe setear el bit 1 (GO) del registro ADCON0.

Es recomendable dejar pasar un cierto tiempo entre que se habilita el conversor y se inicia una nueva conversión. Esto es para permitir que se cargue el capacitor (interno al PIC) encargado de almacenar el voltaje analógico que luego va a convertir el PIC.

Para saber si ya finalizó la conversión, debemos verificar que el bit 1 (GO) del registro ADCON0 valga 0.

Resultado obtenido

El resultado de una conversión es almacenado en los registros ADRESH (del banco 0) y ADRESL (del banco 1) de acuerdo al formato elegido.

Fuentes:
  • Hoja de datos del PIC 12F675

1 comentario:

  1. no lo he probado, peró me ha encantado tu esfuerzo.un beso y sigue así...voy a probarlo

    ResponderEliminar