Seminario MSP430
Seminario MSP430
Seminario MSP430
MSP430 Introduccin CPU de 16bits Reset, interrupciones y modos de operacion Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
APLICACIONES
Sistemas alimentados con bateras (low power) Sistemas de procesamiento de seales Sistemas de tamao limitado Sistemas de control en general. Sistemas de control numrico
CPU RISC de 16-bit de Arquitectura Von Neuwman Solo 27 instrucciones bsica a aprender. (+24 emuladas) Mltiples y flexibles tipos de Reloj. Versiones disponibles en Flash, ROM y OTP. Precios desde US$0.99 ( MSP430F1101 @10ku ) Consumo nominal de 0.1 ~ 250uA, (@ 2.2v/1MIPS) Alimentacin : 1.8 ~ 3.8v (operacin) Alimentacin : 2.7 ~ 3.8v (programacin) Frecuencia: DC ~ 8MHz Temperatura: - 40 ~ + 85C Desarrollo y depuracin IN-CIRCUIT
4
Set de instrucciones reducido Instrucciones fciles de aprender. Sin instrucciones especiales Bajo consumo Cdigo eficiente Cdigo compacto
MSP430
Instructions
Source
Otros Micros
Set de instrucciones complejo Instrucciones especiales a aprender Poco eficiente Mayor rea de silicio.
5
Instructions
Mapa de memoria:
Vectores de Interrupcin
FFFFh
Memoria Flash, OTP o ROM para cdigo. 128/256 Bytes de memoria Flash de informacin.
1000h
Memoria de Datos
Bootstrap Loader
0C00h
RAM
200h
ROM, RAM, Flash y SFRs distribuidos en memoria nica no paginada. Memoria Flash de datos en segmentos de 128 Bytes. Posibilidad de escribir un bit, un byte o word (solo de 1->0) Borrado de segmentos completos Programacin va JTAG o BSL in-circuit. Proteccin por contrasea o fusible fsico de seguridad
Vectores de interrupcin
Segmento 1 Segmento 2
Memoria de Programa
0F400h Segmento 6
Memoria de INFORMACION
Bootstrap Loader
0F200h
1000h
0F000h
Segmento 7
RAM
01080h
Registros de perifricos
Segmento A Segmento B
01000h
7
Ciclos de instruccin
ATmega8
Bytes 116 364 342 174 570 388 316 1042 1292 510 5114 1.82 Ciclos 157 5300 131 319 24426 144 782 1601 164793 16027 213680 1.26
PIC18F242
Bytes 386 676 404 598 846 572 960 1778 2146 936 9302 3.31 Ciclos 318 20045 109 625 27021 163 1818 1599 248655 36190 336543 1.98
8051
Bytes 141 615 209 361 825 326 723 1420 1915 345 6880 2.45 Ciclos 112 17744 84 426 29468 120 2937 2487 206806 9454 269638 1.58
H8/300L
Bytes 354 356 362 564 450 404 876 1450 1588 462 6866 2.45 Ciclos 680 9098 388 802 15280 398 1756 2458 245588 26750 303198 1.78
MC68HC11
Bytes 285 380 387 315 490 405 962 1429 1470 499 6622 2.46 Ciclos 387 15412 214 508 23164 230 1446 4664 567139 26874 640038 3.76
10
FLASH
1v, 50MHz USB, DMA 4Mb memory Integrated RF
FLASH+LCD
1.8 - 3.6v FLL+ SVS Timer_A/B, Basic Timer Comparator_A
F5xx
Caractersticas/Desempeo
ROM/OTP+LCD
2.5 - 5v FLL Basic Timer, 8-bit T/C Timer/Port Slope ADC
F15x
ADC12 Timer_A/B (2) USART MPY, DAC12
F44x
LCD160 ADC12 Timer_A/B (2) USART MPY
F14x
ADC12 Timer_A/B (2) USART MPY
x33x
LCD120 Timer_A USART MPY
F13x
ADC12 Timer_A/B USART
F43x
x32x
LCD84 ADC14
F12x
USART
F43x F41x
LCD96
x31x
LCD92
F11x
$0.99
11
MSP430x11x(1)
XIN XOUT VCC VSS RST/NMI P1.x 8 ACLK
FLASH 1/4kB
RAM 128/256B
Power-On Reset
SMCLK
MCLK
JTAG/DeBUG
MAB
MDB
TEST
ACLK
Watchdog 15-bit
Timer_A3 16-bit
Comp_A
SMCLK 6 P1.x
12
MSP430x13x
LFXT1 2 XT2 2 ACLK VCC VSS AVCC AVSS RST/NMI P1.x 8 P2.x 8 P3.x 8 P4.x 8 P5.x 8 P6.x 8
FLASH 8/16kB
RAM 512/256B
Power-On Reset
Port 3/4
Port 5/6
SMCLK
MCLK
JTAG/DeBUG
MAB
MDB
JTAG
ACLK
Watchdog 15-bit
Timer_A3 16-bit
Timer_B3 16-bit
SMCLK
Comp_A
USART0 UART/SPI
64 TQFP
13
MSP430x14x
LFXT1 2 XT2 2 ACLK VCC VSS AVCC AVSS RST/NMI P1.x 8 P2.x 8 P3.x 8 P4.x 8 P5.x 8 P6.x 8
FLASH 32 - 60kB
RAM 1/2kB
Power-On Reset
Port 3/4
Port 5/6
SMCLK
MCLK
JTAG/DeBUG
MAB
MDB
JTAG
MPY/MAC 8/16-bit
ACLK
Watchdog 15-bit
Timer_A3 16-bit
Timer_B7 16-bit
SMCLK
Comp_A
64 TQFP
14
MSP430x31x
XIN XOUT XBUF VCC VSS RST/NMI P0.x 8 ACLK
MCLK
RAM 128-512B
Power-On Reset
MCLK
JTAG/TEST
MAB
MDB
JTAG
ACLK
Watchdog 15-bit
Sx/0x
COMx
15
MSP430x32x
XIN XOUT XBUF VCC VSS AVCC AGND RST/NMI P0.x 8
ACLK
MCLK
RAM 256/512B
Power-On Reset
MCLK
JTAG/TEST
MAB
MDB
JTAG
ACLK
Watchdog 15-bit
MSP430x33x
XIN XOUT XBUF VCC 3 ACLK VSS 3 RST/NMI P1.x 8 P2.x 8 P3.x 8 P4.x 8 P0.x 8
MCLK
RAM 1kB
Power-On Reset
Port 3/4
MCLK
JTAG/TEST
MAB
MDB
JTAG ACLK
MPY/MAC 8/16-bit
Watchdog 15-bit
Timer_A5 16-bit
USART UART/SPI
Sx/0x
MCLK
COMx
6 CIN TP.x Rx
17
MSP430 Introduccin CPU de 16bits Reset, interrupciones y modos de operacion Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
18
Set de instrucciones reducido Instrucciones fciles de aprender. Sin instrucciones especiales Bajo consumo Cdigo eficiente Cdigo compacto
MSP430
Instructions
Source
Otros Micros
Set de instrucciones complejo Instrucciones especiales a aprender Poco eficiente Mayor rea de silicio.
19
Instructions
20
Arquitectura de MSP430
ALU de16-bit Buses de datos y direcciones de 16bit 16, registros multi propsito de 16-bit (acumuladores)
R0/PC (Program Counter) R1/SP (Stack Pointer) R2/SR (Status) R3/CG (Constant Gen.) R4 - R15 (Propsito general)
BUS DATOS MDBDE - meory data bus
15 R0/PC - Program Counter R1/SP - Stack Pointer R2/SR - Status
Acceso total a todos los registros incluyendo PC, SP, SR y CG. Operaciones en un ciclo Soporte para operaciones Memoria~Memoria Diseo optimizado para programacin en C.
DST 16
SRC
16-bit ALU
16
21
15
rw
push #01234h
Address 0xxxh 0xxxh - 2 0xxxh - 4 0xxxh - 6 0xxxh - 8 Word1 Word2 Word3 SP, TOS Address Address 0xxxh 0xxxh - 2 0xxxh - 4 0xxxh - 6 0xxxh - 8 Word1 Word2 Word3 01234h SP, TOS 0xxxh 0xxxh - 2 0xxxh - 4 0xxxh - 6 0xxxh - 8
TOS: top-of-stack
pop R8
Los registros PC y SP son completamente manipulables como cualquier registro. (ambos estn mapeados en RAM)
22
; ;-----------------------------------------------------------------------; BITs del registro de estado ;-----------------------------------------------------------------------CPUOFF equ 00010h OSCOFF equ 00020h SCG0 equ 00040h SCG1 equ 00080h GIE equ 00008h LPM3 equ SCG1+SCG0+CPUOFF+GIE LPM4 equ OSCOFF+CPUOFF+GIE ; bis.w #CPUOFF,SR ; Entra en LPM0 ; bis.w #LPM3,SR ; Entra en LMP3 ; bis.w #LPM4,SR ; Entra en LPM4
23
Registro usado para insertar constantes en el cdigo con instrucciones de solo un parmetro. (manipulado por el linker)
; 1
Ejemplos: CLR dst es reemplazado por: MOV R3,dst R3 ha sido cargado con 00h es reemplazado por: ADD 0(R3),dst R3 ha sido cargado con 01h
INC dst
El uso del generador de constantes queda restringido a solo constantes de uso comn como 00h, 01h, FFh, etc En general el uso de este registro esta orientado a la optimizacin del cdigo, razn por la que es manipulado solo por el Linker (assembler).
El compilador automticamente usa R3 para insertar valores inmediatos o constantes en el cdigo fuente. Estos valores inmediatos no requieren cdigo adicional.
24
R4 ~ R15
MSP430 dispone de 12 registros (R4 ~ R15) de propsito general para ser usados como acumuladores.
25
add.w add.b add.w add.b add.w add.b add.w add.b add.w add.b add.w add.b
R5,R6 R5,R6 #02001h,R7 #099h,R7 0200h,R8 0200h,R8 0C100h,R9 0C100h,R9 0C100h,0200h 0C100h,0200h #01234h,&CCR0 #099h,&P1OUT
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
operacin Word registro a registro operacin Byte registro a registro operacin Word inmediato 2001 a registro operacin Byte inmediato 2001 a registro operacin Word RAM 200h a R8 operacin Byte RAM 200h a R8 operacin Word Flash C100h a R9 operacin Byte Flash C100h a R9 operacin Word Flash a RAM operacin Byte Flash a RAM operacin Word inmediato a Perifrico operacin Byte inmediato a Perifrico
No existe cuello de botella en el acumulador. Todas las instrucciones en MSP430 son consistentes en todo el rango de memoria, no hay instrucciones especiales que aprender.
26
Modos de Direccionamiento:
; ; ; Modo de Registro (Directo), rpido, de solo un ciclo entre registros R0 ~ R15 ; add.w R7,R8 ; R7 + R8 >> R8 mov.w R7,R8 ; R7 >> R8 mov.b R5,R10 ; Byte inferior de R5 >> R10 ; ; Modo Indexado, el ndice se suma como offset a cualquier registro. ; addc.w -2(R5),4(R7) ; ((R5)-2)+((R7)+4)+C >> ((R7)+4) mov.w 2(SP),R7 ; Mueve el segundo tem del stack a R7 mov.b R5,9(R10) ; Byte inferior de R5 >> (R10+9) ; ; Modo Simblico, el contenido de la etiqueta se calcula como una diferencia desde PC add.w mov.w mov.b EDE,TONI EDE,R8 TONI,EDE ; (EDE) + (TONI) >> (TONI) ; (EDE) >> R8 ; Mueve byte (TONI) a (EDE)
; ; Modo Absoluto, la etiqueta es una direccin absoluta. add.w mov.w mov.b &CCR1,&CCR2 &TACTL,R8 &P1IN,&P2OUT ; (CCR1) + (CCR2) >> (CCR2) ; (TACTL) >> R8 ; Mueve (P1IN) a (P2OUT)
27
Modos de Direccionamiento
; ; ; Modo Indirecto, Cualquier registro es usado como puntero ; add.w @R8,R9 ; (R8) + R9 >> R9 mov.w @R9,0(R12) ; (R9) >>(R12+0) >>> @R12 en destino mov.b @R8,&P2OUT ; (R8) >> P2 registro de perifrico dec.w @R9 ; (R9) -1 >> (R9) ; ; Modo Indirecto con auto incremento, cualquier registro es usado como puntero y ; posteriormente se incrementa ; add.w @R10+,R9 ; (R10) + R9 >> R9,R10+2 >> R10 mov.w @R10+,0(R12) ; (R10) >> (R12+0),R10+2 >> R10 mov.b @R5+,&P2OUT ; (R5) >> P2OUT, R5+1 >> R5 inc.w @R5+ ; (R5) + 1 >> (R5), R5+2 >> R5 ; ; Modo Inmediato, despus de la instruccin sigue una constante. ; add.w #0A00h,R8 ; 0A00h + R8 >> R8 mov.w #0010,&TACTL ; 0Ah >> Timer_A Registro de perifrico bit.w #0100h,4(R9) ; Prueba si Bit 8=1 ? En la 4ta word. mov.b #01Fh,0(R12) ; 01Fh >>(R12+0)
NOTA: No hay micro-codigo todas las instrucciones estan incrustadas por hardware en la CPU. Las instrucciones emuladas usan las instrucciones basicas mas registros dedicados como R3 (CG)
29
Se usan como cualquier instruccin incrustada, sin restricciones. Instrucciones con formato CISC (el cdigo es simple de entender) Son reemplazadas con instrucciones RISC incrustadas y con el uso de CG/PC/SP por el assembler. No se pierde velocidad ni se requiere cdigo extra.
R5 #01h,R5
; Incremento (emulada) ; instruccin incrustada ; limpiar carry (emulada) ; instruccin incrustada ; habilitar interrupciones (emulada) ; instruccin incrustada ; saltar a la pos. contenida en R5 (emulada) ; instruccin incrustada ; Restorna desde una subrutina (emulada) ; instruccin incrustada
#01h,SR
#08h,SR R5 R5,PC
@SP+,PC
30
Formato I
Source-Register
Ad B/W
As
Destination-Register
Formato II
rlc.w rlc.b R9 R9
Op-Code
B/W
Ad
D/S- Register
; 16b de R9 son desplazados a la izquierda a travs del carry ; 8b de R9 son desplazados a la izquierda a travs del carry
Formato III
Condition
10-bit PC offset
Ad = modo de direccionamiento usado para destino As = modo de direccionamiento usado para origen B/W = operacin como byte o como word Condition = Condicin para un salto condicional D-Register = registro usado como destino D/S-Register = registro usado como origen/destino Op-code = cdigo de la instruccin usada S-Register = registro usado como origen
31
Es el mtodo incondicional mas rpido de controlar el flujo del programa con offsets de -511/+512 bytes. 1 word.
br
Se carga una posicin de16-bit en el contador de programa. No es una llamada a subrutina ya que no se respalda posicin de retorno alguna. 2 words,.
call
Llamada a subrutinas
Se carga una posicin de 16-bit en el contador de programa, y la direccin de retorno y el contenido del registro de estado son automticamente puestos en el stack 2 words.
32
Ejemplos de Saltos:
; ; Mainloop ;----------------------------------------------------------------------------; Retardo por software en R5 ;----------------------------------------------------------------------------mov.w #1000, R5 ; carga cuenta de 1000 Loop1 dec.w R5 ; decrementa R5 jnz Loop1 ; R5 = 0?, no? >> Loop1 ; ;----------------------------------------------------------------------------; espera que &CCR1=5555 ;----------------------------------------------------------------------------Loop2 cmp.w #05555,&CCR1 ; #05555=CCR1 jne Loop2 : si no es igual >> Loop2 ; ;----------------------------------------------------------------------------; salta a Mainloop ;----------------------------------------------------------------------------jmp Mainloop ; salta en forma incondicional a Mainloop
Un valor con signo de 10bits, permite saltos en el rango de - 511 a + 512 words relativos a la direccin actual. Los saltos requieren solo una Word de cdigo y dos ciclos. Se utilizan para controles el flujo con saltos cortos.
33
Mainloop Table
; configura comparador A
; 0.5*Vcc en P2.3, activa comparador ; Incrementa puntero para saltos ; asegura salto dentro del rango?
Los Saltos Largos son posibles hacia cualquier parte de los 64k de memoria y se pueden utilizar con cualquier modo de direccionamiento. 34
; ; Ejemplo de llamadas segn tabla condicional Mainloop call xor.w jmp DW DW clr.b nop ret mov.b nop ret clr mov.b ret Table(R15) #02h,R15 Mainloop Sub1 Sub2 &P1OUT ; pone en 0 todas la salida de P1 ; retorna de subrutina (mov SP+,PC) #0FFh,P1OUT ; pone en 1 todas las salida de P1 ; retorna de subrutina (mov SP+,PC) R15 # 0FFh,&P1DIR ; limpia el puntero de llamadas ; puerto 1 como salida ; retorna de subrutina (mov SP+,PC) ; llama sub rutina direccin de retorno >> TOS ; conmuta puntero ; repite
; Table
Sub1
; Sub2
; Setup
Las llamadas son posibles desde y hacia cualquier parte de los 64K de memoria (y en todos los modos de direccionamiento).
35
Manipulacin de Bits:
bic(.b) Pone a 0 uno o mas bits en el destino.
Se operan lgicamente el inverso del origen y el destino. (and) El registro de estado no es afectado.
bis(.b)
bit(.b)
Se operan lgicamente el origen y el destino (and) El resultado afecta solo al registro de estado.
cmp(.b)
36
Ciclos de instrucciones:
Ciclos de instrucciones:
Accion: N de ciclos
5 6 4 4
Largo de instruccion
1 -
Retorno desde interrupcion (reti) Interrupcion Reset por WDT Reset (RST / NMI)
37
MSP430 Introduccin CPU de 16bits Interrupciones, Reset y modos de operacion Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
38
Pwr.Up. Wdt NMI, OF, FV. Timer B Timer B Comparador A WDT (interv) USART0 RX USART0 TX ADC12 Timer A Timer B
WDTIFG NMIIFG TBCCR0 TBCCR1-6 CAIFG WDTIFG URXIFG0 UTXIFG0 ADC12IFG TACCR0 TACCR1-2 P1IFG0-7 URXIFG1 UTXIFG1 P2IFG0-7
RESET No masc Masc Masc Masc Masc Masc Masc Masc Masc Masc Masc Masc Masc Masc
0FFFEh 0FFFCh 0FFFAh 0FFF8h 0FFF6h 0FFF4h 0FFF2h 0FFF0h 0FFEEh 0FFECh 0FFEAh 0FFE8h 0FFE6h 0FFE4h 0FFE2h 0FFE0h
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
39
0FFFFh
Memoria de info
Bootstrap Loader
RAM
Registros de perifricos
Procesamiento de Interrupciones:
Antes de una interrupcin:
Item1 Item2 SP, TOS
Durante una interrupcin: PC copiado en stack SR copiado en stack GIE, CPUOFF, OscOFF y SCG1 son limpiados los flag IFG son limpiados cuando provienen de una fuente nica (ej. Usart) Despus de una interrupcin: SR es recuperado desde el stack PC es recuperado desde el stack
El contexto del registro de estado es respaldado en el stack junto con el contador de programa. El proceso de interrupciones requiere un total de 11 ciclos adicionales.
40
; ; SetupP2_0
Mainloop
P2_ISR
#01h,&P2IFG
; ; ; ; ; ; ; ; ;
P2.0 configurada como entrada Interrupcin en flanco H->L Interrupcin habilitada en P2.0 Entra en LPM3 con interrupciones habilitadas ciclo intil. limpia flag de interrupcin en P2.0 ciclo intil retorna al estado previo a la interrupcin. ; vector de Interrupcion de P2 ;
ORG
P2_ISR
41
MSP430 Power-UP
#include ; RESET StopWDT SetupP1 Mainloop "msp430x11x1.h ORG mov.w mov.w bis.b xor.b jmp ORG DW END MSP430F1121
TEST Vcc P2.5 Vss XOUT XIN RST P2.0 P2.1 P2.2 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.4 P2.3
; definicin de registros ; ; ; ; ; ; ; ; ; ; inicio de memoria de programa inicio de stack pointer detiene WDT configura P1.0 como salida cambia P1.0 (xor) salta a repetir vector de reset de MSP430x11x1 configura inicio de programa
1) 2)
ck Sta T WD
3)
ET S E eR d r to Vec
42
* DCO esta deshabilitado, pero el generador de DC sigue activo a menos que se manipule sus bits de control.
Consumo en uA @ 1MHz
Crystal
32,768
2uA
1s
2s
9uA 1s 2s
44
**Microchip (AN606)
32768
RX TX
12 Pines disponibles
CR2032 180mAH. Corriente drenada para 10 aos de vida = 0.180A/ 10 aos / 365 das / 24 horas < 2.2uA
Ejemplo RTC : operacin en LPM3 con oscilador a 32KHz (1.5uA). 1Hz ISR. Consumo normal en LPM3 Rutina de interrupcin (50 ciclos/ISR) 1s x 1.50uA 50us x 400uA 1.50uA 0.02uA 1.52uA
MSP430 posee un wake-up de solo 6uS, que permite un uso extendido del modo de bajo consumo LPM3
45
MSP430 Introduccin CPU de 16bits Interrupciones, Reset y modos de operacion Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
46
Vcc Vcc Rsel SCG0 3 0 DC- Gen P2.5/Rosc 1 DCOR DCO 3 MOD 5 SELS DIVS 2 0 /1, /2, /4, /8, off 1 Sub-System Clock SMCLK SCG1
47
DIVA 2 LFXTCLK /1, /2, /4, /8 OscOff XIN LFXT1 Oscillator XOUT SELM DIVM 2 3 0,1 /1, /2, /4, /8, off 2 XT2Off XT2IN XT2 Oscillator XT1OUT Vcc Vcc Rsel SCG0 3 0 DC- Gen P2.5/Rosc 1 DCOR DCO 3 MOD 5 SELS DIVS 2 0 /1, /2, /4, /8, off 1 Sub-System Clock
48
ACLK
2 MCLK
DCOCLK
SCG1
SMCLK
32768
NOTA! Es necesario verificar el estado de flag OSCFAULT antes de cambiar MCLK a LFXT1. La operacin a prueba de fallas, automticamente cambia MCLK a DCO si es puesto el flag OSCFAULT (falla de cristal).
49
SetupBC Mainloop
bis jmp
#OSCOFF,SR Mainloop
NOTA! La fuente por defecto de reloj al momento del Power UP es el DCO. La configuracin posterior define la fuente de reloj a utilizar.
50
51
bis.b
#06h,&BCSCTL1
; DCO~2MHz
bis.b mov.b
#07h,&BCSCTL1 #0E0h,&DCOCTL
; DCO~5Mhz ;
bic.b mov.b
#07h,&BCSCTL1 #DIVS1+DIVS0,&BCSCTL2
; DCO~100kHz ; SMCLK=DCOCLK/8
52
ACLK= LFXT1 (o fraccin) MCLK= LFXT1 o DCOCLK (o fraccin) SMCLK= LFXT1 o DCOCLK (o fraccin)
SetupBC Mainloop
bis.b jmp
#XTS,&BCSCTL1 Mainloop
NOTA! Es necesario verificar el estado de flag OSCFAULT antes de cambiar MCLK a LFXT1. La operacin a prueba de fallas, automticamente cambia MCLK a DCO si es puesto el flag OSCFAULT (falla de cristal).
53
MSP430F11x1
P1.7 TEST P1.6 Vcc P1.5 P2.5 SMCLK/P1.4 Vss XOUT P1.3 XIN P1.2 RST P1.1 P2.0/ACLK P1.0 P2.4 P2.1 P2.2 P2.3
SMCLK
ACLK
; ; Out_ACLK Out_SMCLK
; ; ; ;
54
Una frecuencia de referencia ej. ACLK o 50/60Hz es usada para medir DCOCLKs Manipulacin de software peridica o predefinida estabiliza DCOCLK DCOCLK es programable digitalmente en el rango de: 100kHz - 8Mhz
Rsel SCG0
DCO
3
MOD
5
DCGenerator
DCOCLK
Modulator MOD
55
Captura 122us
15
CCI2B
1 2 3
Capture
15
Timer_A
0
Intervalo
CCI2B_ISR mov sub mov cmp jlo jeq dec.b jmp inc.b jmp clr reti &CCR2,R14 R15,R14 &CCR2,R15 #122,R14 IncDCO DoneDCO &DCOCTL Test_DCO &DCOCTL Test_DCO &CCTL2 ; ; ; ; ; ; ; ; ; ; ; ; R14 = R14 = R15 = Delta
CCR2
si es igual termina decrementa si es mayor incrementa si es menor detiene CCR2 retorna de subrutina
56
MSP430 Introduccin CPU de 16bits Interrupciones, Reset y modos de operacion Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
57
MSP430 usa arquitectura Von Newan Todos los perifricos estn mapeados en memoria. Se puede utilizar cualquier instruccin con estos registros
Vectores de interrupcin
0FFFFH
Memoria de Programa
Info. Memory
Bootstrap Loader
RAM
Registros de Perifricos
0200h
000h
58
Si la escritura o borrado se inicia desde la memoria de programa, la CPU es detenida mientras dura el proceso. Al borrar la memoria, el estado lgico de cada bit es 1, la escritura pone los bits en estado lgico 0.
60
61
62
MPY, MPYS, MAC, MACS 16 u 8-bit No hay instrucciones especiales. La operacin comienza moviendo el primer operando y termina moviendo el segundo operando. La multiplicacin esta lista en el siguiente ciclo.
mov.w mov.w #01234h,&MACS #04567h,&OP2
32-Bit Adder Multiplexer SUMEXT 13Eh C S 31 RESHI 32-Bit 13Ch Multiplexer RESLO 013Ah 0
66
MSP430 Introduccin CPU de 16bits Interrupciones, Reset y modos de operacion Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
67
Vectores de interrupcin
0FFFFH
Memoria de Programa
Info. Memory
Bootstrap Loader
RAM
Registros de Perifricos
0200h
000h
68
I/O
69
70
WATCHDOG TIMER Puede operar como Watchdog Timer o temporizador. Cualquier acceso al registro WDTCTL esta protegido por contrasea. 8 Opciones de post-scaller configurables por software. Fuente de reloj seleccionable por software (dependiente). Registro de control mapeado en ram. Completamente configurable por software. Puede ser detenido para ahorrar energa.
71
WDTCTL 4 Interrupt Y 3 2 1 A B Clear CLK EQU Q6 Q9 Q13 Q15 16 bit Counter 0 1 0 1 1 0 1 Password Comparator 16 MSB MDB
Cualquier acceso al registro WDTCTL debe incluir 05Axxh a modo de contrasea Registro de control mapeado en ram, completamente configurable por software.
PUC
SMCLK ACLK
0120h
R/W 7
EQU
MDB, Byte Inferior 0 NMIES NMI TMSEL CNTCL SSEL IS1 ISO HOLD
Comparacin de contrasea
Lectura: Escritura:
Byte Superior se lee como 069h Byte Superior se debe escribir como 05Ah, de otra forma se produce una violacin de contrasea y se efecta un PUC
05A00h
#(WDT_Key+80h),&WDTCTL #(WDT_Key+1Dh),&WDTCTL
73
MSP430 Comparador A
COMPARADOR ANALOGO A Todos los terminales disponibles Referencia interna Filtro pasa bajos para salida. Salida asignable a captura de TA Control de energa por software Intercambio de entradas para compensacin de offset (CAEX) Generador de voltaje interno para referencia Referencia interna configurable por software.
74
MSP430 Comparador A
75
MSP430 Timers A y B
TIMERS Toda CPU MSP430 cuenta con Timer A3, algunas CPUs incluyen Timer B3 y otras Timer B7 Contadores de 16bits Interrupcin por rebalse del contador Fuentes de reloj seleccionadas y configuradas por software. Cuatro modos de operacin. 3 (o 7) registros de captura/comparacin. Salidas configurables con capacidad PWM (por hardware) Vector de interrupcin para decodificacin rpida de interrupcin. El Timer B puede contar en 8,10,12 o 16 bits.
76
Modo UP/DOWN
El timer cuenta entre 0 , CCR0 y 0
0FFFFh CCR0
UP/DOWN Mode
0h
Modo UP
El timer cuenta desde 0 hasta CCR0
0FFFFh
Modo Continuous
El timer cuenta hasta rebalsar.
Continuous Mode
0FFFFh
CCR0
0h
0h
77
78
MSP430 Timer A3
P1.0 ACLK SMCLK P2.1 15 Divider 1/2/4/8 16-bit Timer CLK RC 0 Mode Continous, UP, UP/Down
15 Capture P1.1 P2.2 GND VCC CCI0 15 CAOUT P1.2 GND VCC CCI1 15 Capture P1.3 ACLK GND VCC CCI2 Capture Mode Comparator 2 Capture/ Compare Register CCR2 Capture Mode Comparator 1 Capture Capture/ Compare Register CCR1 Capture Mode Comparator 0 Capture/ Compare Register CCR0
Set_TAIFG
P1.1 P1.5
79
80
( F13x en adelante )
0 Mode Continous, UP, UP/Down
Set_TBIFG
Capture P4.0 P4.0 GND VCC CCI0 P4.1 P4.2 P4.3 P4.4 P4.5 Capture Mode
ADC12I2
CCR1 - CCR6
81
CCIx
15 CCTLx 182h to 19Ah CAPTURE MODE rw(0) rw(0) INPUT SELECT rw(0) rw(0) SCS rw(0) rw(0) CLLD rw(0) CAP rw(0) rw(0) OUTMODx rw(0) rw(0) CCIE CCI rw(0) r
82
MSP430F11x1
TEST Vcc P2.5 Vss XOUT XIN RST P2.0 P2.1 P2.2 P1.7 P1.6 P1.5 P1.4 P1.3 TA1/P1.2 P1.1 P1.0 P2.4 P2.3
0 - CCR0
0 - CCR0
0 - CCR0
CCR1
CCR1
CCR1
; ; ; ; ;
P1.2 salida P1.2 TA1 configura modulo define periodo PWM CCR1 modo reset/set CCR1 ciclo til PWM
SetupTA Mainloop
Modo USART Modo SPI Modo I2C (solo procesadores F15x y F16x)
CPUs con 1 y 2 puertos serie idnticos.
84
85
86
87
88
Formato Byte/Word para transferencia. Direccionamiento de 7 o 10 bits Llamada general Start / restart / Stop Modo Multi Master transmitter / Slave Receiver Modo Multi Master Receive / Slave Transmitter Modo Combinado Master TX / RX y RX / TX Modo Standard (100kbps) y Modo Fast (400kbps)
FIFO incorporada para lectura/escritura. Generacin de reloj programable. Datos de 16 bits de ancho para aumentar ancho de banda Cuenta automtica de bytes de datos
89
90
Capacidad de muestreo de 200ksps+ 8 Canales externos / 4 Canales internos. Conversin iniciada por software, TA o TB* Auto-scan con 16 registros de conversin. Sample&hold programable. Medicin de referencias y tensin interna. Diodo de temperatura interno. 4 Modos de conversin:
Conversin Conversin
nica en un canal nica en secuencia de canales sucesivas en un canal sucesivas en secuencias de canales
ADC12 / ADC10
Conversiones Conversiones
91
A0 A1 A2 A3 A5 A5 A6 A7
Multiplexer
VR-
VR-
Conversion Clock
CLKSRCx
AVCC 16 x 12-bit 16 x 10bits Sample sample buffer Buffer 16 x 8-bit Buffer Control ADC12Intx
92
Reference
V R-
V R+
Divide by 1,2,3,4,5,6,7,8
93
MSP430 DAC12
CONVERSORES DIGITAL / ANALOGO
2 Conversores Monolticos de 12bits con salida de voltaje. Resolucin configurable de 8 o 12 bits Settling time configurable (para ahorro de energa) Seleccin de referencia interna o externa. Formato de datos Binario o complemento de 2. Auto calibracin para correccin de offset. Capacidad de sincronizacin para mltiples dacs Presente en MicrosMSP430F15x/F16x
DAC12
94
MSP430 DAC12
Comparte referencias con el conversor Analogo / Digital
95
MSP430 Introduccin CPU de 16bits Interrupciones, Reset y modos de operacin Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
96
Programacin y depuracin IN-CIRCUIT va JTAG JTAG permite emulacin y control en tiempo real. JTAG permite acceso completo a registros, emulacin paso a paso, etc JTAG protegido por fusible FISICO Programador JTAG de bajo costo Programacin IN-CIRCUIT va BSL (produccin) BSL solo para propsitos de programacin
97
MSP430F11x1
TEST Vcc P2.5 Vss XOUT XIN RST P2.0 P2.1 P2.2 TDO/P1.7 TDI/P1.6 TMS/P1.5 TCK/P1.4 P1.3 P1.2 P1.1 P1.0 P2.4 P2.3
Puerto Paralelo 7
TEST en alto, habilita JTAG Los terminales usados por JTAG estn compartidos con los terminales P1.7-P1.4 en los micros de 20 y 28 pines.
98
MSP430F14x
VCC RST VSS Vss TDO TDI TMS TCK
Puerto Paralelo 7
99
Conector JTAG
MSP430F135
100
101
Interfaz nica para todas las variantes de MSP430. Kickstart IDE Emulacin In-Circuit / Software Ejecucin de cdigo en tiempo real. HW breakpoints/single step Visualizacin/modificacin de registros y memoria.
102
Interfaz nica para todas las variantes de MSP430. Kickstart IDE Emulacin In-Circuit / Software Ejecucin de cdigo en tiempo real. HW breakpoints/single step Visualizacin/modificacin de registros y memoria.
103
MSP430F1121
TEST Vcc P2.5 Vss XOUT XIN RST P2.0 P2.1 P2.2 RXD
0C00h
Puerto Serie
Memoria de programa
Falsh de datos
Bootstrap Loader
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.4 P2.3
TXD
RS232 Driver
RAM
Registros de Perifricos SFRs
RST/NMI
Bootloader starts
104
Se utiliza una interfaz opto-aislada en lugar del Level Shiffter tradicional. La interfaz es de fcil construccin. Permite programar y depurar sistemas alimentados directamente desde las lneas de poder de AC
105
MSP430 Introduccin CPU de 16bits Interrupciones, Reset y modos de operacin Sistema de Reloj Perifricos auxiliares Perifricos comunes Desarrollo y depuracin Demostracin.
106
107