Inicio Instrumentación Sacar el máximo partido a los periféricos. Cómo configurar e integrar periféricos...

Sacar el máximo partido a los periféricos. Cómo configurar e integrar periféricos en microcontroladores de gama media de 8bit

Para sacar el máximo partido a mu­chos microcontroladores modernos, a menudo es necesario asegurarse de que los periféricos que incorpora el microcontrolador estén configurados correctamente. Esto conlleva en ocasio­nes su configuración paso a paso antes de interconectarlos.

Este aspecto es especialmente impor­tante cuando el microcontrolador fue escogido porque sus periféricos cubren las necesidades de una aplicación de­terminada. Si no se presta atención, es posible que los periféricos no propor­cionen la salida deseada.

Veamos a modo de ejemplo las familias PIC16F7X y PIC16C7X de mi­crocontroladores de gama media de 8bit de Microchip. El PIC16F7X es un dispositivo flash y el PIC16C7X es un dispositivo programable una sola vez (one-time-programming, OTP). Entre los periféricos para ambos dispositi­vos se encuentran un convertidor A/D, temporizadores, módulos de captura, comparación y PWM (capture-compare PWM, CCP) y USART (universal syn­chronous asynchronous receiver trans­mitter).

Módulo conversor A/D

El módulo convertidor A/D convier­te una señal analógica de entrada en el número digital correspondiente de 8bit. La salida del circuito interno de muestreo y retención es la entrada al convertidor, que genera el resultado por aproximaciones sucesivas. La tensión de referencia analógica se puede seleccio­nar por software tanto a la tensión de alimentación positiva (VDD) del disposi­tivo como al nivel de tensión de la patilla Vref. El convertidor A/D se distingue por su capacidad de funcionar mientras el dispositivo está en modo dormido. La Fig. 1 muestra un diagrama de bloques del circuito.

El módulo tiene tres registros; los dos registros de control son ADcon0 y ADcon1 y el registro de resultado es ADres. ADcon0 controla el funciona­miento del módulo A/D. Este registro se utiliza para seleccionar la frecuencia del reloj de conversión y el canal analó­gico. Es donde se determina el inicio y la finalización de la conversión. ADcon1 configura las funciones de las patillas del puerto. Los microcontroladores tie­nen cinco u ocho patillas de E/S que se pueden configurar como entradas analógicas.

Una vez configurados ADcon0 y ADcon1, el bit go/done de ADcon0 se pone a 1 para iniciar la conversión y a continuación se monitoriza para sa­ber cuándo se completa la conversión. Cuando la conversión A/D ha finaliza­do, el resultado se carga en el registro ADres, se borra el bit go/done y se activa el bit de aviso de interrupción de con­versión A/D (ADif).

Se dispone de un código de mues­treo que lee el registro ADres y lo tras­lada a los módulos USART y CCP. La conmutación entre los dos canales ana­lógicos de entrada se realiza variando el valor de los bits CHS2:CHS0 del re­gistro ADcon0. La Fig. 1 solo muestra AN1 y AN0 pero se puede seleccionar cualquiera de los canales analógicos de entrada mediante CHS2:CHS0.

Temporizadores

Los microcontroladores tienen tres módulos temporizadores – timer0, ti­mer1 y timer2 – cada uno de los cuales puede generar e interrumpir para in­dicar que se ha producido un evento, como por ejemplo una sobrecarga del temporizador. Timer0 es un temporiza­dor-contador sencillo de 8bit. Timer1 es un temporizador-contador de 16bit formado por dos registros de 8bit que se pueden leer y escribir.

Timer2 es un temporizador de 8bit con un generador de escalas previo y otro posterior, además de un registro de período. Al utilizar ambos genera­dores de escalas ajustados a sus valores máximos, el tiempo de sobrecarga es el mismo que para un temporizador de 16bit. Timer2 es la base de tiempos de PWM cuando el módulo CCP se usa en modo PWM.

Para el modo PWM, los registros a configurar son el registro de período de timer2 (PR2), el registro de control de timer2 (T2con) y el registro PIR1. La sa­lida de PWM tiene una base de tiempos (período) y un tiempo durante el cual la salida permanece en nivel alto (ciclo de trabajo). La frecuencia del PWM es la inversa del período. El período del PWM se determina escribiendo en el registro PR2.

Módulos de captura, comparación y PWM (CCP)

Existen dos módulos CCP, cada uno de los cuales contiene un registro de 16bit que puede funcionar como re­gistro de captura de 16bit, registro de comparación de 16bit o registro de ciclo de trabajo maestro-esclavo PWM de 10bit. El funcionamiento de los mó­dulos CCP es idéntico excepto para el disparador de eventos especiales.

USART

El módulo USART es uno de los dos módulos E/S serie; el otro es el módu­lo SSP. El USART también se conoce como interface de comunicaciones se­rie o SCI. Se puede configurar como un sistema asíncrono full-dúplex que se puede comunicar con dispositivos periféricos como terminales CRT y PC, o bien se puede configurar como siste­ma síncrono half-dúplex que se puede comunicar con dispositivos periféricos como circuitos integrados A/D o D/A y EEPROM serie.

