Parte I Pines de E/S Interrupciones

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

LOS PUERTOS DE E/S PUERTO A
MICROCONTROLADORES NOCIONES BÁSICAS.
MICROCONTROLADORES PIC
TEMPORIZADORES.
Programación básica de la interfase RS232 C
Introducción a los MCU´s de Motorola
Teoría de lenguajes y compiladores
Sistemas Digitales Curso 2007/2008 Departamento de Tecnología E l e c t r ó n i c a Periféricos E/S. VIA 65C22 Sistemas Digitales 2º curso Ingeniero Técnico.
Entrada / salida digital con ccs
PROGRAMACION 2 MICROCONTROLADORES BASIC STAMP.
Tecnologías de la Información y la Comunicación Profesor: Eliecer Espinosa.
PICmicro GAMA MEDIA: PIC16F87X
COMPONENTES FISICOS Y LÓGICOS DE LA PC
Microcontroladores PIC
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Microcontroladores PIC16F84A.
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Unidad 2: Organización del CPU
Memorias – Introducción
Automatización I Instrumentación.
Secciones y Segmentos STARTUP
José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores.
INTERRUPCIONES Introducción.
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Maquinas Digitales  La idea principal es dividir el procesamiento de cada una de las instrucciones en una serie de pasos totalmente independientes.
MEMORIAS ROM ASPECTOS BÁSICOS
Overview Sistemas Computacionales
Bus I2C Bus serie síncrono. (+-) SDA: datos SLC: reloj kbits/s (pero también kbits/s y 3.4Mbits/s)
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Integrantes: Christian Blanco Raúl Bejarano
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.

Pure Valve Tone Guitar Amp
MICROCONTROLADORES COMPATIBLES CON 8XC51
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Universidad Técnica Federico Santa María Departamento de Electrónica Seminario II1 Timers A - B. Usos y programación. Paola Rojas Pablo Naveas Carlos Silva.
Microcontrolador MPS430F149
Módulo LCD Controlador HD44780.
1 CONFIGURACION DEL SWITCH Semestre 3 Capítulo 6 Carlos Bran
Comparador A Integrantes Álvaro Bravo Domingo Devotto Nelson Figueroa.
Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Sesión 10: Conversión Análoga a Digital
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
ORDENADORES: EL HARDWARE.
TARJETAS DE RED.
Conceptos Básicos de Programación. Put a pin into input mode Loop Check if the pin is 0 or 5 volts If the pin has 5 volts Do something End if End Loop.
Tema 4: El microcontrolador PIC16F876
Sesión 6: Repaso LCD - Keyboard. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1Universidad Santo.
Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
NOCIONES BÁSICAS COMPUTO II
Estructura Microcontrolador
CORPOCIDES Ing. Emilio Medina Baquero
PICmicro GAMA MEDIA: PIC16F84 [I]
CONTENIDO 2: HARDWARE Y SOFTWARE
Alumno: Gerardo Mario Valdés Ortega
Javier Mauricio Galvis Moreno
ESTADO Registro de ESTADO más utilizado  Es el registro más utilizado.  Ocupa la dirección 03 H tanto del Banco 0 como el Banco 1 de la Memoria de Datos.
Programando puertos en C freescale
José Alvarado – Cristian Anzola
Programación de microcontroladores PIC16f877a en linux
PRINCIPALES Pasos para
CONIMEIRA XVI Bootloaders para microcontroladores PIC de Microchip Presentan: Ing. Ricardo Guadrón Tec. Juan José Guevara Escuela Especializada en Ingeniería.
ESPECIFICACIONES DE OPERACIÓN DEL MICROCONTROLADOR
El Hardware El Software La Comunidad  Software Libre  Hardware Libre  Puerto USB  Fácil de usar  Precio reducido  Completamente independiente 
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Familia MSP Subfamilia MSP430G2 4. Microcontrolador MSP430G Sistema de desarrollo Tema.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
1 CAPA FÍSICA Redes de Computadoras (3) Ing. José Roberto Vignoni.
Transcripción de la presentación:

