microcontroladores pic interrupciones …edii.uclm.es/~miniesta/mc_pic_2.pdfsistemas electrÓnicos...
TRANSCRIPT
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32
MICROCONTROLADORES PICINTERRUPCIONES
• Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento que provoca la interrupción. • El vector de interrupción se encuentra en la dirección 04H de la memoria de programa.• Al terminar la rutina de servicio (RETFIE) se retoma el programa en el ‘punto de ruptura’.• Fuentes de interrupción:
• Pin INT, cambio en los terminales del puerto B (RB7:RB4).• Overflow en los temporizadores.• Cambio en el comparador.• Fin de escritura en la memoria EEPROM de datos.• Relacionadas con el Puerto Paralelo Esclavo, con la USART, con el fin de conversión A/D y en general con los módulos periféricos con que puede contar una MCU.
• Gestión de interrupciones mediante registros:• INTCON: registro general de control y estado.• En función de los periféricos disponibles por una MCU:
•PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada periférico.• PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el periférico que interrumpe.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 33
MICROCONTROLADORES PIC
INTERRUPCIONESREGISTRO INTCON
Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones1 = Habilita las interrupciones.0 = Inhibe todas las interrupciones.
Se pone a cero cuando se reconoce una interrupción (para evitar interrupciones anidadas) y a 1 cuando se vuelve de su rutina de servicio.
Bit 6 PEIE: (Peripheral Interrupt Enable) bit de habilitación de interrupciones de periféricos.1 = Habilita las interrupciones desde los periféricos.0 = Inhibe las interrupciones desde los periféricos.
(3) En MCU con un solo periférico puede ser EEIE o ADIE
Bit 5 T0IE: (Timer 0 Overflow Interrupt Enable) bit de habilitación del Timer 0.1 = Habilita la interrupción con el desbordamiento del Timer 0.0 = Inhibe la interrupción con el desbordamiento del Timer 0.
Bit 4 INTE: (INT External Interrupt Enable) bit de habilitación de interrupción desde el pin de entrada INT.1 = Habilita la interrupción.0 = Inhibe la interrupción.
(2) Algunas MCU no disponen de esta característica
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 34
MICROCONTROLADORES PIC
INTERRUPCIONESREGISTRO INTCON
Bit 3 RBIE: (RB Port Change Interrupt Enable) bit de habilitación de interrupción con el cambio de RB7:RB4
1 = Habilita la interrupción.0 = Inhibe las interrupción.
(2) Algunas MCU no disponen de esta característica(1) También se puede encontrar con el nombre GPIE.
Bit 2 T0IF: (Timer 0 Overflow Interrupt Flag).1 = Interrupción producida por el desbordamiento del Timer 0 (debe ser puesto a cero por SW).0 = El Timer 0 no se ha desbordado.
Bit 1 INTF: (INT External Interrupt Flag).1 = Interrupción producida por INT (debe ser puesto a cero por SW).0 = INT no ha interrumpido la MCU.
(2) Algunas MCU no disponen de esta característica
Bit 0 RBIF: (RB Port Change Interrupt Flag).1 = Interrupción producida por el cambio en alguno de los bits RB7:RB4 (debe ser puesto a cero por SW).0 = RB7:RB4 no han interrumpido la MCU.
(2) Algunas MCU no disponen de esta característica(1) También se puede encontrar con el nombre GPIF.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 35
MICROCONTROLADORES PIC
INTERRUPCIONESLÓGICA DE INTERRUPCIONES
RegistrosPIR/PIE
RegistroINTCON
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 36
MICROCONTROLADORES PIC
INTERRUPCIONES
TIEMPO DE LATENCIAEs el tiempo que transcurre desde que se produce un evento de interrupción hasta que se ejecuta la instrucción de la dirección 04H.
• Interrupciones síncronas (normalmente internas) tiempo de latencia= 3 Tcy.
• Interrupciones asíncronas (normalmente externas) tiempo de latencia= 3-3,75 Tcy.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 37
MICROCONTROLADORES PIC
INTERRUPCIONES
(1) El flag INTF se muestrea cada Q1.(2) El tiempo de latencia comprendido entre 3 y 3,75 Tcy.(3) CLKOUT disponible solo si el oscilador es RC.(4) Anchura mínima de pulso requerida en función de la MCU (para el 16F84A 20ns.)(5) INTF debe ponerse a cero por Sw.
Respuesta a un evento en el pin INT.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 38
MICROCONTROLADORES PIC
INTERRUPCIONES
Fases en la gestión de interrupciones:
1. PC->Pila y GIE=02. PC=0004H3. Se salvan los registros cuyo contenido se desee conservar (W,
STATUS, etc.) ≡ PUSH4. Se determina la fuente de interrupción (interrogando los flags
correspondientes)5. Se ejecuta la rutina de servicio a la interrupción6. Se borra el flag relacionado con la interrupción atendida.7. Se restauran los registros ≡ POP8. Se ejecuta RETFIE9. Pila->PC y GIE=1
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 39
MICROCONTROLADORES PIC
INTERRUPCIONES
Salvaguarda de W y el registro STATUS, en un rutina de servicio a una interrupción:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 40
MICROCONTROLADORES PIC
PUERTOS DE E/S
• Se pueden considerar los periféricos más sencillos, implementan las entrada-salida de la MCU.
• Se utilizan mediante dos registros: PORTx (datos) y TRISx (control)• Pueden implementarse hasta siete puertos de características
distintas (x puede sustituirse con identificadores de puerto desde la A hasta la G)
• Cada uno de los bits de TRISx establece la dirección de la información de su correspondiente bit (pin) en PORTx.
• Un 1 configura el pin como entrada. Una operación de lectura obtiene el nivel presente en el terminal implicado.
• Un 0 configura ese pin como salida, manteniendo el bit de salida mediante un latch.
• Después de un reset todos los bits de TRISx son 1.• Los pines de entrada/salida pueden estar multiplexados con varios
periféricos. Para conocer con exactitud las características de cada puerto en concreto es imprescindible. Consultar las hojas de características de cada dispositivo.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 41
MICROCONTROLADORES PIC
PUERTOS DE E/S
Puerto de entrada/salida típico:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 42
MICROCONTROLADORES PIC
PUERTOS DE E/S
Puerto A:• Tiene 6 bits.• RA4 Tiene entrada Trigger Schmitt y salida drenador abierto. • El resto admiten niveles de entrada TTL y salida CMOS.
Diagrama de bloques para RA3:RA0 y RA5.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 43
MICROCONTROLADORES PIC
PUERTOS DE E/SPin RA4:
Ejemplo de inicialización del puerto A
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 44
MICROCONTROLADORES PIC
PUERTOS DE E/S
Puerto B:• Puerto de 8 bits bidireccionales
Diagrama de bloquespara RB3:RB0.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 45
MICROCONTROLADORES PIC
PUERTOS DE E/S
Diagrama de bloquespara RB7:RB4.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 46
MICROCONTROLADORES PIC
PUERTOS DE E/S
• La escritura en un puerto implica una lectura-modificación-escritura.• Puede acarrear problemas en operaciones de escritura sobre puertos en los
que unos pines están configurados como entradas y otros como salidas:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 47
MICROCONTROLADORES PIC
PUERTOS DE E/SOperaciones sucesivas sobre un puerto de entrada salida
• Escritura y lectura sobre el puerto B:
A frecuencias de reloj más altas, una escritura seguida por una lectura puede ser problemática debido a la capacidad externa, en esos casos puede ser conveniente utilizar NOP entre esas instrucciones.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 48
MICROCONTROLADORES PIC
PUERTOS DE E/S
Operaciones sucesivas sobre un puerto de entrada salida• Operaciones que implican lectura-modificación escritura:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 49
MICROCONTROLADORES PIC
TIMER 0
Características:• Contador temporizador de 8 bits• Accesible mediante operaciones de lectura y escritura.• Incorpora un prescaler de 8 bits programable por Sw.• Reloj interno o externo.• Selección del flanco del reloj externo• Puede producir una interrupción al debordarse.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 50
MICROCONTROLADORES PIC
TIMER 0REGISTRO OPTION_REG
Bit 7 RBPU’: bit de habilitación de resistencias pull-up1 = Inhibidas0 = habilitadas
Bit 6 INTEDG: bit de selección del flanco activo de la interrupción INT1 = Flanco ascendente0 = Flanco descendete
Bit 5 T0CS: bit de selección de reloj para TMR01 = Transición del pin T0CKI (reloj externo).0 = Reloj interno (CLKOUT).
Bit 4 T0SE: bit de selección de flanco cuando el reloj es externo1 = Flanco de bajada de T0CKI.0 = Flanco de subida de T0CKI
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 51
MICROCONTROLADORES PIC
TIMER 0REGISTRO OPTION_REG
Bit3 PSA: bit de asignación del prescaler1 = Prescaler asignado al WDT.0 = Prescaler asignado al TIMER 0.
Bit 2:0 PS2:PS0: Valor de división del prescaler
PS2 TMR0 WDT0 0 0 1:2 1:10 0 1 1:4 1:20 1 0 1:8 1:40 1 1 1:16 1:81 0 0 1:32 1:161 0 1 1:64 1:321 1 0 1:128 1:641 1 1 1:256 1:128
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 52
MICROCONTROLADORES PIC
TIMER 0
Escritura en TMR0 (reloj interno, sin prescaler):
Una escritura en TMR0 provoca dos ciclos de instrucción (2Tcy) en los que no se puede volver a escribir en él.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 53
MICROCONTROLADORES PIC
TIMER 0
Escritura en TMR0 (reloj interno, prescaler 1:2):
•Una escritura en TMR0 actualiza el registro e inicializa el prescaler.•El incremento del temporizador 0 (TMR0+prescaler) se inhibe durante dos ciclos de instrucción (2 Tcy), como el prescaler está configurado como divisor por 2, el temporizador 0 no se incrementará durante 4 tiempos de reloj.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 54
MICROCONTROLADORES PIC
TIMER 0
Temporización de la interrupción del timer 0:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 55
MICROCONTROLADORES PIC
TIMER 0
Sincronización con reloj externo:
El reloj/prescaler se muestrea en Q2 y Q4
T0CKI debe se 1 al menos 2TOSC
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 56
MICROCONTROLADORES PIC
TIMER 0
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 57
MICROCONTROLADORES PIC
TIMER 0
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 58
MICROCONTROLADORES PIC
TIMER 0