0% encontró este documento útil (0 votos)
175 vistas38 páginas

msp430 PDF

El documento describe el uso de la plataforma de desarrollo MSP430 Launchpad de Texas Instruments para diseñar sistemas electrónicos embebidos. Explica las características del microcontrolador MSP430 y de la plataforma Launchpad, incluyendo ejemplos de uso de entradas y salidas digitales y analógicas, comunicaciones I2C y SPI, y programación mediante el entorno Energia.

Cargado por

Irann Melchor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
175 vistas38 páginas

msp430 PDF

El documento describe el uso de la plataforma de desarrollo MSP430 Launchpad de Texas Instruments para diseñar sistemas electrónicos embebidos. Explica las características del microcontrolador MSP430 y de la plataforma Launchpad, incluyendo ejemplos de uso de entradas y salidas digitales y analógicas, comunicaciones I2C y SPI, y programación mediante el entorno Energia.

Cargado por

Irann Melchor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

Diseño Electrónico e

Instrumentación Industrial

Sistema empotrado como núcleo


de un Diseño Electrónico.
El MSP430 Launchpad y Energía
El MSP430 Launchpad

Índice
• Introducción
• Familia MSP430 y plataformas Launchpad
• Launchpad MSP-EXP430G2
• Sistema de desarrollo Energia

2
Introducción

 Diseño de sistemas basados en


Microcontrolador:
– Desarrollo conjunto de HW y SW
– Necesidad de conocimientos y equipo
– Problemas interrelacionados
 Uso de sistemas de desarrollo
– Diseños maestros que pueden servir de base
– Diseños integrables en otros mayores

3
Introducción

 Diversas soluciones en el mercado


– Arduino
 Atmel

– Mbed
 NXP
 Freescale
– Launchpad
 Texas Instruments

4
Introducción

 Todas las soluciones tienen en común:


– Bajo coste (10-30$)
– Compilador gratuito y sencillo de usar
– Ejemplos de programación y manejo
– Hardware adicional para conectar
 Shields de Arduino
 Boosterpacks de Launchpad.

5
¿Por qué usar el Launchpad?

 Muy fácil de programar y usar


 Muy robusto
 Escalable en capacidad y complejidad
 Formato DIP y SMD compatibles
 El más barato (todavía)
 Amortización de la inversión

6
Familia MSP430

 MSP430: Mixed Signal Processor


– 16 bits, punto fijo
– Bajo consumo
 100 μA/MHz en activo
 700 nA en reposo
– Periféricos digitales y analógicos
– Más de 500 referencias con distintas capacidades

7
Familia MSP430

 Familia:

8
Plataformas Launchpad

 21 plataformas diferentes, para 21 MCU’s


 Desarrolladas por Texas Instruments
 Muchas de ellas, compatibles pin a pin
 Conectores estándar de 20 y 40 pines

9
Launchpad MSP-EXP430G2

 Value line de la familia.


 Compatible con todos los MC de
la familia G2 en formato DIP
 Programador integrado
 Jumpers para desconexión del
programador
 Dos MC incluidos:
– MSP430G2553
– MSP430G2452
 1 pulsador, 2 led
10
Launchpad MSP-EXP430G2

 Conector mini-usb (cable inc.)


 Conector 20 pines:
– VCC (3.3V), GND
– 16 pines E/S
– Hasta 8 entradas ADC 10 bit
– Hasta 7 salidas pwm
– 1 puerto I2C (2 pines)
– 1 puerto SPI (4 pines)
 Zócalo para cristal (incluido)
11
 Conector de alimentación
Pin-out del Launchpad

 Usando la notación de Energía:

12
Diagrama funcional MSP430G2x53
Consideraciones de diseño

 Entradas digitales:
– Pull-up y pull-down programables
– Entrada Schmidtt-trigger
– “Interrupt capability”

14
Consideraciones de diseño

 Salidas digitales:
– Corriente máxima: 6mA

15
Consideraciones de diseño

 Pines con funcionalidad configurable

16
Consideraciones de diseño

 Registros Entradas/Salidas digitales:

