capitulo2hugo.pdf
TRANSCRIPT
-
7/24/2019 Capitulo2Hugo.pdf
1/13
ORGANIZACININTERNA DE LOSMICROCONTROLADORES
Microcontroladores
F. Hugo Ramrez LeyvaOctubre2012
1
PROCESADORES DE TEXAS INSTRUMENTS
2
MICRCONTROLADOR (MCU) MSP430 El MCU MSP430 son
fabricados por TexasInstruments (TI)
CPU de 16 bits Tienen un bajo consumo
de energa Existen modelos con:
Velocidad del CPU de8MHz a 25 MHz
Memoria flash de 0.5kBa 256kB
RAM de 128B a 18kB De 14 a 113 terminales Mas de25 empaques
Pgina del micro:www.ti.com/msp430 3
FAMILIA DE MICROCONTROLADORESMSP430
4
RECURSOS DEL MICROCONTROLADORMSP430
5
USB Radio Frecuencia (RF) Manejador de
despegadores de cristal
lquido (LCD) Convertidores ADC
sigman delta Moduladores de ancho
de pulso (PWM) Comparadores Comunicaciones seriales
(I2C, LIN/IrDA, UART) Teclado Capacitivo
FAMILIA DE MICROCONTROLADORESMSP430
6
El MSP430 tiene unaarquitectura RISC
Su CPU es de 16 bits y lalectura la realiza en un ciclo
27 instrucciones Los kits de desarrollo inician
en $4.30 dlsAmbientes de desarrollo
Code Composer Studio(CCS), IDE, IAR EmbededWorkbench
Tiene soporte para Linux
-
7/24/2019 Capitulo2Hugo.pdf
2/13
USOS DEL MSP430
7
Mediciones: www.ti.com/430metering
Equipo portable mdico: www.ti.com/430medical
Data Logging: www.ti.com/fram
APLICACIONES DEL MSP430
8
Comunicacionesinalmbricas: 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 unconjunto deherramientas parahacer desarrollosen el MSP430Ware
La pgina donde seencuentrainformacin es:www.ti.com/msp430ware
DRIVER DE LIBRERAS DEL MSP430
11
Facilidad de uso en elllamado a perifricos
Incluyen convertidores,temporizadores,comunicaciones seriales y
mas Se tienen soporte para las
familias MSP430F5xx yF6xx
Documentacin completacon un API grfica
Marca y cdigo libre Se tiene un api (GRACE)
par la configuracin deperifricos
GRACE
12
Grace permite generar rpidamente ydocumentar programas en C
Facilita la configuracin de los perifericos
-
7/24/2019 Capitulo2Hugo.pdf
3/13
HERRAMIENTAS DE SOFTWARE
13
EL MSP-EXP430G2 LAUNCHPAD
14
El MSP-EXP430G2LaunchPad development kitsuministra todo el hardware
y software necesarioparainciar Soportatodala lne de
MCUs MSP430G2xxwww.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 rpido 2x 10-pin male and female
headers Trae 2 MSP430 MCUs
HERRAMIENTAS DE DESARROLLO EZ430
15
Los kits eZ430 permite probar otros mdulos delMSP430 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
-
7/24/2019 Capitulo2Hugo.pdf
4/13
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
CARACTERSTICAS DEL DEL MSP430G2231
24
Bajo rango de voltajes de 1.8V a3.6V
Ultra bajo consumo de energa Modo activo 220 uAa 1MHz, 2.2V Modo de Standby 0.4uA Modo de apagado (Retencin de
RAM) 0.1uA
Cuatro modos de ahorro de energa Despertado ultra rpido en menosde 1us
Arquitectura RISC, con un ciclo deinstruccin de 62.5ns
Modos de configuracin 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 2registros de comparacin y captura
Interfaz Universal Serial (USI) quesoporta SPI e I2C
Detector de Brownout Convertidor ADC de 10 bits a 200ksps
con referencia interna, sample-and-Hold y autoescan
Programacin serial en tarjeta, norequiere voltaje de alimentacin parala programacin, proteccin del cdigo
Emulacin en circuito con interfazSpy-Bi-Wire
-
7/24/2019 Capitulo2Hugo.pdf
5/13
ARQUITECTURA DEL MSP430G2231
25
MSP430G2231
26
TERMINALES MSP430G2231
27
TERMINALES MSP430G2231
28
ESPACIO DE MEMORIA
29
El MSP430 utilizauna arquitectura tipovon-Newmannquetiene un espacio de
memoria compartido entre registros defunciones especiales(SFRs), perifricos,RAM y memoriaFlash/ROM
Puede direccionarhasta 128kB
REGISTROS ESPECIALES
30
El CPU esta integrado por 16registros especiales. El tiempode ejecucin entre ellos es de 1ciclo de reloj
Los 4 registros R0 a R3 sondedicados como contadores deprograma, apuntador de stack,
registro de estatus y generadorde constantes Los registros restantes de R4 a
R15 son de propsito general Los perifricos se conectan al
CPU usando los buses dedirecciones y de datos
El conjunto de instruc ciones esde 51, con tres formatos, 7modos de direccionamiento.Cada instruccin puede operaren formato de palabra o byte
-
7/24/2019 Capitulo2Hugo.pdf
6/13
MEMORIA
31
El inicio de direcciones de lamemoria Flash/ROMdepende de la cantidad de
memoria del dispositivo. Elfin es 0x1FFFF la memoria Flash puede ser
usada para mantener dadoso programa ya que sepueden almacenar tablassin necesidad de copiarlas aRAM
El vector de interrupcioneses mapeada in las 16palabras superiores delespacio de direccionesflash/ROM. La de mayorprioridad es la que seencuentra en 0X1FFFF
La memoria RAM inicia en0x02000. La direccin finaldepende de la cantidad dememoria que disponga eldispositivo
Los perifricos estnmapeados en espacio dedirecciones. El rango es de0x0100 a 0x01FF. Estosmdulos deben se accedidoscon instrucciones depalabras, solo el byte bajocontiene informacin valida
Los bytes son localizados endirecciones pares e impares.El byte bajo se almacena enla direccin par y el alto enla impar
REGISTROS PC
32
El CPU posee un conjuntode 16 registros los cualesson:
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 instruccin a ejecutar
Cada instruccin usa un nmero par de bytes y de estaforma 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
STACKPOINTER (SP)
34
El estack pointer (SP/R1) es usado por elCPU para almacenar la direccin de retornode una llamada a subrutina e interrupciones
Se puede usar con todas las instrucciones ymodos de direccionamiento
El SP es inicializado por el usuario desde laRAM y se alinea a direcciones pares
STACKPOINTER (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 yes usado como fuenteo destino
Puede ser usado comomodo dedireccionamiento deregistro coninstrucciones enformato de palabra
-
7/24/2019 Capitulo2Hugo.pdf
7/13
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 ari thmetic operation overflows the signed-variable range.
7 SCG1 System clockgenerator 0. SCG1= 1 DCOgeneratoris turnedoff ifnot usedforMCLKorSMCLK
6 SCG0 System clockgenerator 1. SCG0= 1 FLL+loop control is turned off
5 OSCOFF OscillatorOff. OSCOFF = 1 turnsoff LFXT1whenit isnot used forMCLK orSMCLK
4 CPUOFF CPUoff. CPUOFF = 1 disableCPUcore.
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.
CONSTANT GENERATOR REGISTERS
39
Los registros generadores deconstantes CG1 y CG2
Son constantes quepermiten expandir losmodos de operacin (de 27mas 24 adicionales)
Sus principales ventajasson: No requiere instrucciones
especiales No requiere palabras de
cdigo para las 6 constantes No requiere acceso a memoria
para tomar el dato
La instruccin: CLR dst
Es emulado por el operador MOV R3,dst
Donde #0 es remplazado porelesamblador, y R3 esusado conAs=00.
La instruccin INC dst
Es reemplazado por: ADD 0(R3),dst
REGISTROS DE PROPSITO GENERAL
40
Los 12 regsitros de R4 aR15 pueden contenerdatos de 8 bits, 16 bits o20 bits
Cualquier dato de byteescrito al CPU limpialos bits 19:8
Cualquier dato depalabra limpia los bits19:16
La instruccin SXTextiende el signo atravs de los 20 bits del
registro
MODOS DE DIRECCIONAMIENTO
41
Las instrucciones delprograma le dicen alprocesador que hacer, dondeencontrar la informacin
El direccionamiento esnecesario para dirigir alprocesador la localizacincorrecta
Los modos dedireccionamiento son lamaneras en las cuales lasinstrucciones indican ladirecciones
Son 7 los modos dedireccionamiento para eloperando fuente y 4 para eloperando destino
En la tabla se muestran losmodos donde As es el registro
fuente y Ad el destino Los 7 modos son:
Modo Registro Modo Indexado Modo simblico Modo absoluto Modo indirecto Modo autoincremental
indirecto Modo inmediato
MODOS DE DIRECCIONAMIENTO
42
-
7/24/2019 Capitulo2Hugo.pdf
8/13
MODO REGISTRO
43
MODO INDEXADO
44
MODO INDEXADO
45
MODO SIMBLICO
46
MODO SIMBLICO
47
MODO ABSOLUTO
48
-
7/24/2019 Capitulo2Hugo.pdf
9/13
MODO ABSOLUTO
49
MODO INDIRECTO
50
MODO INDIRECTO
51
MODO AUTO INCREMENTAL INDIRECTO
52
MODO AUTO INCREMENTAL INDIRECTO
53
MODO INMEDIATO
54
-
7/24/2019 Capitulo2Hugo.pdf
10/13
MODO INMEDIATO
55
EL CONJUNTO DE INSTRUCCIONES
56
Son 27 el conjunto deinstrucciones del
MSP430 Las 24 instrucciones
emuladas expanden lascapacidades del CPU, sereemplazanautomticamentecuando se compila
Son 3 los formatos de lasinstrucciones Operando dual Un solo operando Salto
Las instruccionespueden ser en formato
de byte o palabra (.B o.W) En byte se usa para
tomar los datos de losperifricos
Las instrucciones depalabra se usan paratomar datos con esteformato, es laconfiguracin pordefault
FORMATO DE LAS INSTRUCCIONES
57
Las instrucciones de fuente y destino usan lossiguientes campos
Src La fuente del operador defindopor 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 operacin de Byte o palabra: 0: Operando de palabra 1: operador de byte
FORMATO DE INSTRUCCIN DOBLE
58
FORMATO DE INSTRUCCIN SIMPLE
59
FORMATO DE INSTRUCCIN DE SALTO
60
-
7/24/2019 Capitulo2Hugo.pdf
11/13
INSTRUCCIONES EMULADAS
61 62
REFERENCIAS
[1] MSP430TM Ultra-Low-Power Microcontrollers; TexasInstruments; N/S slab034v
[2] MSP430x2xx Family, Texas instruments, N/P slau144e
63 64
REGISTROS DE PROPSITO GENERAL R4AR15
65
Los 12 registros de R4 aR15 pueden contenerdatos de 8 bits, 16 bits o20 bits
Cualquier dato de byteescrito al CPU limpialos bits 19:8
Cualquier dato depalabra limpia los bits19:16
La instruccin SXTextiende el signo atravs de los 20 bits delregistro 66
-
7/24/2019 Capitulo2Hugo.pdf
12/13
GENERADOR DE RELOJ
67
El MSP430 tiene construido unoscilador que usa un cristalexterno comnmente de
32.768kHz, pero usando un cristalde alta frecuencia puede generarfrecuencias de 1MHZ a 8MHZ
El sistema de tiene tres mdulos 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 perifricos
CONFIGURACIN BSICA DEL RELOJ
68
El reloj es configurado conlos registros: DCOCTL (Digitally
ControlledOscilator ControlRegister) BCSCTL1 y BCSCTL1 (Basic
ClockSystem ControlRegisters)
En el registro DCOCTL sedivide en 2 partes: DCOx (bits 7 a 5) Selecciona
la frecuencia del DCOdefinidos en el registroRSELx
MODx (bits 4 a 0) Define quetan seguido se usa lafrecuencia fDCO+1 que puedeser usada como periodo de 32DCOCLK ciclos, no se usacuando DCOx=7
69 70
71
WATCHDOG TIMER
72
El registro deWatchdog timer escontrolado por elregistro WDTCTL y
se divide en 8secciones
-
7/24/2019 Capitulo2Hugo.pdf
13/13
73
TIMER
74
75
EJEMPLO 1 EN ENSAMBLADOR
76
;*******************************************************************************
.cdeclsC,LIST,"msp430 g2231.h" ; Includedevice headerfile
;-------------------------------------------------------------------------------
.text ; Progam Start
;-------------------------------------------------------------------------------
RESET mov.w #280h,SP ; Initialize 'x1121stackpointer
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 ; DelaytoR15
L1 dec.w R15 ; DecrementR15
jnz L1 ; Delayover?
jmp Mainloop ; Again
;
;-------------------------------------------------------------------------------
; InterruptVe ctors
;-------------------------------------------------------------------------------
.sect ".reset" ; MSP430 RESET Vector
.short RESET ;
.end
77