Sei sulla pagina 1di 6

ARTICULO TECNICO

Microchip Tips & Tricks...

Por el Departamento de Ingeniera de EduDevices.


Continuando con nuestra serie de consejos y trucos para aprovechar mejor a nuestros PICs, abordaremos consejos orientados a los miembros ms poderosos y populares de las familias 16F y 18F. Como siempre, esperamos que les sean de utilidad.

TIP N 27 Habilitando los modos de funcionamiento IDLE.


La familia de PIC18F nanoWatt presenta mltiples modos Idle que pueden ser usados para reducir la energa consumida. Seteando el bit de Idle (OSCCON<7>) y ejecutando un "Sleep" puede apagarse el CPU y permitir a los perfricos continuar corriendo. En estos estados el consumo de energa puede reducirse hasta un 96%.

TIP N 28 Como eliminar el cristal / resonador o la red RC de temporizacin.


Si no se necesita una frecuencia de "clock" muy precisa use el clock interno. Tiene mejor estabilidad de frecuencia que un oscilador RC externo. El clock interno puede generar tambin una de las varias frecuencias para usar en el microcontrolador, permitiendo que para reducir la demanda de corriente se reduzca la frecuencia del sistema. Cuando se requiera una velocidad mayor, puede seleccionar la frecuencia adecuada por medio del control del programa.

TIP N 29 Conmutacin de los clocks duales en los PIC16F.


La familia de PIC16F62X est equipada con un segundo oscilador interno de baja velocidad. Este oscilador est disponible cuando la fuente de clock que se configura es la RC interna (INTRC), Externa RC* (EXTRC) o External Resistor** (ER). El oscilador interno puede ser usado para operar el microcontrolador a velocidades bajas para reducir la energa consumida. La velocidad del segundo oscilador no est calibrada, por lo que se espera un 20% - 40% de tolerencia. Para cambiar los osciladores, simplemente cambie el bit 3 (OSCF) en el registro PCON. Cuando el OSCF est clear (0), el oscilador de baja velocidad es usado. Si el OSCF est seteado (1), se utiliza el oscilador seleccionado en los bits de CONFIG. * El modo EXTRC est disponible en los dispositivos A. ** El modo ER est disponible en los dispositivos sin A. Los dispositivos mas nuevos tiene un clock interno multi-speedclock. Pueden variar desde 8 MHZ hasta 31 kHz en 8 pasos. Esta velocidad es seleccionada usando el registro OSCCON.

TIP N 30. Calibracin del Oscilador RC Interno por problemas de VDD o Temperatura.
El oscilador RC interno calibrado de fabrica puede requerir una nueva calibracin debido al cambio de temperatura y de Vdd. El Timer1 puede ser utilizado para calibrar el oscilador interno conectando un cristal de 32.768Khz. Es aconsejable recurrir a la nota de aplicacin AN244, Internal RC Oscillator Calibration para obtener detalles completos de la aplicacin.

La calibracin se basa en una frecuencia medida del oscilador interno RC. Por ejemplo, la frecuencia elegida es 4 MHz, sabemos que el tiempo de una instruccion es de 1 s (Fosc/4) y el Timer1 tiene un perodo de 30.5 s (1/32.768 kHz). Esto significa que en un perodo del Timer1 el core puede ejecutar 30.5 instrucciones. Si los registros del Timer1 TMR1H:TMR1L son cargados con un valor conocido, se puede calcular la cantidad de intrucciones que van a ser ejecutadas en un Timer1 overflow. El nmero calculado se compara luego con el nmero de instrucciones ejecutadas por el core. Con el resultado, podemos determinar si se necesita una re-calibracin, y si la frecuencia debe ser aumentada o disminuida. Este ajuste usa el registro OSCTUNE, que tiene un rango de 12% en 0.8% pasos.

