TEMA 20 EL CONVERSOR A/D Introducción Al Conversor Analógico/Digital Los microcontroladores PIC de la familia 16F78x, poseen un conversor A/D de 10 bits de resolución, y con 5 entradas para los dispositivos de 28 terminales (16F873/6) y de 8 entradas para los dispositivos de 40 terminales (16F874/7). La resolución del conversor vendrá determinada por la tensión de referencia que posea el conversor y es: Resolución = Vref/1024 CCFF DPE MÓDULO DE PROYECTOS 2 Diagrama de Bloques del Conversor Analógico/Digital CCFF DPE MÓDULO DE PROYECTOS 3 Introducción Al Conversor Analógico/Digital En anterior esquema podemos comprobar que la entrada activa del conversor A/D se selecciona mediante los bits CHS2:CHS0 del registro ADCON. Las tensiones de referencia (Vref+ y Vref-) que utiliza el conversor, por defecto poseen el valor VDD (5 v) y masa (0 v). Pero opcionalmente se puede disponer de 2 tensiones de referencia, externas denominadas Vref+ y Vref-, y que están sujetas a ciertas limitaciones (pero perdemos 2 canales de entrada). CCFF DPE MÓDULO DE PROYECTOS 4 Introducción Al Conversor Analógico/Digital A través del canal seleccionado, se aplica la señal analógica a un condensador de sample and hold (captura y mantenimiento) y luego se introduce al conversor A/D, este facilitará un resultado de 10 bits. La conversión se realiza mediante la técnica de aproximaciones sucesivas. El conversor es el único dispositivo capaz de seguir trabajando cuando el micro se encuentra en el modo SLEEP. Para ello el oscilador interno debe conectarse al conversor. CCFF DPE MÓDULO DE PROYECTOS 5 Introducción Al Conversor Analógico/Digital El conversor para su funcionamiento posee 4 registros asociados • ADRESH Parte alta del resultado de la conversión • ADRESL Parte baja del resultado de la conversión • ADCON0 Registro de control 0 • ADCON1 Registro de control 1 Los pines que funcionaran como entradas al conversor A/D deben ser configurados como entradas analógicas. CCFF DPE MÓDULO DE PROYECTOS 6 El Registro de Control ADCON0 El registro ADCON0 controla la operación de conversión A/D, se encuentra en la dirección 1Fh (banco 0). Bits 7-6 ADCS1-ADSC0: Sirven para seleccionar la frecuencia del reloj que se empleará en la conversión y de acuerdo a la siguiente tabla: CCFF DPE MÓDULO DE PROYECTOS 7 El Registro de Control ADCON0 ADSC1:ADSC0 FRECUENCIA 00 Fosc/2 01 Fosc/8 10 Fosc/32 11 Frc (utiliza el oscilador interno) Se denomina TAD al tiempo que tarda en ejecutarse la conversión de cada bit, en el caso de trabajar con 10 bits, se requerirá un tiempo mínimo de 12. TAD. CCFF DPE MÓDULO DE PROYECTOS 8 El Registro de Control ADCON0 El valor de TAD se selecciona por software mediante los anteriores bits,y en los PIC 16F87x, nunca debe ser menor que 1,6 μsegundos. Bits 5-3 CHS2:CHS0 Sirven para seleccionar el canal de entrada al conversor y de acuerdo con lo siguiente: 000 = canal 0, (RA0/AN0) 001 = canal 1, (RA1/AN1) 010 = canal 2, (RA2/AN2) 011 = canal 3, (RA3/AN3) CCFF DPE MÓDULO DE PROYECTOS 9 El Registro de Control ADCON0 100 = canal 4, (RA5/AN4) 101 = canal 5, (RE0/AN5)(1) 110 = canal 6, (RE1/AN6)(1) 111 = canal 7, (RE2/AN7)(1) Nota (1): Estos canales no están disponibles en los dispositivos PIC16F873/876. CCFF DPE MÓDULO DE PROYECTOS 10 El Registro de Control ADCON0 Bit 2 GO/DONE: bit de estado de la conversión A/D SI ADON = 1 Poniendo a 1 este bit se inicia una conversión. Este bit permanecerá a 1 mientras la conversión está realizándose, y es puesto a “0” automáticamente por hardware cuando finaliza. Bit 1: no implementado, se lee como 0. Bit 0 ADON: bit de habilitación del conversor A/D 1 = El conversor A/D está operativo 0 = El conversor A/D no está operativo, y no consume corriente. CCFF DPE MÓDULO DE PROYECTOS 11 El Registro de Control ADCON1 El registro ADCON1 sirve para configurar los terminales de la puerta A, como entradas analógicas, o como E/S digitales, posee la dirección 9Fh (banco 1). Bit 7 ADFM: bit de selección del formato del resultado 1 = Justificación a la derecha. Los 6 bits mayor peso del registro ADRESH son puestos a 0 0 = Justificación a la izquierda los 6 bits menos significativos del registro ADRESL son puestos a 0 El Registro de Control ADCON1 Bits 6-4: no implementados se leen como “0”. Bits 3-0 PCFG3:PCFG0: bits de configuración del conversor A/D. Se utilizan para configurar las patillas como entradas analógicas o como terminales de E/S digitales, y de acuerdo a la siguiente tabla. CCFF DPE MÓDULO DE PROYECTOS 13 El Registro de Control ADCON1 El Registro de Control ADCON1 Nota 2: Esta columna indica el número de canales disponibles que son entradas A/D y que número de canales de entrada son entradas de tensión de referencia. CCFF DPE MÓDULO DE PROYECTOS 15 Programación del Conversor A/D Microchip en el manual del microcontrolador recomienda seguir los siguientes pasos para programar el conversor analógico/digital: 1. Configurar el módulo A/D: • Fijar los pines que serán entradas analógicas, entradas digitales y de tensión de referencia, (ADCON1). • Seleccionar el canal de entrada para el conversor A/D (ADCON0) • Seleccionar el reloj para el conversor A/D (ADCON0) • Habilitar el módulo de conversión A/D (ADCON0) CCFF DPE MÓDULO DE PROYECTOS 16 Programación del Conversor A/D 2. Activar si se desea las interrupciones del módulo conversor A/D. • Poner a cero el bit ADIF • Poner a 1 el bit ADIE • Permitir las interrupciones de los periféricos (bit PEIE=1) • Permitir las interrupciones (bit GIE = 1) bit 3. Esperar el tiempo requerido para la adquisición. CCFF DPE MÓDULO DE PROYECTOS 17 Programación del Conversor A/D 4. Comienzo de la conversión • Poner a 1 el bit GO/DONE (ADCON0) 5. Esperar a que finalice la conversión La finalización puede detectarse: • Comprobando cuando se pone a cero el bit GO/DONE (esto ocurre cuando finaliza la conversión) • Esperando a que se produzca una interrupción del conversor A/D, si esta esta habilitada. CCFF DPE MÓDULO DE PROYECTOS 18 Programación del Conversor A/D 6. Lectura el resultado de la conversión A/D • El resultado se encontrará en el par de registros (ADRESH:ADRESL), y con el formato seleccionado. • Poner a 0 el bit ADIF (flag de la interrupción A/D), si la interrupción está habilitada. 7. Para una nueva conversión • Se debe volver a los pasos 1 y 2, el tiempo que se debe esperar entre dos conversiones es de 2.TAD CCFF DPE MÓDULO DE PROYECTOS 19 Requisitos Para la Conversión A/D Para que el conversor pueda tener la precisión especificada, debe permitirse que el condensador de capturara y mantenimiento, alcance el valor de la tensión de entrada del canal El modelo equivalente de una entrada analógica es el siguiente: CCFF DPE MÓDULO DE PROYECTOS 20 Requisitos Para la Conversión A/D La impedancia de la fuente (RS), afecta a la carga del condensador de muestreo, por ello se limita su valor, de tal forma que no debe sobrepasar el valor de 10k, si su valor disminuye, el tiempo de adquisición también lo hará. El tiempo de adquisición viene dado por la siguiente expresión: CCFF DPE MÓDULO DE PROYECTOS 21 Selección del Reloj del Convertidor A/D Como ya se ha indicado anteriormente, se denomina TAD al tiempo que se tarda en convertir un bit. Ya se ha indicado que el tiempo mínimo necesario para efectuar una conversión a 10 bits es de 12.TAD. La señal de reloj del convertidor A/D se fija mediante software, siendo las posibilidades: Fos/2; Fosc/8; Fosc/32; Frc (procede del osilador Interno) Los periodos de TAD, referidos a los periodos del reloj del microcontrolador serán: CCFF DPE MÓDULO DE PROYECTOS 22 Selección del Reloj del Convertidor A/D ADCS1:0 FRECUENCIA DEL RELOJ DEL CONVERSOR A/D TAD 00 Fosc/2 2.Tosc 01 Fosc/8 8.Tosc 10 Fosc/32 32.Tosc 11 Frc Oscilador RC interno en el C. A/D CCFF DPE MÓDULO DE PROYECTOS 23 El valor mínimo que debe poseer TAD es de 1,6 μsegundos. Veamos que valores toma TAD para diferentes combinaciones de los bits ADCS1:0 y diferentes frecuencias de funcionamiento del micro. Selección TAD Frecuencia de funcionamiento del Micro TAD ADSC1:0 20Mhz 5Mhz 1.25Mhz 333.33Mhz 2Tosc 8Tosc 32Tosc RC 00 01 10 11 400ns 1.6us 6.4us 2-6us 1.6us 6.4us 25.6us 2-6us 6us 24us 98us 2-6us 100ns 400ns 1.6us 2-6us Los valores marcados en rojo violan el mínimo tiempo requerido de TAD La fuente RC tiene un TAD típico de 4 us, el PIC con Frecuencias superiores a 1MHz, , el modo RC solo es recomendable en modo sleep. CCFF DPE MÓDULO DE PROYECTOS 24