Вы находитесь на странице: 1из 6

Diseño con DSPIC30F4013 en lenguaje MikroBasicPro for DSPIC Docente: Ing.

Roger Guachalla Narváez


xoroger@yahoo.es

PRACTICA 06: Temporizador Perro Guardián WDT


1. Objetivos
 Conocer las características del modo ahorro de energía SLEEP en el dsPIC30F4013
 Conocer los bits de configuración en el dsPIC30F4013
 Realizar un programa de Ejemplo, en lenguaje MikroBasicPro for dsPIC, que ejecute la siguiente secuencia:
a) Se configura el WDT para tener un time-out equivalente a 5 segundos (5000 mseg)
b) El procesador adquiere un dato de 4-bit a través del puerto RD (RD0..RD3)
c) Esta dato es multiplicado por 12
d) El resultado se muestre en 8 leds conectados a los pins del puerto RB (RB0…RB7)
e) El procesador se coloca en modo Sleep
f) Transcurrido el tiempo ‘time-out’ de 5 segundos del WDT, el procesador ‘despierta’ y regresa al paso b)
2. Fundamento Teórico
Modo de ahorro de energía SLEEP
Las características del modo SLEEP son las siguientes:

 La fuente de reloj del sistema es detenida. Si se usa un oscilador interno, este se apaga
 El consumo de corriente del dispositivo se reducirá al mínimo siempre y cuando no haya un pin de E/S que este
consumiendo corriente
 El FSCM (Fail-Safe Clock Monitor) no opera durante el modo Sleep ya que el sistema de fuente de reloj esta deshabilitado
 El reloj LPRC continua funcionando en modo Sleep si es WDT está habilitado
 El circuito BOR, si ha sido habilitado, continua operativo en modo Sleep
 El WDT, si ha sido habilitado, es automáticamente limpiado antes de ingresar al modo Sleep
 Algunos periféricos continúan operando en modo Sleep. Esto incluyen pins de E/S que detectan un cambio en la señal de
Entrada, o periféricos que usen una entrada de reloj externa. Cuaquier periférico que opera con la fuente de reloj del
sistema será deshabilitado en modo Sleep

El procesador saldrá o ‘despertará’ del modo Sleep en uno de los siguientes eventos:

 Si se produce una interrupción


 Si ocurre cualquier tipo de Reset
 Si el WDT rebalsa (time-out)

Bits de Configuración del dsPIC30F4013


Antes de comenzar a programar un procesador, es necesario configurar las condiciones de operación de dicho procesador. Estas
condiciones implican el reloj que define la velocidad de ejecución de las instrucciones, el origen o fuente del reloj, la protección contra
inestabilidades de la fuente de poder, la protección contra una ejecución irregular de las partes de un programa (a través del
temporizador WATCHDOG), etc.

La configuración del controlador digital de señal dsPIC30F4013 está determinada mediante cuatro registros:

Registro Nombre Dirección


FOSC Registro de Configuración del Oscilador (Oscillator Configuration Register) 0xF80000
FWDT Registro de Configuración del Temporizador Perro-guardián (Watchdog Timer Configuration Register) 0xF80002
FBORPOR Registro de Configuración de Protección de Voltaje BOR y POR 0xF80004
FGS Registro de Configuración General del Segmento de Código (General Code Segment Configuration Register) 0xF8000A
Registro de Configuración del Oscilador (FOSC)
Este registro se usa para establecer la fuente de reloj del procesador.
La fuente puede ser:
 oscilador RC Interno aunque su precisión es insuficiente para las aplicaciones que requieren control de tiempos
 cristal resonador donde la frecuencia puede variar desde 200kHz a 25MHz
 reloj externo proveniente de otro circuito
Si se utiliza un cristal resonador o un reloj externo, es posible usar el circuito PLL interno para incrementar la frecuencia por un factor
de 4, 8 o 16.
La familia de procesadores dsPIC30F tiene la habilidad de cambiar de fuente de reloj durante la operación (ej. Si una fuente de reloj
falla). Esto permite mayor estabilidad de funcionamiento, mayor versatilidad pues es posible cambiar a una frecuencia superior de
funcionamiento para las partes del programa que requieren mayor velocidad y luego regresar a una baja frecuencia para lograr un
ahorro de energía.
La estructura del registro FOSC se da en la siguiente tabla:

Registro de Configuración del Temporizador Perro-guardián (FWDT)


La funciónes principales del temporizador perro-guardían (watchdog timer) (WDT) son:
 Provocar un resete al procesador en el evento de una mala función del software
 ‘Despertar’ (wake) al procesador si este se encontraba ‘dormido’ (sleep)