En el programa de muestra se confi­gura como sistema asíncrono

full-dúplex para comunicarse con un PC. En esta aplicación, el USART solo se usa para transmisión. Los registros que es preciso configurar son el registro generador de velocidad de transmisión (SPBRG), registro de estado y control de transmisión (TXSTA), registro de estado y control de recepción (RCSTA) y regis­tro de datos de transmisión (TXreg).

El SPBRG dedicado de 8bit contro­la el período de un temporizador de 8bit de funcionamiento libre. En modo asíncrono, un bit también controla la velocidad de transmisión. En modo síncrono, este bit es ignorado.

En TXSTA se seleccionan el modo asíncrono y la transmisión de 8bit. El bit de habilitación de transmisión (TXen) del TXSTA habilita la transmisión y el bit de estado de registro de desplazamien­to de transmisión (TRMT) es un bit de solo lectura que indica el estado del registro de desplazamiento de transmi­sión (TSR). Para iniciar la transmisión es necesario ajustar el bit de habilitación de puerto serie (SPen) en el registro RCSTA. Al escribir sobre el TXreg se ini­cia la transmisión. El código de ejemplo copia el resultado de la conversión A/D en TXreg. El valor se traslada automá­ticamente al TSR y a la patilla RC6/TX.

Integración de periféri­cos

Una vez configurado cada perifé­rico es necesario interconectarlos. El segmento del código del bucle en el programa de ejemplo muestra cómo se conecta cada periférico con los demás. El diagrama de flujo del firmware de la Fig. 2 combina los procesos de configu­ración e integración.

En primer lugar se inicializan todos los puertos de E/S. También se habilitan los puertos serie para transmisión con el USART y a continuación se configuran los periféricos timer2, convertidor A/D, CCP y USART. Para el convertidor A/D, solo se selecciona un canal analógico de entrada durante el proceso de configu­ración. Se habilita Timer2 y el programa empieza consultando el bit de aviso TMR2IF. TMR2IF se ajusta siempre que se igualen los registros TMR2 y PR2. Cuando se igualan, se borra TMR2IF por software y se inicia la conversión A/D.

Una vez finalizada la conversión A/D, el programa monitoriza el bit TRMT a configurar, indicando que el registro TSR del USART está vacío y listo para la transmisión. Entonces se escribe el valor de la conversión A/D en los registros TXreg y CCPR2L. Luego se selecciona el siguiente canal analógico y se repite el proceso. Las salidas de USART y CCP se reciben y procesan por medio de dispo­sitivos externos de hardware.

Hardware

La Fig. 3 muestra un diagrama es­quemático del hardware. Se trata bá­sicamente de una parte del esquema de la tarjeta de demostración PICDEM 2 Plus con algunos componentes aña­didos.

Los potenciómetros de ajuste de RP1 y RP2 se usan para demostrar un méto­do de conmutación entre canales analó­gicos de entrada. También determinan los niveles de la tensión de entrada que alimentan el convertidor A/D. El LED L1 está conectada a la patilla de salida de PWM, RC1/CCP2, que está en serie con la resistencia limitadora de corrien­te, R1. U2 es un controlador de línea RS232 que proporciona la conexión eléctrica entre el USART y el conector del puerto serie P1.

Cuando la tensión analógica de en­trada alimenta el convertidor A/D, éste convierte la tensión de entrada en el va­lor digital correspondiente. La entrada procede de AN0 o AN1 dependiendo del canal analógico de entrada configu­rado. Los resultados digitales se envían luego al USART y al CCP. El USART envía este valor a un programa del terminal serie, el cual visualiza un valor de salida en un determinado formato dependien­do de la configuración del terminal. Del mismo modo, el PWM del CCP varía el ciclo de trabajo del pulso de salida para controlar el brillo de un LED. wPara la transmisión serie y la visualización, la salida del USART se envía al programa del terminal serie conectando el con­vertidor serie USB-UART al conector de puerto serie en la tarjeta de demostra­ción PICDEM 2 Plus y el puerto USB a un PC, como ilustra la Fig. 4. Se puede utilizar el MCP2200 de Microchip como convertidor serie USB-UART.

Dado que se utilizan dos canales analógicos en el convertidor A/D, tam­bién se visualizan dos valores en el mo­nitor del PC. Se utiliza un programa del terminal serie para capturar, controlar y depurar flujos de datos binarios. La velocidad de transmisión se debe fijar en 2400 baudios, con bits de ocho datos, un bit de parada y sin paridad para adaptar la configuración de soft­ware del USART. El valor mostrado tam­bién se puede ajustar en ASCII, ANSI, hexadecimal, binario u otro tipo de representación numérica, dependiendo de las características del programa del terminal serie.

Conclusión

Para obtener los valores de salidas deseados y visualizarlos, a menudo es necesario configurar cada periférico paso a paso antes de conectarlos entre sí. Es necesario configurar, implementar e integrar el convertidor A/D, los tem­porizadores, el CCP y el USART para obtener los valores deseados a la salía del A/D y visualizarlos.



Etiquetas
periferics d entrada