Convertidor Analógico Digital ADC M.C. Jorge Eduardo Ibarra Esquer Convertidor analógico a digital ADC Las características de este módulo son: Ocho canales con entrada multiplexada Aproximación lineal sucesiva Resolución de 8 bits Conversión sencilla o continua Reloj del ADC seleccionable Bandera de conversión terminada o solicitud de interrupción 1 Convertidor analógico a digital ADC El ADC proporciona 8 terminales para el muestreo de fuentes externas (PTB7/AD7 PTB0/AD0) Un multiplexor analógico permite al ADC seleccionar uno de los 8 canales como voltaje de entrada (ADCVIN) Una vez que se ha convertido el voltaje, el resultado se coloca en el registro de datos del ADC y activa una bandera o genera una interrupción 2 Terminales del ADC Las terminales del puerto B se comparten para ser utilizadas como los canales del ADC Los canales seleccionados para el ADC forzarán a sus terminales correspondientes a comportarse como entradas. El resto de ellas serán controladas por la lógica de E/S del puerto Terminales del ADC Escribir en el registro de datos del puerto o en el DDR, no afectará a ninguna terminal seleccionada para el ADC. La lectura de cualquiera de estas terminales regresará un 0 lógico 3 Conversión de voltaje Cuando el voltaje de entrada a un canal sea igual al voltaje de referencia alto VREFH, el resultado de la conversión será $FF Si el voltaje de entrada es igual al voltaje de referencia bajo VREFL, el resultado de la conversión será $00 Cualquier voltaje entre los de referencia, se convertirá utilizando una escala lineal Tiempo de conversión La conversión empieza después de escribir al ADSCR Una conversión tomará entre 16 y 17 ciclos del reloj del ADC. Los bits ADIVx y ADICLK debén asignarse para dar una frecuencia de 1MHz al reloj del ADC Tiempo de conversión = 16-17 ciclos del ADC Frecuencia del ADC 4 Modo de conversión contínua En este modo de operación, el registro se llenará con datos nuevos después de cada conversión. Los datos de la conversión anterior se sobreescribirán, hayan sido leídos o no Las conversiones continuarán hasta que se borre el bit ADCO Modo de conversión contínua Después de la primera conversión se activa el bit COCO/IDMAS, y permanece activo hasta la siguiente escritura del registro de estado y control del ADC o la siguiente lectura del registro de datos 5 Modo de conversión sencilla En este modo de operación, la conversión se inicia con una escritura al ADSCR Solamente se realiza una conversión después de cada escritura al ADSCR Interrupciones del ADC Cuando se encuentra activo el bit AIEN, el módulo del ADC es capaz de generar solicitudes de interrupción después de cada conversión Una interrupción se genera si el bit COCO/IDMAS tiene un 0 lógico Si están habilitadas las interrupciones, el bit COCO/IDMAS no se utiliza como bandera de conversión completa 6 Registro de estado y control del ADC Registro de estado y control del ADC COCO/IDMAS – Conversiones completas / Bit de selección de interrupción DMA Si el bit AIEN tiene un 0 lógico, este bit es de sólo lectura y se activa cada vez que se completa una conversión En el modo de conversión contínua, se activa después de la primer conversión Se borra al escribir en el ADSCR o leer el ADR 7 Registro de estado y control del ADC COCO/IDMAS – Conversiones completas / Bit de selección de interrupción DMA Si el bit AIEN tiene un 1 lógico, este bit se utiliza para seleccionar ya sea al CPU o al DMA para dar servicio a la solicitud de interrupción IDMAS=0 – Interrupción del CPU IDMAS=1 – Interrupción del DMA COCO=0 – Conversión incompleta COCO=1 – Conversión completa El microcontrolador GP20 no tiene un módulo de DMA Registro de estado y control del ADC AIEN – Bit de habilitación de la interrupción del ADC Cuando este bit está activo, se genera una interrupción al terminar una conversión La señal de interrupción se borra al leer el registro de datos o escribir en el registro de control 8 Registro de estado y control del ADC ADCO – Bit de conversión contínua del ADC Cuando está activo, el ADC realizará las conversiones de manera contínua y actualizará el ADR al terminar cada una de ellas Si su valor es un 0 lógico, solamente se realizará una conversión entre cada escritura al registro de control Registro de estado y control del ADC ADCH4-ADCH0 – Bits selectores del canal del ADC Con estos bits se forma un valor de 5 bits que nos permite seleccionar un total de 16 canales El módulo del ADC se desactivará si los 5 bits de selección tienen un 1 lógico 9 Registro de estado y control del ADC Registro de datos del ADC 10 Registro del reloj del ADC Registro del reloj del ADC ADIV2-ADIV0 – Bits preescaladores del reloj Estos bits forman un campo de 3 bits que selecciona el valor que el ADC utilizará para generar el reloj interno del ADC El reloj debe establecerse en aproximadamente 1MHz 11 Registro del reloj del ADC ADIV2-ADIV0 – Bits preescaladores del reloj Registro del reloj del ADC ADICLK – Bit selector de la entrada del reloj Selecciona ya sea el reloj del bus o la entrada CGMXCLK como la fuente del reloj para generar la señal de reloj del ADC ADICLK=1 Æ Reloj del bus ADICLK=0 Æ Reloj externo (CGMXCLK) 12