TIPs & Tricks para utilizar correctamente los mdulos CCP y ECCP.
Los modulos de "Capture", "Compare" y PWM (CCP) que se encuntran en muchos de los microcontroladores de Microchip son utilizados principalmente para medir y controlar seales de pulsos basados en tiempo. El "Enhanced CPP"(ECCP), disponible en algunos dispositivos de Microchip, se diferencia del CPP regular porque provee una funcionalidad mejorada del PWM como soporte para "full-bridge" y "half-bridge", "dead-band delay" programable y PWM "auto-shutwdown" mejorado. Los mdulos ECCP y CCP son capaces de hacer una amplia variedad de tareas. Esta serie de TIPs & Tricks describe algunas de las guias bsicas de cmo llevar adelante estos mdulos en cada modo y tambien dar sugerencias para aplicaciones prcticas. TIPs & Tricks en el modo CAPTURE. En el modo "Capture", el valor de 16-bits del Timer 1 se captura en CCPRxH:CCPRxL cuando ocurre un evenvo en el pin CCPx. Un evento es definido como se describe en los siguientes puntos y es configurado con el registo CCPxCON<3:0>: Cada "falling edge" Cada "rising edge" Cada "4th rising edge" Cada "16th rising edge" Cuando debo usar el "Capture Mode"? El modo de captura es usado para medir el tiempo que transcurre entre dos eventos. Un evento, por lo general, es tanto un flanco ascendente o descendente. (Ver Figura 1) Un ejemplo de una aplicacin donde el modo "Capture" es til es leyendo la seal provista por un un acelermetro.

stos varian el "duty cycle" de una onda cuadrada proporcionalmente a la aceleracion que actua en el sistema. Configurando el mdulo CPP en modo "Capture", el microcontrolador PIC puede medir "duty cycle" del acelermetro con poca intervencin del firmware del microcontrolador. El TIP N 34 entra en detalle de como medir el "duty cycle" configurando el mdulo CPP en modo "Capture".

Fig. 1 Definiendo Eventos. Lista de Registros de los mdulos ECCP / CCP.

TIP N 31 Midiendo el perodo de una onda rectangular.

Fig. 1-1 Midiendo el perodo de una seal rectangular. 1. Configurar los bits de control CCPxM3:CCPxM0 (CCPxCON<3:0>) para capturar cada flanco ascendente de la seal. 2. Configurar el preescaler del Timer1 prescaler para que corra TMAX sin "overflow". 3. Habilite la interrupcin del CCP (CCPxIE bit). 4. Cuando el CCP interrumpe: a) Restar el tiempo capturado (t2) menos el tiempo capturado (t1) y gurdelo. (use el Flag de la interrupcion del timer1 como inficador de "overflow"). b) Guarde el tiempo capturado (t2). c) Limpie el flag del Timer1 si es necesario. El resultado obtenido en el paso 4 es el perodo (T). Nota 1: TMAX es el mximo perodo del pulso que puede ocurrir.

TIP N 32 Mediendo el perodo de una onda cuadrada por promediacin.

Fig. 2.1 Medicin del perodo por promedio de 16 x T.

1. Configurar los bits de control CCPxM3:CCPxM0 (CCPxCON<3:0>) para capturar cada "16th rising edge" de la seal. 2. Confiurar el prescaler del Timer1 para que corra 16 TMAX sin "overflow". 3. Habilite la interrupcin del CCP (CCPxIE bit). 4. Cuando el CPP interrumpe: a) Reste el tiempo capturado (t2) menos el tiempo capturado (t1) y guardelo (use el flag de la interrupcin del Timer1 como indicador de "overflow"). b) Guardar el tiempo capturado (t2). c) Limpiar el flag del Timer1 si es necesario. d) Desplazar a la derecha 4 veces el valor obtenido en 4a) para dividirlo por 16. Este resultado es el perodo (T). Nota 1: TMAX es el mximo perodo del pulso que puede ocurrir. Las siguientes son ventajas de este mtodo comparado con medir los perodos manualmente: Menos interrupciones del CCP facilitan el flujo del programa. El uso de promedios brindan una excelente inmunidad hacia el ruido.

Potrebbero piacerti anche