26/09/2012
1
ORGANIZACIÓN
INTERNA DE LOSMICROCONTROLADORES
Microcontroladores
F. Hugo Ramírez LeyvaOctubre 2012
1
PROCESADORES DE TEXAS INSTRUMENTS
2
MICRCONTROLADOR (MCU) MSP430
� El MCU MSP430 son fabricados por Texas Instruments (TI)
� CPU de 16 bits� Tienen un bajo consumo de energía
� Existen modelos con:� Velocidad del CPU de 8MHz a 25 MHz
� Memoria flash de 0.5kB a 256kB
� RAM de 128B a 18kB� De 14 a 113 terminales� Mas de25 empaques
� Página del micro: www.ti.com/msp430
3
FAMILIA DE MICROCONTROLADORES
MSP430
4
RECURSOS DEL MICROCONTROLADOR
MSP430
5
� USB� Radio Frecuencia (RF)� Manejador de despegadores de cristal líquido (LCD)
� Convertidores ADC sigman delta
� Moduladores de ancho de pulso (PWM)
� Comparadores� Comunicaciones seriales (I2C, LIN/IrDA, UART)
� Teclado Capacitivo
FAMILIA DE MICROCONTROLADORES
MSP430
6
� El MSP430 tiene una arquitectura RISC
� Su CPU es de 16 bits y la lectura la realiza en un ciclo
� 27 instrucciones
� Los kits de desarrollo inician en $4.30 dls
� Ambientes de desarrollo Code Composer Studio (CCS), IDE, IAR EmbededWorkbench
� Tiene soporte para Linux
26/09/2012
2
USOS DEL MSP430
7
� Mediciones: � www.ti.com/430metering
� Equipo portable médico:� www.ti.com/430medical
� Data Logging: � www.ti.com/fram
APLICACIONES DEL MSP430
8
� Comunicaciones inalámbricas: � www.ti.com/cc430
� Teclados capacitivos: � www.ti.com/capacitivetouch
� Salud personal y fitness:� www.ti.com/chronos
APLICACIONES DEL MSP430
9
� Energy Harvesting: www.ti.com/energyharvesting
� Control de Motores: www.ti.com/motorcontrol
� Seguridad: www.ti.com/430security
HERRAMIENTAS DE DESARROLLO
10
� TI suministra un conjunto de herramientas para hacer desarrollos en el MSP430Ware
� La página donde se encuentra información es: www.ti.com/msp430ware
DRIVER DE LIBRERÍAS DEL MSP430
11
� Facilidad de uso en el llamado a periféricos
� Incluyen convertidores, temporizadores, comunicaciones seriales y mas
� Se tienen soporte para lasfamilias MSP430F5xx y F6xx
� Documentación completacon un API gráfica
� Marca y código libre� Se tiene un api (GRACE) par la configuración de periféricos
GRACE
12
� Grace permite generar rápidamente y documentar programas en C
� Facilita la configuración de los perifericos
26/09/2012
3
HERRAMIENTAS DE SOFTWARE
13
ELMSP-EXP430G2 LAUNCHPAD
14
� El MSP-EXP430G2 LaunchPad development kit suministra todo el hardware y software necesario parainciar
� Soporta toda la líne de MCUs MSP430G2xx www.ti.com/launchpad
� Caracteristicas:� Emulador en la tarjeta� 20-pin DIP Socket� 2 on-board LEDs and 2 on-
board switches� El Kit incluye, el cable USB,
la guia de inicio rápido� 2x 10-pin male and female
headers� Trae 2 MSP430 MCUs
HERRAMIENTAS DE DESARROLLO EZ430
15
� Los kits eZ430 permite probar otros módulos del MSP430 en un empaque como una memoria USB
� Los precios varia desde 10 dlls hasta 199dlls
TARJETAS DE DESARROLLO
16
TARJETAS DE DESARROLLO
17
TARJETAS DE DESARROLLO
18
26/09/2012
4
PROGRAMAUNIVERSITARIO
19
EMPAQUES
20
MSP430G2XX SERIES – UP TO 16 MHZ
21
MSP430G2XX SERIES – UP TO 16 MHZ
(CONTINUED)
22
MSP430G2XX SERIES – UP TO 16 MHZ
(CONTINUED)
23
MSP430G2452IN20
CARACTERÍSTICAS DEL DEL MSP430G2231
24
� Bajo rango de voltajes de 1.8V a 3.6V
� Ultra bajo consumo de energía� Modo activo 220 uA a 1MHz, 2.2V� Modo de Standby 0.4uA� Modo de apagado (Retención de
RAM) 0.1uA
� Cuatro modos de ahorro de energía� Despertado ultra ràpido en menos
de 1us� Arquitectura RISC, con un ciclo de
instrucción de 62.5ns � Modos de configuración del Reloj
� Frecuencia interna de asta 16MHz con una frecuencia sin calibrar
� Oscilador interno de baja frecuencia (LF)
� cristal de 32kHz� Fuente externa de reloj
� Temporizador A de 16 bits con 2 registros de comparación y captura
� Interfaz Universal Serial (USI) que soporta SPI e I2C
� Detector de Brownout� Convertidor ADC de 10 bits a 200ksps
con referencia interna, sample-and-Hold y autoescan
� Programación serial en tarjeta, no requiere voltaje de alimentación para la programación, protección del código
� Emulación en circuito con interfaz Spy-Bi-Wire
26/09/2012
5
ARQUITECTURA DEL MSP430G2231
25
MSP430G2231
26
TERMINALESMSP430G2231
27
TERMINALESMSP430G2231
28
ESPACIO DE MEMORIA
29
� El MSP430 utiliza una arquitectura tipo von-Newmann que tiene un espacio de memoria compartido
� entre registros de funciones especiales (SFRs), periféricos, RAM y memoria Flash/ROM
� Puede direccionar hasta 128kB
REGISTROS ESPECIALES
30
� El CPU esta integrado por 16 registros especiales. El tiempo de ejecución entre ellos es de 1 ciclo de reloj
� Los 4 registros R0 a R3 son dedicados como contadores de programa, apuntador de stack, registro de estatus y generador de constantes
� Los registros restantes de R4 a R15 son de propósito general
� Los periféricos se conectan al CPU usando los buses de direcciones y de datos
� El conjunto de instrucciones es de 51, con tres formatos, 7 modos de direccionamiento. Cada instrucción puede operar en formato de palabra o byte
26/09/2012
6
MEMORIA
31
� El inicio de direcciones de la memoria Flash/ROM depende de la cantidad de memoria del dispositivo. El fin es 0x1FFFF
� la memoria Flash puede ser usada para mantener dados o programa ya que se pueden almacenar tablas sin necesidad de copiarlas a RAM
� El vector de interrupciones es mapeada in las 16 palabras superiores del espacio de direcciones flash/ROM. La de mayor prioridad es la que se encuentra en 0X1FFFF
� La memoria RAM inicia en 0x02000. La dirección final depende de la cantidad de memoria que disponga el dispositivo
� Los periféricos están mapeados en espacio de direcciones. El rango es de 0x0100 a 0x01FF. Estos módulos deben se accedidos con instrucciones de palabras, solo el byte bajo contiene información valida
� Los bytes son localizados en direcciones pares e impares. El byte bajo se almacena en la dirección par y el alto en la impar
REGISTROS PC
32
� El CPU posee un conjunto de 16 registros los cuales son:
� El contador de programa PC� El Stack Pointer
PROGRAM COUNTER (PC)
33
� El contador de programa (Program Counter PC) registros (PC/R0), apunta a la siguiente instrucción a ejecutar
� Cada instrucción usa un número par de bytes y de esta forma se incrementa
� Formato de direccionamiento:
� MOV #LABEL,PC ; Branch to address LABEL
� MOV LABEL,PC ; Branch to address contained in LABEL
� MOV @R14,PC ; Branch indirect to address in R14
STACK POINTER (SP)
34
� El estack pointer (SP/R1) es usado por el CPU para almacenar la dirección de retorno de una llamada a subrutina e interrupciones
� Se puede usar con todas las instrucciones y modos de direccionamiento
� El SP es inicializado por el usuario desde la RAM y se alinea a direcciones pares
STACK POINTER (SP)
35
� MOV.W 2(SP),R6 ; Copy Item I2 to R6
� MOV.W R7,0(SP) ; Overwrite TOS with R7
� PUSH #0123h ; Put 0123h on stack
� POP R8 ; R8 = 0123h
REGISTRO DE ESTATUS
36
� El registro de estatus (SR/R2) es de 16 bits y es usado como fuente o destino
� Puede ser usado como modo de direccionamiento de registro con instrucciones en formato de palabra
26/09/2012
7
REGISTRO DE ESTATUS
37
REGISTRO DE ESTATUS
� R2: Status Register (SR):� Stores status and control bits;� System flags are changed automatically by the CPU;� Reserved bits are used to support the constant generator.
38
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reserved for CG1 V SCG1 SCG0 OSCOFF CPUOFF GIE N Z C
Bit Description
8 V Overflow bit. V = 1 ⇒ Result of an arithmetic operation overflows the signed-variable range.
7 SCG1 System clock generator 0. SCG1 = 1 ⇒ DCO generator is turned off – if not used for MCLK or SMCLK
6 SCG0 System clock generator 1. SCG0 = 1 ⇒ FLL+ loop control is turned off
5 OSCOFF Oscillator Off. OSCOFF = 1 ⇒ turns off LFXT1 when it is not used for MCLK or SMCLK
4 CPUOFF CPU off. CPUOFF = 1 ⇒ disable CPU core.
3 GIE General interrupt enable. GIE = 1 ⇒ enables maskable interrupts.
2 N Negative flag. N = 1 ⇒ result of a byte or word operation is negative.
1 Z Zero flag. Z = 1 ⇒ result of a byte or word operation is 0.
0 C Carry flag. C = 1 ⇒ result of a byte or word operation produced a carry.
CONSTANTGENERATOR REGISTERS
39
� Los registros generadores de constantes CG1 y CG2
� Son constantes que permiten expandir los modos de operación (de 27 mas 24 adicionales)
� Sus principales ventajas son: � No requiere instrucciones
especiales� No requiere palabras de
código para las 6 constantes� No requiere acceso a memoria
para tomar el dato
� La instrucción:� CLR dst� Es emulado por el operador� MOV R3,dst� Donde #0 es remplazado por el
esamblador, y R3 es usado con As=00.
� La instrucción� INC dst� Es reemplazado por:� ADD 0(R3),dst
REGISTROS DE PROPÓSITO GENERAL
40
� Los 12 regsitros de R4 a R15 pueden contener datos de 8 bits, 16 bits o 20 bits
� Cualquier dato de byte escrito al CPU limpia los bits 19:8
� Cualquier dato de palabra limpia los bits 19:16
� La instrucción SXT extiende el signo a través de los 20 bits del registro
MODOS DE DIRECCIONAMIENTO
41
� Las instrucciones del programa le dicen al procesador que hacer, donde encontrar la información
� El direccionamiento es necesario para dirigir al procesador la localización correcta
� Los modos de direccionamiento son la maneras en las cuales las instrucciones indican la direcciones
� Son 7 los modos de direccionamiento para el operando fuente y 4 para el operando destino
� En la tabla se muestran los modos donde As es el registro fuente y Ad el destino
� Los 7 modos son:� Modo Registro� Modo Indexado� Modo simbólico� Modo absoluto� Modo indirecto� Modo autoincremental
indirecto� Modo inmediato
MODOS DE DIRECCIONAMIENTO
42
26/09/2012
8
MODO REGISTRO
43
MODO INDEXADO
44
MODO INDEXADO
45
MODO SIMBÓLICO
46
MODO SIMBÓLICO
47
MODO ABSOLUTO
48
26/09/2012
9
MODO ABSOLUTO
49
MODO INDIRECTO
50
MODO INDIRECTO
51
MODO AUTO INCREMENTAL INDIRECTO
52
MODO AUTO INCREMENTAL INDIRECTO
53
MODO INMEDIATO
54
26/09/2012
10
MODO INMEDIATO
55
EL CONJUNTO DE INSTRUCCIONES
56
� Son 27 el conjunto de instrucciones del MSP430
� Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila
� Son 3 los formatos de las instrucciones� Operando dual� Un solo operando� Salto
� Las instrucciones pueden ser en formato de byte o palabra (.B o .W)
� En byte se usa para tomar los datos de los periféricos
� Las instrucciones de palabra se usan para tomar datos con este formato, es la configuración por default
FORMATO DE LAS INSTRUCCIONES
57
� Las instrucciones de fuente y destino usan los siguientes campos
� Src� La fuente del operador defindo por As y S-reg
� dst� El operando destino definido por Ad y D-reg
� As� Los bits direccionados responsables del modo de
direccionamiento usado (src)
� S-reg� El registro de trabajo usado por la fuente (src)
� AD� Los bits de direccionamiento responsables por el
modo de direccionamiento usado por el destino (dst)
� D-reg� El registro de trabajo usado por el destino (dst)
� B/W� operación de Byte o palabra: � 0: Operando de palabra� 1: operador de byte
FORMATO DE INSTRUCCIÓN DOBLE
58
FORMATO DE INSTRUCCIÓN SIMPLE
59
FORMATO DE INSTRUCCIÓN DE SALTO
60
26/09/2012
11
INSTRUCCIONES EMULADAS
61 62
REFERENCIAS
[1] MSP430TM Ultra-Low-Power Microcontrollers; Texas Instruments; N/S slab034v
[2] MSP430x2xx Family, Texas instruments, N/P slau144e
63 64
REGISTROS DE PROPÓSITO GENERAL R4 A R15
65
� Los 12 registros de R4 a R15 pueden contener datos de 8 bits, 16 bits o 20 bits
� Cualquier dato de byte escrito al CPU limpia los bits 19:8
� Cualquier dato de palabra limpia los bits 19:16
� La instrucción SXT extiende el signo a través de los 20 bits del registro 66
26/09/2012
12
GENERADOR DE RELOJ
67
� El MSP430 tiene construido un oscilador que usa un cristal externo comúnmente de 32.768kHz, pero usando un cristal de alta frecuencia puede generar frecuencias de 1MHZ a 8MHZ
� El sistema de tiene tres módulos� Con cristal externo de 32.768kHz� Oscilador interno de muy baja
frecuencia (LF)� Oscilador digitalmente controlado
(DCO)� El DCO se estabiliza en menos de
1us. Éste proporciona 3 salidas:� Reloj auxiliar (ACLK) de 32768Hz
del cristal externo o el oscilador LF� Reloj principal (MCLK) usado por
el CPU� Reloj sub principal (SMCLK) usado
por los periféricos
CONFIGURACIÓN BÁSICA DEL RELOJ
68
� El reloj es configurado con los registros:� DCOCTL (Digitally
Controlled Oscilator Control Register)
� BCSCTL1 y BCSCTL1 (Basic Clock System Control Registers)
� En el registro DCOCTL se divide en 2 partes:� DCOx (bits 7 a 5) Selecciona
la frecuencia del DCO definidos en el registro RSELx
� MODx (bits 4 a 0) Define que tan seguido se usa la frecuencia fDCO+1 que puede ser usada como periodo de 32 DCOCLK ciclos, no se usa cuando DCOx=7
69 70
71
WATCHDOG TIMER
72
� El registro de Watchdog timer es controlado por el registro WDTCTL y se divide en 8 secciones
26/09/2012
13
73
TIMER
74
75
EJEMPLO 1 EN ENSAMBLADOR
76
;*******************************************************************************
.cdecls C,LIST,"msp430g2231.h" ; Include device header file
;-------------------------------------------------------------------------------
.text ; ProgamStart
;-------------------------------------------------------------------------------
RESET mov.w #280h,SP ; Initialize 'x1121 stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupP1 bis.b #001h,&P1DIR ; P1.0 output
push#0001
;
Mainloop xor.b #001h,&P1OUT ; Toggle P1.0
Wait mov.w #050000,R15 ; Delay to R15
L1 dec.w R15 ; DecrementR15
jnz L1 ; Delay over?
jmp Mainloop ; Again
;
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
.sect ".reset" ; MSP430 RESET Vector
.short RESET ;
.end
77