17
Consideraciones de diseño

 Entradas analógicas:
– 8 entradas multiplexadas a un solo ADC
– ADC de 10 bits, 200ksps
– Rango de entrada (VREF) seleccionable:
 VCC
 2.5V
 1.5V
 Tensión externa

18
Consideraciones de diseño

 Puerto SPI:
– Modo Master y Slave
– 3 y 4 hilos (con CS)
– Hasta 10MHz
– Usos típicos: conexión de pantallas, memorias…
 Bus I2C:
– Modo Master y Slave
– Hasta 400 Kbps
– Usos típicos: sensores con salida I2C, memorias I2C
 Puerto UART:
– Disponible en el conector y a través del USB
– En el USB, limitado a 9600bps
– Usos típicos: monitores de depuración, comunicación con
ordenadores
19
Consideraciones de diseño

 Timers:
– Dos temporizadores (A y B)
– 16 bits
– 4 modos de operación (stop, continous, up, up/down)
– 2 ó 3 registros de comparación o captura
– Salidas configurables con capacidad PWM
– Interrupciones
 Reloj:
– 3 fuentes: LFXT1, DCOCLK, VLOCLK
– 3 señales de reloj para elegir: ACLK, MCLK, SMCL

20
Documentación de referencia

 MSP-EXP430G2 LaunchPadTM
Development Kit User’s Guide->
 Datasheet MSP430G2x53->
 MSP430x2xx Family User’s Guide->
Sistemas de desarrollo

 IDE: Integrated Development Enviroment


 Múltiples opciones gratuitas:
– Code Composer Studio
– Energía
– Keil Software
– Iar Systems

22
Sistemas de desarrollo

 Code Composer Studio:


– Opción nativa (de Texas Instruments)
– Posibilidad de usar código C y sketches de
Energía
– Gran capacidad de depuración
– Versión online (cloud) y offline (desktop)
– Bastantes opciones = bastante complejo

23
Sistemas de desarrollo

 Energía:
– Adaptación de Wiring y Arduino a la plataforma
de Texas Instruments
– Community driven
– Capa de abstracción de hardware
 Más simple de manejar
 Menos opciones de configuración
– Sintaxis similar a C

24
Energía

 Entorno de desarrollo
muy simple:
– Sólo 6 Botones:
 verificar,
 programar,
 nuevo fichero,
 cargar y
 grabar
 Monitor por puerto serie

25
Energía

 Programa: Sketch
 Se deben desarrollar dos funciones, ya
predefinidas:
– void setup(): se ejecuta una sola vez, y sirve
para configurar y dar valores iniciales a variables
– void loop(): se ejecuta continuamente
 Estas dos funciones serán llamadas por un
programa, transparente para el programador,
que se encargará de todo lo demás
26
Lenguaje de programación

 Referencia fundamental:
– http://energia.nu/reference/
 Sintaxis básica como C:
– Bucles if, for, while, do..while, switch…case…
– variables int, float, char, signed y unsigned…
– comparaciones >, <, >=, <=, ==, !=
– Operaciones booleanas: &&, ||
– Operaciones aritméticas básicas: +,-, *, /, %

27
Funciones de manejo de pines

 Configuración de pines de E/S digital:


– pinMode(pin, mode) • Números de
pines:
 pin: número del pin (o nombre)
1..20
 mode: INPUT, OUTPUT, INPUT_PULLUP, • Nombres de
INPUT_PULLDOWN pines:
P1_0..P1_7,
P2_0..P2_7
• Nombres
pinMode(P1_2, INPUT_PULLUP); propios:
pinMode(RED_LED, OUTPUT); RED_LED,
pinMode(11, INPUT_PULLDOWN); GREEN_LED,
PUSH2

28
Funciones de manejo de pines

 Lectura y escritura en los pines:


– digitalWrite(pin,valor)
 pin: número del pin (o nombre)
 valor: 1, 0 (o HIGH, LOW)
– int digitalRead(pin)
 pin: número o nombre del pin
 devuelve el valor (0, 1) • como el botón es