Parte I Pines de E/S Interrupciones Periféricos del MSP430G2553 Parte I Pines de E/S Interrupciones Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM MSP430G2553 Tope de gama de la familia G2, en formato DIP Contiene todos los periféricos posibles de la familia Memoria máxima: 16kB de FLASH 512B de RAM Varios formatos: PDIP 20 pines TSSOP 20 y 28 pines QFN 32 pines Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Estructura interna Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Pin-out (20pin DIP) Multiplexión de pines (2 o más funciones por pin) Vcc y Vss en los pines “de arriba” Los 14 pines superiores, compatibles con las familias de 14 pines (MSP430G2231, por ejemplo) Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Puertos de E/S Primer periférico a utilizar (o ya utilizado…) Entradas digitales: Resistencias de Pull-up o Pull-down Entradas de interrupción Sensor capacitivo Protegidas contra sobretensiones o sobrecorrientes Salidas digitales: Corriente máxima: 6mA (por pin), 48mA (por puerto) Sistemas Electrónicos 3ºGIERM

Características eléctricas de los pines Características estáticas: Entradas Schmitt trigger Sin zona de incertidumbre Mejora el debouncing Sistemas Electrónicos 3ºGIERM

Características eléctricas de los pines Características estáticas: Salidas: Alimentado a 3V, es compatible TTL 5V Corriente máxima, 6mA Sistemas Electrónicos 3ºGIERM

Características eléctricas de los pines Características estáticas: Al crecer la corriente, cae la tensión de salida Sistemas Electrónicos 3ºGIERM

Registros de los puertos E/S 2 registros de datos, 4 registros de configuración, y 3 registros asociados con las interrupciones: Sistemas Electrónicos 3ºGIERM

Registros de configuración: P1DIR: Dirección individual de cada pin 0: entrada (por defecto) 1: salida P1SEL2, P1SEL: Selección de función del pin: 00: pin de E/S 01: periférico primario 11: periférico secundario 10: reservado P1REN: habilitación de la resistencia de pull up/ down En conjunción con P1OUT, supuesto que el pin es de entrada: P1DIR.x=0, P1SEL2.x=0, P1SEL.x=0, P1REN=1. Si P1OUT.x=0, selecciona Pull-down, y si P1OUT.x=1, pull-up Sistemas Electrónicos 3ºGIERM

Registros de interrupción Cada pin (de P1, P2) puede ser una interrupción. Sólo un vector de interrupción por puerto P1IE: habilita la interrupción de cada pin P1IES: Selecciona flanco de subida o bajada: P1IES.x=1: flanco de bajada P1IES.x=0: flanco de subida P1IFG: Flag de interrupción pendiente. Para distinguir qué entrada provocó la interrupción Se debe borrar por software, escribiendo un 0 Se pueden activar también por sw, para crear una int. sw. Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Registros de datos P1IN: valor de los pines de entrada. Sólo lectura P1OUT: valor para los pines de salida (r/w) También, si pin de entrada, configura la RpUP/DWN Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Esquemático Diferente según el pin Múltiples funciones P1IN, P1OUT, P1DIR, P1REN, P1IRQ, P1SEL… Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Sensor capacitivo Periférico PinOsc: posibilidad de usar los pines como sensores capacitivos sin componentes externos. Oscilador RC. Frecuencia depende de C C varía al acercar el dedo Librerías para el manejo Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Sensor capacitivo La capacidad parásita entre electrodo y tierra cambia al acercar el dedo: Necesidad de calibrado, una vez diseñado Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Modos de uso Para usar los pines habrá que: Configurar pines de E/S Configurar resistencias Pup/dwn de las entradas Actuar sobre las salidas Leer pines de entrada Para usar las interrupciones: Configurar las interrupciones (P1IE) Configurar el flanco (P1IES) Borrar Flags iniciales Habilitar la interrupción (general) del puerto Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM EJEMPLO 1: Usando los led y el botón del Launchpad. Encender el led en P1.0 Mirar la entrada en P1.3, activa a nivel bajo Si está activa, encender el led en P1.6, y si no apagarlo. Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM EJEMPLO 1: Configuración: Bucle: /* Bits 0 y 6 como salida: */ P1DIR = BIT0 | BIT6; /* P1.3 con resistencia de pull-UP */ P1OUT = BIT3; /* Habilita Pull-up en P1.3 */ P1REN = BIT3; P1OUT|=BIT0; //P1.0 encendido P1OUT&=~BIT6; //P1.6 apagado while(1){ if(!(P1IN&BIT3)){ //si P1.3=0(pulsado) P1OUT|=BIT6; //P1.6 on }else P1OUT&=~BIT6; // si no, P1.6 off } Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Interrupciones Romper la secuencia de programa Ejecutar una rutina específica Vector de interrupción: dirección de la rutina Rutina de interrupción: código que se ejecuta Flag de interrupción: bit que indica que se ha producido Antes de saltar, guarda en la pila PC y SR: Sistemas Electrónicos 3ºGIERM

