Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden...

13
26/09/2012 1 ORGANIZACIÓN INTERNA DE LOS MICROCONTROLADO RES Microcontroladores F. Hugo Ramírez Leyva Octubre 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 Embeded Workbench Tiene soporte para Linux

Transcript of Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden...

Page 1: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 2: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 3: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 4: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 5: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 6: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 7: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 8: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

26/09/2012

8

MODO REGISTRO

43

MODO INDEXADO

44

MODO INDEXADO

45

MODO SIMBÓLICO

46

MODO SIMBÓLICO

47

MODO ABSOLUTO

48

Page 9: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 10: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 11: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 12: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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

Page 13: Capitulo2Hugo - UTMhugo/Micros/Capitulo2Hugo.pdf · MSP430 Las 24 instrucciones emuladas expanden las capacidades del CPU, se reemplazan automáticamente cuando se compila Son 3 los

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