activo a nivel
bajo, al negarlo
hago que valor
valor= !digitalRead(PUSH2); sea 1 cuando se
digitalWrite(RED_LED,valor); pulsa

29
Lectura de valores analógicos

 Referencia de tensión:
– analogReference(valor)
 valor es: DEFAULT, INTERNAL1V5, INTERNAL2V5 o
EXTERNAL.
• Si la entrada es
 Lectura de un canal: mayor que 1.25V
– int analogRead(canal) (la mitad de la
referencia), se
enciende el led.
analogReference(INTERNAL2V5);
valor=analogRead(P1_1);
if(valor>=512){digitalWrite(RED_LED,HIGH);}
else{digitalWrite(RED_LED,LOW);}
30
Manejo del PWM (salidas analógicas)

 PWM en determinados pines


– P1_2, P1_6, P2_1, P2_2, P2_4, P2_5 y P2_6
 Frecuencia de 490Hz (aprox.)
 Resolución de 8 bits (0..255) • Como las entradas
– analogWrite(pin, valor) son de 10 bits y
la salida de 8,
divido por 4 para
ajustar escalas
analogReference(INTERNAL2V5);
valor=analogRead(P1_1);
valor=valor/4;
analogWrite(P1_6,valor);
31
Temporización

 Varias funciones para introducir un retardo:


– delay(t): espera t milisegundos
– delaymicroseconds(t) espera t microsegundos
– sleep(t): espera en modo bajo consumo t ms.
 temporización aproximada

void loop(){
delay(500);
digitalWrite(RED_LED,!digitalRead(RED_LED));
}
32
Comunicaciones

 Múltiples métodos de comunicación serie


– UART (puerto serie asíncrono)
– SPI (puerto síncrono)
– I2C (bus síncrono)
– USB (en algunas placas)
– Ethernet (en algunas placas)

33
Puerto serie

 Se usa para depurar y como void setup(){


Serial.begin(9600);
consola …
}
 Configuración:
– Serial.begin(vel) void loop(){
 vel: velocidad en bps [9600] …
Serial.end();
– Serial.end(): libera los pines pinMode(P1_1, INPUT);
 Para usar el puerto sobre
USB, configurar los Jumpers
correctamente:
34
Puerto serie

 Funciones para el envío de datos:


– Serial.print(mensaje)
 mensaje puede ser una cadena o un número
– Serial.println(mensaje)
 igual que la anterior, pero manda un CR+LF al final

if(!digitalRead(PUSH2){
i++;
Serial.print(“Has pulsado ”);
Serial.print(i);
Serial.println(“ veces”);
while(!digitalRead(PUSH2);
}
35
Puerto serie

 Funciones para la recogida de datos:


– Serial.available(): devuelve el número de datos
en el buffer de recepción
– Serial.read(): devuelve el primer byte de la cola
– Serial.ParseInt(): busca un entero en el buffer. Si
no, devuelve 0.

Serial.println("Pulsa una tecla:");


while(!Serial.available()); //Espera tecla
Tecla=Serial.read(); //Lee la tecla
Serial.print("Has pulsado ");
36 Serial.println(Tecla); //La muestra;
Librerías

 El lenguaje se completa con librerías


externas y preinstaladas. • CORE:
• IRremote
 Control de placas conectadas • LiquidCrystal
• Servo
 Se incluyen con #include • Stepper
• CONTRIBUTED:
 No siempre la documentación • WS2812 Library
• Capacitive Touch
es completa • nRF24L01+
• Nokia 5110 LCD

37
Ejemplos

 Ejemplo 1
– Encender o apagar los leds al pulsar el botón
 Con y sin control de rebotes
 Ejemplo 2
– Encender el led verde en función del valor analógico
en A1
 R conectada entre VCC, GND y el pin A1
 Ejemplo 3
– Manejo de los leds por el Puerto Serie
 Ejemplo 4:
– Manejo de dos pines como entradas capacitivas
38  Uso de la librería CAP_TOUCH

También podría gustarte