Secuencia de interrupción Debe estar habilitada la máscara local (p.ej. CCIE) y la máscara global (GIE) Proceso completo: Se produce la interrupción Se almacena PC Se almacena SR Lee el contenido del vector (fijo) Lo copia en el PC: salta a la rutina de interrupción Ejecuta la rutina Al salir, se recuperan SR y PC: vuelve a donde estaba Sistemas Electrónicos 3ºGIERM

Vectores de interrupción Específicos de cada MC. Los del MSP430G2553: Sistemas Electrónicos 3ºGIERM

Uso de las interrupciones en CCS5 #pragma vector=TIMER0_A0_VECTOR __interrupt void rutina_T0(void) { //Código de la rutina} Directiva de compilación #pragma Nombres definidos en el archivo correspondiente (msp430g2553.h) #define PORT1_VECTOR (2 * 1u) /* 0xFFE4 Port 1 */ #define PORT2_VECTOR (3 * 1u) /* 0xFFE6 Port 2 */ #define ADC10_VECTOR (5 * 1u) /* 0xFFEA ADC10 */ #define USCIAB0TX_VECTOR (6 * 1u) /* 0xFFEC USCI A0/B0 Transmit */ #define USCIAB0RX_VECTOR (7 * 1u) /* 0xFFEE USCI A0/B0 Receive */ #define TIMER0_A1_VECTOR (8 * 1u) /* 0xFFF0 Timer0)A CC1, TA0 */ #define TIMER0_A0_VECTOR (9 * 1u) /* 0xFFF2 Timer0_A CC0 */ #define WDT_VECTOR (10 * 1u) /* 0xFFF4 Watchdog Timer */ #define COMPARATORA_VECTOR (11 * 1u) /* 0xFFF6 Comparator A */ #define TIMER1_A1_VECTOR (12 * 1u) /* 0xFFF8 Timer1_A CC1-4, TA1 */ #define TIMER1_A0_VECTOR (13 * 1u) /* 0xFFFA Timer1_A CC0 */ #define NMI_VECTOR (14 * 1u) /* 0xFFFC Non-maskable */ #define RESET_VECTOR (15 * 1u) /* 0xFFFE Reset [Highest Priority] */ Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Ejemplo 1.2 Repetir lo mismo que el ejemplo 1, pero por interrupciones En el main, sólo inicialización En la rutina, cambio el pin hasta que se deshabilite (suelte el pulsador) Contador de interrupciones, para comprobar rebotes Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Ejemplo 1.2 En el main: int main(void) { Grace_init(); //Configuración inicial: P1OUT = BIT3; /* P1.3 pull up */ P1DIR = BIT0 | BIT6; /* P1.0 y P1.6 outs */ P1REN = BIT3; /* P1.3 R. enable */ P1IES = BIT3; /* P1.3 act. flanco de bajada */ P1IFG = 0; /* Borra flags pendientes */ P1IE = BIT3; /*Activa interrupcion en P1.3*/ //Valores iniciales: P1OUT|=BIT0;//P1.0 encendido P1OUT&=~BIT6;//P1.6 apagado return (0); //FIN DEL MAIN } Sistemas Electrónicos 3ºGIERM

Sistemas Electrónicos 3ºGIERM Ejemplo 1.2 En la rutina de interrupción: Si borramos el flag al principio, errores por rebotes int n=0; /* variable GLOBAL para depuracion*/ #pragma vector=PORT1_VECTOR __interrupt void PORT1_ISR_HOOK(void) { P1OUT|=BIT6; //P1.6 encendido while(!(P1IN&BIT3)); //Espera que se desactive P1OUT&=~BIT6; //P1.6 apagado P1IFG&=~BIT3; //borra flag de interrupcion n++; //incrementa contador ints } Sistemas Electrónicos 3ºGIERM