Este documento describe las características del microcontrolador MSP430, incluyendo su bajo consumo, integración, costo y arquitectura. El MSP430 tiene un CPU RISC de 16 bits, memoria flash hasta 256 KB, entradas/salidas digitales y analógicas, temporizadores, y puede operar desde 1.8V hasta 3.6V. El documento también explica el uso de periféricos como el ADC, amplificadores operacionales, y cómo programar el MSP430 usando compiladores como IAR y CCS.
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Introducción al microcontrolador MSP430
1. UBI
>> Contents
Introducción al microcontrolador
MSP430
Julio Jornet Monteverde
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
3. UBI
>> Contents
Características
• Integración: Capaz de implementar un diseño completo en un chip
• Coste: Es un dispositivo de bajo coste (4$ LaunchPad, 1$ chip)
• Frecuencia de reloj: Frecuencia de reloj baja
• Consumo: dispositivo con menor consumo. Autosuficiente.
- 0,1 uA para retención de datos en RAM
- 0,8 uA para funcionar el reloj en tiempo real
- 250uA/MIPS en funcionamiento activo.
• Voltaje de operación bajo: desde 1.8V hasta 3.6V
Características Principales:
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
4. UBI
>> Contents
Características
Analógicas:
• ADC 10/12/16 bits y DAC dual de 12 bits
• Temporizadores comparadores
• Amplificadores Operacionales
• Supervisor de suministro de Voltaje
• Sensor de Temperatura Interno, Termistor
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
CPU RISC de 16 bits
• Diseño nucleo compacto que reduce el consumo y coste
• 16 bits Bus de datos
• 27 instrucciones
• 7 modos de direccionamiento
• Vector de Interrupción
5. UBI
>> Contents
Características
Flexibilidad:
• Hasta 256 KB de Flash
• Hasta 100 pines
• USART, UART, I2C, Temporizadores
• Driver LCD
• Sensor de Temperatura Interno, Termistor
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Rendimiento:
• Instrucciones capaces de procesar bits, bytes o palabras
• Conjunto de Instrucciones reducidas
• Compilador eficiente
• Amplio rango de periféricos
• Sistema de Reloj flexible
7. UBI
>> Contents
Pines
Pin-out:
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
• Vcc, Vss: Alimentación y masa
• P1.0~P1.7, P2.0~P2.7 son para IN/OUT digitales
• TA0CLK, TA0.0 y TA0.1 están asociados con Timer_A
• A0~A7, son las entradas analógicas del ADC10
• Vref- y Vref+ es la referencia del voltaje del convertidor
• ACLK y SMCLK son salidas de reloj para Micros
• XIN y XOUT son las conexiones para un cristal
• RST es una señal Reset activada por cero
• NMI es la entrada de Interrupción no enmascarada
9. UBI
>> Contents
Modos de Operación
Modos configurables por SW:
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Mode CPU and Clocks
Active CPU active. All enabled clocks active
LPM0 CPU, MCLK disabled. SMCLK, ACLK active
LPM1 CPU, MCLK disabled. DCO disabled if not used for SMCLK. ACLK
active
LPM2 CPU, MCLK, SMCLK, DCO disabled. ACLK active
LPM3 CPU, MCLK, SMCLK, DCO disabled. ACLK active
LPM4 CPU and all clocks disabled
10. UBI
>> Contents
Modos de Operación
Ejemplo LPM3:
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
0 0 0 0 1 0 1 0
Start
Bit
0 1 2 3 4 5 6 7 Stop
BitData Bit number
Mark (1)
Space (0)
0x50 = ASCII “P”
LSB MSB
Signal on P1.2
Active mode
LPM3
CPU mode ISR
Duty cycle =
Total time in ISRs
10 bits cycle time
11. UBI
>> Contents
Módulo CLKs
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Señales de Reloj:
• ACLK: Clock Auxiliar. La fuente de reloj proviene del módulo Oscilador LFXT1
con un divisor de 1, 2, 4 ó 8. ACLK se puede utilizar como señal para Timer A y B.
• MCLK: Master Clock. La señal proviene del módulo Oscilador LFXT1, VLO ó
DCOCLK con un divisor de 1, 2, 4 ó 8. MCLK se utiliza para la CPU y el sistema.
• SMCLK: Sub-main Clock. La señal proviene de VLOCLK o DCOCLK con un
divisor de 1, 2, 4 ó 8. SMCLK puede utilizarse como fuente para Timer A y B.
Fuentes de Reloj:
• VLOCLK: Very Low Frec. 12 KHz.
• LFXT1CLK: Oscilador de Cristal Externo, 32.768 KHz
• DCOCLK: Oscilador Interno (DCO). 100KHz – 1MHz
Basic Clock Module
VLO
LFXT1
DCO
ACLK
MCLK
SMCLK
12. UBI
>> Contents
Memoria
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Direcciones de 16 bits,
direccionadas por Bytes
Palabras alineadas:
Las direcciones de una palabra son
la dirección del Byte con la menor
dirección -> Direcciones Pares
Orden Little-endian:
El Byte de menor orden se
almacena en la posición más baja y
el Byte de mayor peso se almacena
en la posición alta.
13. UBI
>> Contents
Espacio de Direccionamiento
Mapeado en un solo espacio de direcciones contiguo:
• Toda la memoria incluida la RAM, Flash/ROM, memoria de
información, registro de funciones especiales y registros de periféricos.
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
14. UBI
>> Contents
Tabla Vector Interrupciones
Mapeada al final del espacio en memoria:
• Las 16 words superiores de Flash/ROM: 0FFE0h – 0FFFFh
• La prioridad de la interrupción se incrementa con su dirección
• Existe una máscara de interrupciones
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
15. UBI
>> Contents
CPU y Registros
• Bus direccionamiento 16 bits – MAB
• Bus de datos 16 bits – MDB
• 4 Reg. de Usuario, 12 Reg. de trabajo
• Acceso a Registros y la Memoria en formato
Word ó Byte
• Permite la transferencia directa de datos entre
Memoria sin pasar por los Registros
• Acceso a los Registros con Instrucciones de un
solo ciclo de reloj
• Constantes de Programación generadas por CG
• ALU de 16 bits: suma, resta, comparación y
logicos
• Master CLK (MCLK) controla la CPU
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
16. UBI
>> Contents
Registros asociados con P1
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Registers
(Mem
Addr)
Functions Descriptions
P1IN
(0x0020)
Port 1 input This is a read-only register that reflects the
current state of the port's pins.
P1OUT
(0x0021)
Port 1 output The values written to this read/write register
are driven out to corresponding pins when they
are configured to output.
P1DIR
(0x0022)
Port 1 data
direction
Bits written as 1 (0) configure the
corresponding pins for output (input).
P1SEL
(0x0026)
Port 1 function
select
Bits written as 1 (0) configure corresponding
pins for use by the specialized peripheral (for
general-purpose I/O).
P1REN
(0x0027)
Port 1 resistor
enable
Bits set in this register enable pull-up/down
resistors on the corresponding I/O pins.
17. UBI
>> Contents
Instrucciones
• 27 Instrucciones Básicas
• 24 Instrucciones Emuladas
• Conjunto de Instrucciones Ortogonal
• 7 modos de direccionamiento
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
18. UBI
>> Contents
ADC
• Conversor de 10, 12 y 16 bits
• Más de 200 Kbps de ratio de conversión
• Periodo de muestreo programable
• Generador de Vref interno 1,5V ó 2.5V
• Selección de referencia INT/EXT por SW
• 8 canales de entrada externa
• Canales de conversión para Tinterno y VCC
• CLK seleccionable
• 4 modos de conversión
• Controlador de transferencia de datos
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
19. UBI
>> Contents
ADC
Nucleo 10 bits
Fuentes de Reloj y Muestreo
Interrupción asociada
Registro Aproximación Sucesiva
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
20. UBI
>> Contents
Amplificadores Operacionales
• Algunos modelos familia MSP430:
- MSP430FG4618 -> 3 OAs
- MSP430F2274 -> 2 Oas
• Características:
- Ganancia AB seleccionable: 500KHz, 1.4MHz, 2.2MHz
- Salida de rangos en mA
- Componentes y conexiones configurables por el usuario
- R interna en escalera
- Conexiones en cadena
- Conexión interna al ADC y DAC
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
21. UBI
>> Contents
Amplificadores Operacionales
• Estructura interna del OA:
- Inversor
- No Inversor
- Buffer de ganancia 1
- Diferencial
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
23. UBI
>> Contents
Compiladores
• IAR Workbench
- Licencia limitada 4KB
• CCS – Code Composer Studio
- Basado en entorno Eclipse
- Licencia limitada 16KB
- Entorno Windows / Linux
• CrossWorks MSP430
- Entorno Windows / MAC / Linux
- Licencias: P-150$, Edu-300$, Com-1500$
• Compilador GCC
- Modo texto
- Entorno Windows / Linux
- No limite
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
24. UBI
>> Contents
LaunchPad
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Embedded Emulation
6-pin eZ430 Connector
Part and Socket
Crystal Pads
Power Connector
Reset Button
LEDs and Jumpers
P1.0 & P1.6
P1.3 Button
Chip Pinouts
USB Emulator
Connection
25. UBI
>> Contents
LaunchPad
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
Funciones de los Pines:
• LED1 (Red) = P1.0
• LED2 (Green) = P1.6
• SW1 = P1.3
• SW2 = Reset
• Timer UART TX = P1.1
• Timer UART RX = P1.2
Para realizar parpadeo de los LEDS tendremos que
configurar los puertos P1.0 y P1.6 como OUTPUT y
variar sus valores
26. UBI
>> Contents
Manejo de Bits
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
• Bit mask:
set a bit P1OUT = P1OUT | BIT3
clear a bit P1OUT &= ~BIT3
toggle a bit P1OUT ˆ= BIT3
• Bit field:
struct {
unsigned short TAIFG:1;
unsigned short TAIE:2;
unsigned short TACLR:5;
} TACTL_bit;
Set with TACTL_bit.TAIFG = 1
27. UBI
>> Contents
Código Ejemplo
MASTER DE INGENIERÍA DE TELECOMUNICACIONES
Diseño de Circuitos y Sistemas Integrados
#include <msp430x2231.h>
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x41; // set P1.0 & 6 to outputs
//(red & green LEDs)
for(;;) {
volatile unsigned int i;
P1OUT ^= 0x41; // Toggle P1.0 & 6 using XOR
i = 50000; // Delay
do (i--);
while (i != 0);
}
}