msp430 PDF
msp430 PDF
Instrumentación Industrial
Índice
• Introducción
• Familia MSP430 y plataformas Launchpad
• Launchpad MSP-EXP430G2
• Sistema de desarrollo Energia
2
Introducción
3
Introducción
– Mbed
NXP
Freescale
– Launchpad
Texas Instruments
4
Introducción
5
¿Por qué usar el Launchpad?
6
Familia MSP430
7
Familia MSP430
Familia:
8
Plataformas Launchpad
9
Launchpad MSP-EXP430G2
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
16
Consideraciones de diseño
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
22
Sistemas de desarrollo
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
28
Funciones de manejo de pines
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)
void loop(){
delay(500);
digitalWrite(RED_LED,!digitalRead(RED_LED));
}
32
Comunicaciones
33
Puerto serie
if(!digitalRead(PUSH2){
i++;
Serial.print(“Has pulsado ”);
Serial.print(i);
Serial.println(“ veces”);
while(!digitalRead(PUSH2);
}
35
Puerto serie
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