los recursos que se considerarán son : interrupciones …fsantiag/pics/sesion 5.pdf ·...

9
1 1 RECURSOS AUXILIARES Los recursos que se considerarán son : Interrupciones Re inicialización o Reset Modo de reposo o de bajo consumo 2 INTERRUPCIONES Una interrupción es la ocurrencia de una condición un evento- que ocasiona la suspensión temporal de un programa mientras se atiende al evento con otro programa. Una vez que se concluya la atención a la interrupción, se continúa con la ejecución del programa principal. Al utilizar un sistema manejador de interrupciones, se tiene la ilusión de que se están haciendo diferentes tareas en forma simultánea. Al programa que trata con una interrupción se le conoce como rutina de servicio a la interrupción (ISR) o manejador de interrupción. La rutina de atención para una interrupción debe colocarse en una dirección pre-establecida por Hardware, formando parte de un vector de interrupciones.

Upload: lethuan

Post on 27-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

1

1

RECURSOS AUXILIARES

Los recursos que se considerarán son :

• Interrupciones

• Re inicialización o Reset

• Modo de reposo o de bajo consumo

2

INTERRUPCIONES

Una interrupción es la ocurrencia de una condición –un evento-

que ocasiona la suspensión temporal de un programa mientras se

atiende al evento con otro programa. Una vez que se concluya la

atención a la interrupción, se continúa con la ejecución del

programa principal.

Al utilizar un sistema manejador de interrupciones, se tiene la

ilusión de que se están haciendo diferentes tareas en forma

simultánea.

Al programa que trata con una interrupción se le conoce como

rutina de servicio a la interrupción (ISR) o manejador de

interrupción.

La rutina de atención para una interrupción debe colocarse en una

dirección pre-establecida por Hardware, formando parte de un

vector de interrupciones.

Page 2: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

2

3

INTERRUPCIONES

Un aspecto importante, es que los eventos pueden ocurrir en cualquier

momento, es decir, en forma asíncrona.

Programa principal

Programa sin interrupciones

Tiempo

Principal

Programa con interrupciones

Tiempo

RSI

Principal

RSI

Principal

RSI

Principal

Nivel de la

Interrupción

Nivel

Base

* ***** *

**

* Interrupción

** Instrucción de retorno de interrupción

4

INTERRUPCIONES EN LOS PICS

Se tienen 4 fuentes de Interrupción:

Interrupción externa a través de la terminal RB0/INT

Por sobre flujo del temporizador TMR0

Por cambios en las terminales 4:7 del puerto B (RB4:RB7)

Al completar una escritura en la EEPROM

El vector de interrupciones es único y está ubicado en la dirección

4 de la memoria de código.

Por software deberá investigarse la fuente de interrupción, para

atenderse. Y también deberá definirse la prioridad de atención, en

caso de que se genere mas de una interrupción en forma

simultánea.

Page 3: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

3

5

INTERRUPCIONES EN LOS PICS

El registro INTCON (0x0B) permite habilitar a cada una de las

interrupciones, además de que contiene un habilitador global (GIE,

INTCON<7>).

Cuando ocurre una interrupción:

Se concluye con la instrucción que en ese momento se esté

ejecutando

GIE es puesto en bajo para evitar interrupciones futuras

En la pila se guarda la dirección de la instrucción siguiente

El PC se carga con el valor 0004h, para dar atención a la interrupción.

La instrucción RETFIE finaliza la atención a la interrupción,

provoca que el PC extraiga al tope de la pila y pone a GIE en alto.

6

REGISTRO INTCON

Page 4: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

4

7

RELACION LOGICA DE LAS INTERRUPCIONES

8

EXPLORANDO LA CAUSA DE LA INTERRUPCION

Puesto que son 4 las causas posibles de una interrupción, por Software

deberá hacerse la decodificación, como se muestra en el siguiente código:

ORG 0x0004

GOTO Interrup

...........

Interrup:

BTFSC INTCON, 1

CALL INTE ; Atiende la interrupción externa

BTFSC INTCON, 2