El registro FWDT permite activar o desactivar el temporizador perro-guardián y la configuración de su operación.
El (WDT) es independiente del reloj que controla la ejecución de las instrucciones. De esta manera su funcionamiento está asegurado
aun cuando la fuente de reloj falle.
Operación del WDT
La frecuencia del oscilador RC para el WDT es de 512 kHz. Después de la división inicial entre 4 se obtiene 128 kHz. Este valor es
dividido por 2 valores programables: el pre-escalador A y el pre-escalador B. Después de estas divisiones se obtiene el reloj para el
WDT el cual incrementa un registro de 8-bit.

Cuando el valor del registro supera 255 se produce un rebalse (time-out) y el WDT provoca un Reset al procesador o cambia el estado
del procesador de inactivo a activo (wake) si el procesador se encontraba en modo SLEEP.

Para prevenir un Time-out del WDT, el usario debe limpiar periódicamente el WDT usando la instrucción CLRWDT.
Si el WDT rebalsa durante los modos Sleep o Idle, el dispositivo se ‘despertará’ y continuará la ejecución del código después el
instrucción PWRSAV

Habilitación / Deshabilitación del WDT

El WDT se habilita o deshabilita mediante el bit FWDTEN en el registro de configuración FWDT. Los valores de este registro son escritos
durante la programación del dispositivo. Cuente el bit de configuración FWDTEN está en 1, entonces el WDT está habilitado.

Pre-escaladores del WDT

El WDT tiene 2 pre escaladores A y B. El pre escalador A puede ser configurado en 1:1, 1:8, 1:64 o 1:512 mientras que el B puede ser
configurado para dividir entre 1:1 a 1:16. Esto significa que los periodos time-out pueden variar entre 2 mseg a 16 seg.
El periodo de time-out del WDT se calcula mediante la siguiente fórmula:

WDT Period = 2 ms * Prescaler A * Prescaler B


La Tabla muestra los diferentes periodos (en milisegundos) Time-out que se pueden obtener.
El WDT se configura a través del registro FWDT. La estructura de este registro se muestra a continuación:

Registro de Configuración de Protección de Voltaje BOR y POR (FBORPOR)


Este registro configura:
 la activación o desactivación del tiempo de espera para la estabilización de la fuente de voltaje
 la activación o desactivación de un Reset al procesador si la fuente de alimentación cae por debajo de un voltaje específico
 el ajuste de la salida PWM
Estructura del registro FBORPOR
Registro de Configuración General del Segmento de Código (FGS)
Este registro se usa para proteger la lectura y/o escritura de la memoria Flash ROM de programa.
Si el código está protegido, la memoria de programa no puede ser leída. Tampoco se puede programar al dispositivo sin antes borrar
todo el contenido de la memoria de programa.

Estructura del registro FGS

3. Diagrama Esquemático

4. Código fuente MikroBasicPro for DSPIC


5. Palabras de Configuración del DSPIC30F4013 en MikroBasicPro for dsPIC

6. Informe
I. Realizar un RESUMEN (escrito a mano) de por lo menos 4 páginas del fundamento teórico de los “Modos y
Estrategias de ahorro de energía en los procesadores PIC de Microchip”: (Incluir las fuentes de Direcciones WEB así
como el Material Impreso usado para el resumen)
II. (1ra Firma) Realizar en protoboard el Ejemplo: Temporizador Perro Guardián WDT y comprobar su
funcionamiento
III. (2da Firma) Realizar un programa en MikroBasicPro for dsPIC que realice la siguiente secuencia:
a. Se configura el WDT para tener un time-out equivalente a 2 minutos
b. El procesador adquiere un dato de 4-bit a través del puerto RD (RD0..RD3)
c. El dato adquirido se muestra en 4 leds conectados a los pins del puerto RB (RB0…RB3)
d. Si el dato es diferente a 7 se regresa al paso b.
e. Si el dato es igual a 7, los leds en el puerto RB se apagan y el procesador ingresa al modo Sleep durante 2
minutos.
f. Transcurrido el tiempo ‘time-out’ del WDT, el procesador ‘despierta’, emite una señal audible durante 3
segundos, a través de un parlante (piezo-speaker) conectado al bit RB.7 del procesador y regresa al paso b.
(Utilizar la librería ‘Sound Library’ en MikroBasicPro for dsPIC para generar la señal audible)
IV. Conclusiones

7. Bibliografía
 Programming dsPIC (Digital Signal Controllers) in BASIC - Zoran Milivojević, Djordje Šaponjić
 Hoja de datos: dsPIC30F4013
 www.microchip.com