Hola a todos de nuevo!! bueno despues de estas mini-vacaciones de navidad (todavía quedan reyes), ya es hora de reemprender la explicación de los diferentes modulos de los que disponemos en los microcontroladores 18f2550 y 18f4550.
Hasta ahora, los modulos que hemos dado, son genericos, es decir, tanto los temporizadores, como las interrupciones las podemos encontrar en la mayoria de los microcontroladores de la gama 16f y 18f, pero este ya es un poco diferente, ya que, aunque es raro, hay microcontroladores que no disponen de un conversor analógico-digital.
El conversor AD va a ser uno de los módulos que más vamos a utilizar en nuestros proyectos mas cotidianos y mas vistosos, como por ejemplo, la medida de la temperatura. Pero no solo es útil en proyectos de ir por casa, sino que es muy útil en la electrónica de potencia para medir tanto intensidades (mediante una resistencia shunt), como tensiones. Es verdad que el conversor AD que nos ofrece un microcontrolador no es de lo mejor que hay, quizás tiene como carencias su velocidad, y aunque su resolución es buena , 10 bits, los hay por ahí de 16 e incluso 32 y 24, aunque para nuestras medidas 10 bits es mas de lo necesario.
Descrito a grandes rasgos la herramienta de la que disponemos, vamos a aprender a utilizarla. Para configurar este módulo disponemos de los siguientes registros:
- 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.
- ADCON2: Registro de control 2.
Debido a que el resultado es de 10 bits, no tenemos espacio suficiente con un registro de 8 bits, por lo que utilizamos 2, ADRESH y ADRESL. Dicho esto empezamos a describir un poco como configurar el módulo.
En primer lugar tenemos el ADCON0, debido a que aunque dispongamos de 16 canales de conversión, tan solo disponemos d eun conversor AD multiplexado, debemos decirle en que canal de los 16 disponibles queremos hacer la conversión, y eso lo haremos mediante los bits 5-2 de este registro. Los otros dos bits que nos quedan sirven para habilitar el conversor, ADON, y para que empiece la conversión, GO/DONE.
Conversor AD multiplexado. |
A continuación tenemos el registro ADCON1, en este podemos seleccionar las tensiones de referencia que vamos a utilizar para realizar la conversión, Vref- corresponderá con el valor 0, y Vref+ corresponderá con el valor 1024. Cabe destacar que ninguna de las dos podrá ser una tensión negativa. La otra parte del registro nos sirve para configurar los puertos que van a ser digitales, y cuales van a ser analógicos. Cuando seleccionamos un puerto como analógico, debemos configurarlo como entrada mediante el TRIS correspondiente.
El último registro que nos queda es el ADCON2, con el que configuraremos los tiempos de conversión y adquisición. Para saber como utilizar este registro, debemos saber como funciona un conversor. Aquí va una explicación express. Cuando iniciamos la conversión, se cierra un "interruptor" que permite que se cargue un condensador con la tensión que hay en el pin, una vez pasado el tiempo de adquisición, el interruptor se abre y es entonces cuando el conversor lee el valor de ese condensador y lo convierte en digital.
Modelo interno del pin ADC |
El problema está cuando el tiempo que ese "interruptor" está cerrado es insuficiente para que se cargue con toda la tensión que hay en el pin. El tiempo correcto que debemos mantener el interruptor cerrado depende de la capacidad del condensador, de la impedancia de salida de la fuente de tensión que queremos medir, y d ela impedancia de entrada del pin. Si ese tiempo es demasiado pequeño, obtendriamos una lectura equivocada. Es este criterio con el debemos configurar el tiempo de adquisición del registro. otro parámetro que configuramos aquí es el reloj que utilizamos para el conversor, que debe ser un submultiplo de la frecuencia de oscilación, y siempre debe ser menor de 1.5MHz.
En la siguiente entrada pondremos un ejemplo de utilización de este módulo. Espero, como siempre, que os haya sido útil la información que os he aportado.
Un saludo
No hay comentarios:
Publicar un comentario