CALL TIMER ; Atiende la Interrupción del Timer

BTFSC INTCON, 0

CALL PUERTAB ; Atiende la interrupción del Puerto B

BSF STATUS, 5 ; Cambia al Banco 1

BTFSC EECON1, 4

CALL EEPROM ; Atiende la interrupción de la EEPROM

BSF STATUS, 5 ; Regresa al Banco 0

RETFIE

La prioridad en las interrupciones se define con el orden de atención a las

distintas fuentes de interrupción.

Page 5: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

5

9

Ejemplo : Manejo de Interrupciones

(Alarma para automóvil)

PIC16F84

RB4

RB5

RB6

RB7

Botones para

cada una

de las puertas

RB0Habilitador

de la Alarma

RA0

Tono de 250 Hz

10

REINICIALIZACION O RESET

Los PIC16X8X tienen cinco causas que provocan la reinicialización

del sistema, que consiste en cargar al PC con el valor 000h (Vector

de reset) y poner los estados de los bits de los registros especiales

(SFR) con un valor conocido.

Conexión de alimentación. POR (Power On Reset)

Activación de la terminal MCLR (Master Clear Reset) en

funcionamiento normal

Activación de la terminal MCLR (Master Clear Reset) en estado de

reposo

Desbordamiento del WDT en funcionamiento normal

Desbordamiento del WDT en modo de reposo

Page 6: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

6

11

VALORES DE LOS SFR Y W DESPUÉS DE UN RESET

12

ESQUEMA ELECTRONICO PARA LA GENERACION DEL RESET

Page 7: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

7

13

SEÑALES QIE INTERVIENEN EN EL RESET

Caso 1

Caso 2

MCLR no cambia junto con VDD

14

MCLR cambia junto con VDD

SEÑALES QIE INTERVIENEN EN EL RESET

Page 8: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

8

15

EL MODO DE REPOSO O BAJO CONSUMO

Está caracterizado por el bajo consumo de energía y es

recomendado para aquellas aplicaciones que estén en espera de

que suceda algún suceso asíncrono.

El consumo típico de un PIC es de 2 mA, reduciéndose a 10 uA en

modo de reposo, una pila puede tardar hasta 2 años.

Para entrar al modo de reposo se ejecuta la instrucción SLEEP, el

sistema queda congelado por que el oscilador interno se detiene y

los puertos mantienen su estado.

Se sugiere conectar las terminales no usadas a Vdd para evitar

fugas de corriente.

16

EL MODO DE REPOSO O BAJO CONSUMO

Para salir del modo de reposo existen tres alternativas:

Activación externa del MCLR para provocar un Reset.

Desbordamiento del WDT si se quedo operando en el modo de reposo

Generación de una interrupción. Pero como TMR0 está detenido, sólo

pueden producirse los otros tres tipos de interrupción.

Cuando se despierta al PIC, se desarrolla la secuencia del

oscilador OST, que tarda 1.024 Tosc para estabilizar la frecuencia

de trabajo, y luego se pasa a ejecutar la siguiente instrucción a

SLEEP (PC + 1).

Page 9: Los recursos que se considerarán son : Interrupciones …fsantiag/PICS/sesion 5.pdf · Interrupción externa a través de la terminal RB0/INT Por sobre flujo del temporizador TMR0

9

17

PROGRAMACIÓN EN SERIE DE LOS PICS 16X8X

Los PIC permiten que se grabe su memoria de código sobre el

mismo circuito de la aplicación.

Esto permite a los fabricantes de productos finales el armado de

tarjetas con el microcontrolador sin grabar, para que en el

momento de la venta se incluya la versión mas actualizada.

La programación en serie requiere de 5 líneas:

Reloj de sincronización (RB6)

Línea serial de datos (RB7)

Voltaje de alimentación (Vdd)

Nivel de referencia o tierra (Vss)

Voltaje de programación (entre 12 y 14 V) (MCLR*/Vpp)

18

PROGRAMACIÓN EN SERIE DE LOS PICS 16X8X