Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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-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.
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.