MÍNIMAS ACLARACIONES PARA EL USO DEL CONVERSOR ANALÓGICO/DIGITAL Nuestro pic tiene 28 pines por lo tanto 5 son compartidos con el conversor A/D. El registro de conversión es de 10 bits. Es decir, divide un rango de voltaje entre 1024 partes. El rango de voltaje puede ser el interno del propio dispositivo: VDD-VSS, o bien uno externos que usaría los pines RA2 y RA3. Por configuración puede realizarse cualquier combinación. Los cuatro registros internos propios del conversor son: ADRESH – parte alta del registro de conversión ADRESL – parte baja del registro de conversión ADCON0 – control de la operación de conversión ADCON1 – configura la función de los pines Los pines pueden configurarse como entrada/salida digital o como entrada analógica (RA3 también puede configurarse como entrada de voltaje de referencia. ADCON0 contiene dos bits ADCON0[7,6] que junto con otro bit de ADCON1, [6], seleccionan el reloj con que se va a hacer la conversión. En ADCON1 hay un bit que nos permite configurar la salida de la conversión: la salida sobre los registros ADRESH-ADRESL puede venir así (c:valor de conversión) 000000cc cccccccc o bien así cccccccc cc000000 Teniendo en cuenta que 1024 puede ser demasiada precisión, puede ocurrir que nos interese conservar los bits superiores y despreciar los inferiores que varían con minimos cambios del voltaje que estamos midiendo. Es posible incluso que midiendo varias veces el mismo voltaje tengamos valores distintos, diferenciándose en los bits menos significativos – dependiendo de la estabilidad del voltaje que estamos midiendo. Así que creo que lo más oportuno sería trabajar con la segunda configuración, aunque todo depende de lo que queramos conseguir. En ADCON1 se selecciona la manera en que vamos a utilizar los bits del puerto A. D significa que los vamos a utilizar como entrada/salida digital y A significa que los vamos a utilizar como entrada analógica.VREF+ y VREF- son los dos voltajes de referencia entre los cuales vamos a hacer la conversión. Observar las posibles combinaciones. Hay que elegir la configuración que mejor se nos acomode, es decir, si sólo vas a usar una entrada analógica no ocupes todo el puerto A y deja el resto de los canales libres para usarlos como entrada/salida analógica. Observar que cuando no usamos el dispositivo de conversión convendría que tuviéramos seleccionada la combinación 011x (x: significa que da igual este bit) Observar que en ADCON0 hay un bit para iniciar la conversión y que ese mismo bits nos avisa de cuándo la conversión ha sido realizada. Por lo tanto, iniciada la conversión hay que esperar a que ese bit esté a cero para hacer uso del resultado También es posible configurar las interrupciones para que se disparen cuando la conversión ha sido realizada. Otra cuestión importante es el de la adquisición de los puertos. Cuando un puerto es asignado para usarlo como entrada analógica es necesario esperar un tiempo de “adquisición” antes de iniciar la conversión.