Microcontroladores

Anuncio
26/09/2012
PROCESADORES DE TEXAS INSTRUMENTS
ORGANIZACIÓN
INTERNA DE LOS
MICROCONTROLADO
RES
Microcontroladores
1
F. Hugo Ramírez Leyva
Octubre 2012
2
FAMILIA DE MICROCONTROLADORES
MSP430
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
RECURSOS DEL MICROCONTROLADOR
MSP430
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
4
FAMILIA DE MICROCONTROLADORES
MSP430
5
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
6
1
26/09/2012
USOS DEL MSP430
APLICACIONES DEL MSP430
Mediciones:
www.ti.com/430metering
Comunicaciones
inalámbricas:
www.ti.com/430medical
Teclados capacitivos:
www.ti.com/cc430
Equipo portable médico:
www.ti.com/capacitivetouch
Data Logging:
www.ti.com/fram
Salud personal y fitness:
www.ti.com/chronos
7
APLICACIONES DEL MSP430
Energy Harvesting:
www.ti.com/energyharves
ting
Control de Motores:
www.ti.com/motorcontrol
Seguridad:
www.ti.com/430security
8
HERRAMIENTAS DE DESARROLLO
TI suministra un
conjunto de
herramientas para
hacer desarrollos
en el MSP430Ware
La página donde se
encuentra
información es:
www.ti.com/msp43
0ware
9
DRIVER DE LIBRERÍAS DEL MSP430
Facilidad de uso en el
llamado a periféricos
Incluyen convertidores,
temporizadores,
comunicaciones seriales y
mas
Se tienen soporte para las
familias MSP430F5xx y
F6xx
Documentación completa
con un API gráfica
Marca y código libre
Se tiene un api (GRACE)
par la configuración de
periféricos
10
GRACE
Grace permite generar rápidamente y
documentar programas en C
Facilita la configuración de los perifericos
11
12
2
26/09/2012
HERRAMIENTAS DE SOFTWARE
EL MSP-EXP430G2 LAUNCHPAD
El MSP-EXP430G2
LaunchPad development kit
suministra todo el hardware
y software necesario para
inciar
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 onboard switches
El Kit incluye, el cable USB,
la guia de inicio rápido
2x 10-pin male and female
headers
Trae 2 MSP430 MCUs
13
HERRAMIENTAS DE DESARROLLO EZ430
14
TARJETAS DE DESARROLLO
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
15
TARJETAS DE DESARROLLO
16
TARJETAS DE DESARROLLO
17
18
3
26/09/2012
EMPAQUES
PROGRAMA UNIVERSITARIO
19
20
MSP430G2XX SERIES – UP TO 16 MHZ
(CONTINUED)
MSP430G2XX SERIES – UP TO 16 MHZ
21
MSP430G2XX SERIES – UP TO 16 MHZ
(CONTINUED)
22
CARACTERÍSTICAS DEL DEL MSP430G2231
Bajo rango de voltajes de 1.8V a
3.6V
Ultra bajo consumo de energía
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
MSP430G2452IN20
23
Modo activo 220 uA a 1MHz, 2.2V
Modo de Standby 0.4uA
Modo de apagado (Retención de
RAM) 0.1uA
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-andHold 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
Frecuencia interna de asta 16MHz
con una frecuencia sin calibrar
Oscilador interno de baja frecuencia
(LF)
cristal de 32kHz
Fuente externa de reloj
24
4
26/09/2012
ARQUITECTURA DEL MSP430G2231
MSP430G2231
25
TERMINALES MSP430G2231
26
TERMINALES MSP430G2231
27
28
ESPACIO DE MEMORIA
REGISTROS ESPECIALES
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
29
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
30
5
26/09/2012
MEMORIA
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
REGISTROS PC
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
El CPU posee un conjunto
de 16 registros los cuales
son:
El contador de programa PC
El Stack Pointer
31
PROGRAM COUNTER (PC)
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:
32
STACK POINTER (SP)
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
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
33
34
STACK POINTER (SP)
REGISTRO DE ESTATUS
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
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
35
36
6
26/09/2012
REGISTRO DE ESTATUS
REGISTRO DE ESTATUS
15
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.
14
13
12
11
10
9
8
Reserved for CG1
Bit
37
7
V
6
SCG1
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
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
4
CPUOFF
CPU off. CPUOFF = 1
3
GIE
General interrupt enable. GIE = 1
2
N
Negative flag. N = 1
⇒
1
Z
Zero flag. Z = 1
result of a byte or word operation is 0.
0
C
Carry flag. C = 1
⇒
⇒
⇒
⇒
turns off LFXT1 when it is not used for MCLK or SMCLK
disable CPU core.
⇒
enables maskable interrupts.
result of a byte or word operation is negative.
result of a byte or word operation produced a carry.
38
CONSTANT GENERATOR REGISTERS
REGISTROS DE PROPÓSITO GENERAL
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:
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
No requiere instrucciones
especiales
No requiere palabras de
código para las 6 constantes
No requiere acceso a memoria
para tomar el dato
39
MODOS DE DIRECCIONAMIENTO
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
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
40
MODOS DE DIRECCIONAMIENTO
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
41
42
7
26/09/2012
MODO REGISTRO
MODO INDEXADO
43
MODO INDEXADO
44
MODO SIMBÓLICO
45
MODO SIMBÓLICO
46
MODO ABSOLUTO
47
48
8
26/09/2012
MODO ABSOLUTO
MODO INDIRECTO
49
MODO INDIRECTO
50
MODO AUTO INCREMENTAL INDIRECTO
51
MODO AUTO INCREMENTAL INDIRECTO
52
MODO INMEDIATO
53
54
9
26/09/2012
MODO INMEDIATO
EL CONJUNTO DE INSTRUCCIONES
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
55
FORMATO DE LAS INSTRUCCIONES
Las instrucciones de fuente y destino usan los
siguientes campos
Src
dst
56
FORMATO DE INSTRUCCIÓN DOBLE
La fuente del operador defindo por As y S-reg
El operando destino definido por Ad y D-reg
Los bits direccionados responsables del modo de
direccionamiento usado (src)
S-reg
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
As
El registro de trabajo usado por la fuente (src)
AD
D-reg
B/W
Los bits de direccionamiento responsables por el
modo de direccionamiento usado por el destino
(dst)
El registro de trabajo usado por el destino (dst)
operación de Byte o palabra:
0: Operando de palabra
1: operador de byte
57
FORMATO DE INSTRUCCIÓN SIMPLE
58
FORMATO DE INSTRUCCIÓN DE SALTO
59
60
10
26/09/2012
INSTRUCCIONES EMULADAS
61
62
63
64
65
66
REFERENCIAS
[1]
MSP430TM Ultra-Low-Power Microcontrollers; Texas
Instruments; N/S slab034v
[2]
MSP430x2xx Family, Texas instruments, N/P slau144e
REGISTROS DE PROPÓSITO GENERAL R4 A R15
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
11
26/09/2012
GENERADOR DE RELOJ
CONFIGURACIÓN BÁSICA DEL RELOJ
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
DCOCTL (Digitally
Controlled Oscilator Control
Register)
BCSCTL1 y BCSCTL1 (Basic
Clock System Control
Registers)
Con cristal externo de 32.768kHz
Oscilador interno de muy baja
frecuencia (LF)
Oscilador digitalmente controlado
(DCO)
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
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
El DCO se estabiliza en menos de
1us. Éste proporciona 3 salidas:
El reloj es configurado con
los registros:
67
69
68
70
WATCHDOG TIMER
71
El registro de
Watchdog timer es
controlado por el
registro WDTCTL y
se divide en 8
secciones
72
12
26/09/2012
TIMER
73
74
EJEMPLO 1 EN ENSAMBLADOR
;*******************************************************************
************
.cdecls C,LIST,"msp430g2231.h" ; Include device header file
;------------------------------------------------------------------------------.text
; Progam Start
;------------------------------------------------------------------------------RESET
mov.w #280h,SP
stackpointer
StopWDT
SetupP1
; Initialize 'x1121
mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
bis.b #001h,&P1DIR
; P1.0 output
push #0001
;
Mainloop xor.b #001h,&P1OUT
Wait
L1
mov.w #050000,R15
dec.w R15
jnz
jmp
; Toggle P1.0
; Delay to R15
; Decrement R15
L1
; Delay over?
Mainloop
; Again
;
;------------------------------------------------------------------------------;
Interrupt Vectors
;------------------------------------------------------------------------------.sect ".reset"
.short RESET
75
.end
; MSP430 RESET Vector
;
76
77
13
Descargar