seminario_msp430
TRANSCRIPT
![Page 1: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/1.jpg)
1
![Page 2: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/2.jpg)
2
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsReset, interrupciones y modos de operacionSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 3: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/3.jpg)
3
Finalidad / Orientación de MSP430
APLICACIONESAPLICACIONES
Sistemas alimentados con baterías (low power)Sistemas de procesamiento de señalesSistemas de tamaño limitadoSistemas de control en general. Sistemas de control numérico
![Page 4: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/4.jpg)
4
CPU RISC de 16-bit de Arquitectura Von NeuwmanSolo 27 instrucciones básica a aprender. (+24 emuladas)
Múltiples 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)
Alimentación : 1.8 ~ 3.8v (operación)
Alimentación : 2.7 ~ 3.8v (programación)
Frecuencia: DC ~ 8MHz Temperatura: - 40 ~ + 85C Desarrollo y depuración IN-CIRCUIT
Características generales (Rangos de operación)
![Page 5: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/5.jpg)
5
Source
AddressModesDestination Instructions
MSP430
Source
AddressModesDestination Instructions
Otros MicrosSet de instrucciones complejoInstrucciones especiales a aprenderPoco eficienteMayor área de silicio.
MPS430 Posee arquitectura ¨ortogonal¨
Ortogonal = todas las instrucciones funcionan con todos los modos de direccionamiento.
Set de instrucciones reducidoInstrucciones fáciles de aprender.Sin instrucciones especialesBajo consumoCódigo eficienteCódigo compacto
![Page 6: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/6.jpg)
6
Memoria de Datos
Bootstrap Loader
RAM
Vectores deInterrupción
Memoria de Programa
1000h
Registros de Periféricos
SFR’s
Mapa de memoria:
Vectores de interrupción de 16-bit
Memoria Flash, OTP o ROM para código.
128/256 Bytes de memoria Flash de información.
ROM Bootstrap loader
SRAM
Registros de periféricos (SFRs)200h
FFFFh
0C00h
p
![Page 7: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/7.jpg)
7
Memoria deINFORMACION
Bootstrap Loader
RAM
Vectores de interrupción
Memoria dePrograma
1000h
Segmento 0Con vectores de interrupción
Segmento 1
Segmento 2
Segmento 6
Segmento 7
0FFFFh
0FA00h
0FE00h
0FC00h
0F400h
0F200h
01000h
0F000h
01080hSegmento A
Segmento BRegistros deperiféricos
Distribución de Memoria y Periféricos:
ROM, RAM, Flash y SFR’s 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 Programación vía JTAG o BSL in-circuit.Protección por contraseña o fusible físico de seguridad
![Page 8: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/8.jpg)
8
*MSP430 2000 Metering Application Report (SLAA024), Microchip (AN526)
Ciclos de CPU: Instrucciones
MSP430/ CPU de 8 bit MSP430/ CPU de 8 bits8+8 ADD 1 1 1 18x8 MPY 63 71 7 16 16+16 ADD 1 8 1 716x16 MPY 150 333 12 33 Binary to BCD 96 719 9 30
Total 311 1132 30 87
MSP430 v/s CPU de 8 bits
¿Por que una nueva CPU?
![Page 9: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/9.jpg)
9
MSP430 v/s otras CPU’s
Comparación respecto a otros microcontroladores:
Frente a similares funciones matemáticas y en condiciones similares.
Tamaño del código (bytes)
Ciclos de instrucción
![Page 10: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/10.jpg)
10
MSP430 v/s otras CPU’s
Bytes Ciclos Bytes Ciclos Bytes Ciclos Bytes Ciclos Bytes Ciclos Bytes Ciclos
Mat. 8b 172 299 116 157 386 318 141 112 354 680 285 387
Matr. 8b 118 2899 364 5300 676 20045 615 17744 356 9098 380 15412
Swt. 8b 180 50 342 131 404 109 209 84 362 388 387 214
Mat 16b 172 343 174 319 598 625 361 426 564 802 315 508
Matr. 16b 156 5784 570 24426 846 27021 825 29468 450 15280 490 23164
Swt. 16b 178 49 388 144 572 163 326 120 404 398 405 230
Mat 32b 250 792 316 782 960 1818 723 2937 876 1756 962 1446
Mat P.F. 662 1207 1042 1601 1778 1599 1420 2487 1450 2458 1429 4664
Filtro FIR 668 152193 1292 164793 2146 248655 1915 206806 1588 245588 1470 567139
Mult. Matr. 252 6633 510 16027 936 36190 345 9454 462 26750 499 26874
Total 2808 170249 5114 213680 9302 336543 6880 269638 6866 303198 6622 640038
Normal. 1.00 1.00 1.82 1.26 3.31 1.98 2.45 1.58 2.45 1.78 2.46 3.76
MSP430F135 ATmega8 PIC18F242 8051 H8/300L MC68HC11
![Page 11: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/11.jpg)
11
F41xLCD96
F11x$0.99
x33xLCD120Timer_AUSARTMPY
ROM/OTP+LCD2.5 - 5v FLLBasic Timer, 8-bit T/CTimer/Port Slope ADC
x32xLCD84ADC14
x31xLCD92
FLASH1.8 - 3.6vBasic ClockTimer_AComparator_A
F12xUSART
F13xADC12Timer_A/BUSART
F14xADC12Timer_A/B(2) USARTMPY F43x
FLASH+LCD1.8 - 3.6vFLL+ SVSTimer_A/B, Basic TimerComparator_A
Car
acte
rístic
as/D
esem
peño
F44xLCD160 ADC12Timer_A/B(2) USARTMPY
Línea de productos MSP430
F5xx
F43x
FLASH1v, 50MHzUSB, DMA4Mb memoryIntegrated RF
F15xADC12Timer_A/B(2) USARTMPY, DAC12
![Page 12: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/12.jpg)
12
FLASH
1/4kB
RAM
128/256B
Power-OnReset
8MhzBasicClock
Watchdog
15-bit
RISC CPU16-bit
JTA
G/D
eBU
G
ACLK
SMCLK
MAB
MDB
Timer_A3
16-bit
Comp_A
P2
Port 1with IRQcapability
Port2with IRQcapability
MCLK
ACLK
SMCLK
XIN XOUT VCC VSS RST/NMI P1.x
8
P1.x
6
TEST
MSP430x11x(1)
MSP430F1101 1kB Flash $0.99
![Page 13: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/13.jpg)
13
FLASH
8/16kB
RAM
512/256B
Power-OnReset
Port 3/48MhzBasicClock
Watchdog
15-bit
Comp_A USART0UART/SPI
RISC CPU16-bit
JTA
G/D
eBU
G
Port 5/6
SMCLK
MAB
MDB
Timer_A3
16-bit
Timer_B3
16-bit
ADC12 200ksps Autoscan Vref Temp
Port 1/2with IRQcapability
MCLK
ACLK
SMCLK
JTAG 4
ACLK
LFXT1 XT2 VCC VSS RST/NMI P5.x P6.x
8 8
P3.x P4.x
8 8 2 2
P1.x P2.x
8
AVCC AVSS
VRef+ VRef-VeRef+
8
MSP430F133 8kB Flash $2.95
MSP430x13x
64 TQFP
![Page 14: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/14.jpg)
14
FLASH
32 - 60kB
RAM
1/2kB
Power-OnReset
Port 3/48MhzBasicClock
Watchdog
15-bit
Comp_A USART0UART/SPIUSART1
USART/SPI
RISC CPU16-bit
JTA
G/D
eBU
G
Port 5/6
SMCLK
MAB
MDB
Timer_A3
16-bit
Timer_B7
16-bit
ADC12 200ksps Autoscan Vref Temp
Port 1/2with IRQcapability
MPY/MAC
8/16-bit
MCLK
ACLK
SMCLK
JTAG 4
ACLK
LFXT1 XT2 VCC VSS RST/NMI P5.x P6.x
8 8
P3.x P4.x
8 8 2 2
P1.x P2.x
8
AVCC AVSS
VRef+ VRef-VeRef+
8
MSP430x14x
64 TQFP MSP430F149 60kB Flash $5.95
![Page 15: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/15.jpg)
15
ROM2-16kB
orOTP16kB
RAM
128-512B
Power-OnReset
8b Timer/Counter
UART
4MhzFLL
Oscillator
Watchdog
15-bit
BasicTimer 1(2) 8-bit
LCD Driver
92 Seg.
RISC CPU16-bit
JTA
G/T
EST
Port0with IRQcapability
ACLK
MCLK
MAB
MDB
Timer/Portslope ADC
(2) 8-bit
ACLK
MCLK
MCLK
XIN XOUT XBUF VCC VSS RST/NMI P0.x
CIN TP.x
Sx/0x
COMx
Rx
4 6
23
4
8
JTAG 4
MSP430x31x
MSP430C311S 2kB ROM $1.75
![Page 16: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/16.jpg)
16
ROM8/16kB
orOTP16kB
RAM
256/512B
Power-OnReset
8b Timer/Counter
UART
4MhzFLL
Oscillator
Watchdog
15-bit
BasicTimer 1(2) 8-bit
LCD Driver
84 Seg.
RISC CPU16-bit
JTA
G/T
EST
Port0with IRQcapability
ACLK
MCLK
MAB
MDB
ADC14
12+2 bit
Timer/Portslope ADC
(2) 8-bit
ACLK
MCLK
MCLK
XIN XOUT XBUF VCC VSS RST/NMI P0.x
CIN TP.x
Sx/0x
COMx
AVCC AGND
AxRext Rx
4 6 6
21
4
8
JTAG 4
SVcc
MSP430x32x
![Page 17: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/17.jpg)
17
Power-OnReset
4MhzFLL
Oscillator
BasicTimer 1(2) 8-bit
LCD Driver
120 Seg.
RISC CPU16-bit
JTA
G/T
EST
Port 0with IRQcapability
ACLK
MCLK
MAB
MDB
Timer/PortSlope ADC
(2) 8-bit
8b Timer/CounterUART
ACLK
MCLK
MCLK
ROM24/32kB
orOTP32kB
RAM
1kB
Port 3/4
Watchdog
15-bit
Timer_A5
16-bit
Port 1/2with IRQcapability
USARTUART/SPI
MPY/MAC
8/16-bit
XIN XOUT XBUF VCC VSS RST/NMI P0.xP3.x P4.x
8 8 8
P1.x P2.x
8 8
TP.x Rx
4 6
CIN
Sx/0x
COMx
30
4
3 3
JTAG 4
MSP430x33x
![Page 18: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/18.jpg)
18
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsReset, interrupciones y modos de operacionSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 19: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/19.jpg)
19
Source
AddressModesDestination Instructions
MSP430
Source
AddressModesDestination Instructions
Otros MicrosSet de instrucciones complejoInstrucciones especiales a aprenderPoco eficienteMayor área de silicio.
MPS430 Posee arquitectura ¨ortogonal¨
Ortogonal = todas las instrucciones funcionan con todos los modos de direccionamiento.
Set de instrucciones reducidoInstrucciones fáciles de aprender.Sin instrucciones especialesBajo consumoCódigo eficienteCódigo compacto
![Page 20: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/20.jpg)
20
51 instrucciones disponibles en assembler: 27 instrucciones básicas RISC24 instrucciones emuladas CISC
7 modos de direccionamiento para origen , y 4 para destinoModo de Registro (directo)Modo indexadoModo SimbólicoModo AbsolutoModo IndirectoModo Indirecto c/Auto incrementoModo Inmediato
Procesamiento por Bit, byte o word.Instrucciones y modos de direccionamiento idénticos para RAM, ROM, EPROM, Flash y Periféricos.
MSP430 Tipos de intrucciones:
![Page 21: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/21.jpg)
21
ALU de16-bitBuses de datos y direcciones de 16-bit16, registros multi propósito de 16-bit(acumuladores)
R0/PC (Program Counter)R1/SP (Stack Pointer)R2/SR (Status)R3/CG (Constant Gen.)R4 - R15 (Propósito general)
Acceso total a todos los registros incluyendo PC, SP, SR y CG.Operaciones en un cicloSoporte para operaciones Memoria~MemoriaDiseño optimizado para programación en C.
Arquitectura de MSP430
015 0R0/PC - Program Counter
16-bit ALUDST SRC
MDB - meory data bus memory address bus - MAB
16
0R1/SP - Stack PointerR2/SR - Status V SCG1 SCG0 OscOff CPUOff GIE N Z C
R3/CG - Constant Generator
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
16
BUS DE DATOS BUS DE DIRECCIONES
![Page 22: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/22.jpg)
22
Los registros PC y SP son completamente manipulables como cualquier registro. (ambos están mapeados en RAM)
Contador de programas de 16bits -> 64k de código no paginado.
push #01234hpop R8
Word1Word2Word3
0xxxh0xxxh - 20xxxh - 40xxxh - 60xxxh - 8
Address
SP, TOS
TOS: top-of-stack
SP, TOS SP, TOS01234h
Word1Word2Word3
Word1Word2Word3
0xxxh0xxxh - 20xxxh - 40xxxh - 60xxxh - 8
Address
0xxxh0xxxh - 20xxxh - 40xxxh - 60xxxh - 8
Address
0
15 0
rw
R0/PC – Contador de programa
0
15 0
rw
R1/SP - Stack Pointer
MSP430 Program Counter y Stack Pointer
![Page 23: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/23.jpg)
23
CZNGIECPUOff
OscOffSCG0SCG1VReservado
15 9 8 7 0
rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0
R2/SR – Registro de estado
Bit’s que definen los modos de bajo consumo.
;;------------------------------------------------------------------------; BIT’s del registro de estado;------------------------------------------------------------------------CPUOFF equ 00010hOSCOFF equ 00020hSCG0 equ 00040hSCG1 equ 00080hGIE equ 00008hLPM3 equ SCG1+SCG0+CPUOFF+GIELPM4 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
MSP430 SR (registro de estado)
Bit’s que seleccionan el reloj a usar
![Page 24: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/24.jpg)
24
; Ejemplos:
1 CLR dst es reemplazado por: MOV R3,dstR3 ha sido cargado con 00h
2 INC dst es reemplazado por: ADD 0(R3),dstR3 ha sido cargado con 01h
El uso del generador de constantes queda restringido a solo constantes de usocomún como 00h, 01h, FFh, etc…
En general el uso de este registro esta orientado a la optimización del código, razón por la que es manipulado solo por el Linker (assembler).
El compilador automáticamente usa R3 para insertar valores inmediatos o constantes en el código fuente. Estos valores inmediatos no requieren código adicional.
0
15 0
rw
R3/CG - Constant Generator
MSP430 CG (Generador de constantes)
Registro usado para insertar constantes en el código con instrucciones de solo un parámetro. (manipulado por el linker)
![Page 25: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/25.jpg)
25
MSP430 dispone de 12 registros (R4 ~ R15) de propósito general para ser usados como acumuladores.
0
15 0
rw
R4 ~ R15
MSP430 Registros multi propósito
Registro de propósito general de 16bits, usados como acumuladores.
![Page 26: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/26.jpg)
26
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.
add.w R5,R6 ; operación Word registro a registroadd.b R5,R6 ; operación Byte registro a registro
;add.w #02001h,R7 ; operación Word inmediato 2001 a registroadd.b #099h,R7 ; operación Byte inmediato 2001 a registro
;add.w 0200h,R8 ; operación Word RAM 200h a R8add.b 0200h,R8 ; operación Byte RAM 200h a R8
;add.w 0C100h,R9 ; operación Word Flash C100h a R9add.b 0C100h,R9 ; operación Byte Flash C100h a R9
;add.w 0C100h,0200h ; operación Word Flash a RAMadd.b 0C100h,0200h ; operación Byte Flash a RAM
;add.w #01234h,&CCR0 ; operación Word inmediato a Periféricoadd.b #099h,&P1OUT ; operación Byte inmediato a Periférico
Ventajas de arquitectura von-Neumann
![Page 27: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/27.jpg)
27
;;; Modo de Registro (Directo), rápido, de solo un ciclo entre registros R0 ~ R15;
add.w R7,R8 ; R7 + R8 >> R8mov.w R7,R8 ; R7 >> R8mov.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 R7mov.b R5,9(R10) ; Byte inferior de R5 >> (R10+9)
;; Modo Simbólico, el contenido de la “etiqueta” se calcula como una diferencia desde PC
add.w EDE,TONI ; (EDE) + (TONI) >> (TONI)mov.w EDE,R8 ; (EDE) >> R8mov.b TONI,EDE ; Mueve byte (TONI) a (EDE)
;; Modo Absoluto, la “etiqueta” es una dirección absoluta.
add.w &CCR1,&CCR2 ; (CCR1) + (CCR2) >> (CCR2)mov.w &TACTL,R8 ; (TACTL) >> R8mov.b &P1IN,&P2OUT ; Mueve (P1IN) a (P2OUT)
Modos de Direccionamiento:
![Page 28: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/28.jpg)
28
;;; Modo Indirecto, Cualquier registro es usado como puntero;
add.w @R8,R9 ; (R8) + R9 >> R9mov.w @R9,0(R12) ; (R9) >>(R12+0) >>> @R12 en destinomov.b @R8,&P2OUT ; (R8) >> P2 registro de periféricodec.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 >> R10mov.w @R10+,0(R12) ; (R10) >> (R12+0),R10+2 >> R10 mov.b @R5+,&P2OUT ; (R5) >> P2OUT, R5+1 >> R5inc.w @R5+ ; (R5) + 1 >> (R5), R5+2 >> R5
;; Modo Inmediato, después de la instrucción sigue una constante.;
add.w #0A00h,R8 ; 0A00h + R8 >> R8mov.w #0010,&TACTL ; 0Ah >> Timer_A Registro de periféricobit.w #0100h,4(R9) ; Prueba si Bit 8=1 ? En la 4ta word. mov.b #01Fh,0(R12) ; 01Fh >>(R12+0)
Modos de Direccionamiento
Se usa un offset de “0” y direccionamiento indexado para el destino de las operaciones.
![Page 29: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/29.jpg)
29NOTA: 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)
Formato I Origen,destino
Formato II Origen,argumento
Formato III +/- Offset 9bit
auxiliares
add(.b) Br jmp Clrc addc(.b) call jc setc and(.b) swpb Jnc clrz bic(.b) sxt jeq setz bis(.b) push(.b) jne clrn bit(.b) pop.(b) jge setn cmp(.b) rra(.b) jl dint dadd(.b) rrc(.b) jn eint mov(.b) inv(.b) nop sub(.b) inc(.b) ret subc(.b) incd(.b) reti xor(.b) dec(.b) decd(.b) adc(b) sbc(.b) clr(.b) dadc(.b) rla(.b) rlc(.b) tst(.b)
MSP430 Set de Instrucciones
![Page 30: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/30.jpg)
30
Se usan como cualquier instrucción incrustada, sin restricciones.Instrucciones con formato CISC – (el código 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 código extra.
;;; inc.w R5 ; Incremento (emulada)
add.w #01h,R5 ; instrucción incrustada
; clrc ; limpiar carry (emulada)bic.w #01h,SR ; instrucción incrustada
; eint ; habilitar interrupciones (emulada)bis.w #08h,SR ; instrucción incrustada
; br R5 ; saltar a la pos. contenida en R5 (emulada)mov.w R5,PC ; instrucción incrustada
; ret ; Restorna desde una subrutina (emulada)mov.w @SP+,PC ; instrucción incrustada
MSP430 Instrucciones Emuladas
![Page 31: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/31.jpg)
31
Op-Code Source-Register As Destination-RegisterFormato I Ad B/W
Op-Code Ad D/S- RegisterFormato II B/W
Op-Code 10-bit PC offsetFormato III Condition
Ad = modo de direccionamiento usado para destinoAs = modo de direccionamiento usado para origenB/W = operación como byte o como wordCondition = Condición para un salto condicionalD-Register = registro usado como destino D/S-Register = registro usado como origen/destinoOp-code = código de la instrucción usadaS-Register = registro usado como origen
add.w R7,R8 ; 16 bits R7 + R8 >> R8 (16bits)Add.b R7,R8 ; 8 bits R7 + R8 >> R8 (8bits)
rlc.w R9 ; 16b de R9 son desplazados a la izquierda a través del carryrlc.b R9 ; 8b de R9 son desplazados a la izquierda a través del carry
jmp Label ; salta a la etiqueta “Label”
MSP430 Formato de instrucciones
![Page 32: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/32.jpg)
32
jmp salta a una posición del código en forma incondicionalEs el método incondicional mas rápido de controlar el flujo del programa con offset’sde -511/+512 bytes.1 word.
br Salto largo incondicional a cualquier parte del código.Se carga una posición de16-bit en el contador de programa. No es una llamada a subrutina ya que no se respalda posición de retorno alguna.2 words,.
call Llamada a subrutinasSe carga una posición de 16-bit en el contador de programa, y la dirección de retorno y el contenido del registro de estado son automáticamente puestos en el stack2 words.
Instrucciones para control de flujo:
j
![Page 33: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/33.jpg)
33
Un valor con signo de 10bits, permite saltos en el rango de - 511 a + 512 wordsrelativos a la dirección actual. Los saltos requieren solo una Word de código y dos ciclos. Se utilizan para controles el flujo con saltos cortos.
;;Mainloop;-----------------------------------------------------------------------------; Retardo por software en R5;-----------------------------------------------------------------------------
mov.w #1000, R5 ; carga cuenta de 1000Loop1 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
Ejemplos de Saltos:
![Page 34: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/34.jpg)
34
;;; Ejemplo de una tabla condicional de salto usando R15
clr.w R15 ; limpia puntero para saltosMainloop br Table(R15) ; saltaTable DW Ref0
DW Ref1DW Ref2
Ref0 clr.b &CACTL1 ; configura comparador Ajmp Next
;Ref1 mov.b #CAREF0+CAON,&CACTL1 ; 0.25*Vcc en P2.3, activa comparador
jmp Next;Ref2 mov.b #CAREF1+CAON,&CACTL1 ; 0.5*Vcc en P2.3, activa comparador;next incd.w R15 ; Incrementa puntero para saltos
and #06h,R15 ; asegura salto dentro del rango?;; Ejemplo de salto largo directo
br #Mainloop ;
Los Saltos Largos son posibles hacia cualquier parte de los 64k de memoria y se pueden utilizar con cualquier modo de direccionamiento.
Ejemplos de Saltos Largos:
![Page 35: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/35.jpg)
35
;; Ejemplo de llamada directa:
call #Setup ; llama subrutina dirección de retorno >> TOS;; Ejemplo de llamadas según tabla condicional
Mainloop call Table(R15) ; llama sub rutina dirección de retorno >> TOSxor.w #02h,R15 ; conmuta punterojmp Mainloop ; repite
;Table DW Sub1
DW Sub2
Sub1 clr.b &P1OUT ; pone en “0” todas la salida de P1nopret ; retorna de subrutina (mov SP+,PC)
;Sub2 mov.b #0FFh,P1OUT ; pone en “1” todas las salida de P1
nopret ; retorna de subrutina (mov SP+,PC)
;Setup clr R15 ; limpia el puntero de llamadas
mov.b # 0FFh,&P1DIR ; puerto 1 como salidaret ; retorna de subrutina (mov SP+,PC)
Las llamadas son posibles desde y hacia cualquier parte de los 64K de memoria (y en todos los modos de direccionamiento).
Ejemplos de Llamadas a Subrutinas
![Page 36: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/36.jpg)
36
bic(.b) Pone a “0” uno o mas bit’s en el destino.Se operan lógicamente el inverso del origen y el destino. (and)El registro de estado no es afectado.
bis(.b) Pone a “1” uno o mas bit’s en el destino.se operan lógicamente el origen y el destino (or),El registro de estado no es afectado.
bit(.b) Prueba uno o mas bits en el destino.Se operan lógicamente el origen y el destino (and)El resultado afecta solo al registro de estado.
cmp(.b) Compara Origen con Destino.El origen es restado del destino. El resultado afecta solo al registro de estado.
Manipulación de Bit’s:
![Page 37: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/37.jpg)
37
Ciclos de instrucciones:
Accion: Nº de ciclos
Largo de instruccion
Retorno desde interrupcion (reti) 5 1
Interrupcion 6 -
Reset por WDT 4 -
Reset (RST / NMI) 4 -
Ciclos de instrucciones:
![Page 38: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/38.jpg)
38
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsInterrupciones, Reset y modos de operacionSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 39: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/39.jpg)
39
0FFFFh
16 vectores disponiblesLos vectores se cargan en
el PCPC y SR se respaldan en
el stack en forma automática.
MSP430 Vectores de Interrupcion
Memoria de info
Bootstrap Loader
RAM
Vectores de interrupción
MEMORIA DEPROGRAMA
Registros de periféricos
Fuente Flag Interr. Direccion Prior.
Pwr.Up. Wdt WDTIFG RESET 0FFFEh 15
NMI, OF, FV. NMIIFG No masc 0FFFCh 14
Timer B TBCCR0 Masc 0FFFAh 13
Timer B TBCCR1-6 Masc 0FFF8h 12
Comparador A CAIFG Masc 0FFF6h 11
WDT (interv) WDTIFG Masc 0FFF4h 10
USART0 RX URXIFG0 Masc 0FFF2h 9
USART0 TX UTXIFG0 Masc 0FFF0h 8
ADC12 ADC12IFG Masc 0FFEEh 7
Timer A TACCR0 Masc 0FFECh 6
Timer B TACCR1-2 Masc 0FFEAh 5
I/O port P1 P1IFG0-7 Masc 0FFE8h 4
USART1 RX URXIFG1 Masc 0FFE6h 3
USART1 TX UTXIFG1 Masc 0FFE4h 2
I/O port P2 P2IFG0-7 Masc 0FFE2h 1
0FFE0h 0
![Page 40: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/40.jpg)
40
Item1Item2 SP, TOS
Item1Item2
SP, TOSPCSR
Item1Item2 SP, TOS
PCSR
Durante una interrupción:PC copiado en stackSR copiado en stackGIE, CPUOFF, OscOFF y SCG1 son limpiadoslos flag IFG son limpiados cuando provienen de
una fuente única (ej. Usart)
Después de una interrupción:SR es recuperado desde el stackPC 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.
Procesamiento de Interrupciones:
Antes de una interrupción:
![Page 41: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/41.jpg)
41
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
MSP430F11x1 posee capacidad de interrupción en ambos flancos en todos sus pinesCualquier interrupción habilitada saca de los modos de bajo consumo a la CPU
;;SetupP2_0 bic.b #01h,&P2DIR ; P2.0 configurada como entrada
bis.b #01h,&P2IES ; Interrupción en flanco H->Lbis.b #01h,&P2IE ; Interrupción habilitada en P2.0
Mainloop mov.w #LPM3+GIE,SR ; Entra en LPM3 con interrupciones habilitadasnop ; ciclo inútil.
; P2_ISR bic.b #01h,&P2IFG ; limpia flag de interrupción en P2.0
nop ; ciclo inútil…reti ; retorna al estado previo a la interrupción.
ORG 0FFE6h ; vector de Interrupcion de P2DW P2_ISR ;
MSP430 Ejemplo de interrupción:
![Page 42: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/42.jpg)
42
#include "msp430x11x1.h” ; definición de registros;
ORG 0F000h ; inicio de memoria de programaRESET mov.w #300h,SP ; inicio de stack pointerStopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; detiene WDTSetupP1 bis.b #01h,&P1DIR ; configura P1.0 como salida
;Mainloop xor.b #01h,&P1OUT ; cambia P1.0 (xor)
jmp Mainloop ; salta a repetir;
ORG 0FFFEh ; vector de reset de MSP430x11x1DW RESET ; configura inicio de programaEND
MSP430 Power-UP
1) Stack
2) WDT
3) Vector de RESET
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F1121
![Page 43: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/43.jpg)
43
Modos de bajo consumo (Low Power)
Modo LP SCG1 SCG0 OSCOFF CPUOFF CPU Mclk SMclk Aclk DCO
Activo 0 0 0 0 ON ON ON ON ON
LPM0 0 0 0 1 OFF OFF ON ON ON
LPM1 0 1 0 1 OFF OFF ON ON OFF*
LPM2 1 0 0 1 OFF OFF OFF ON OFF*
LPM3 1 0 0 1 OFF OFF OFF ON OFF
LPM4 1 1 1 1 OFF OFF OFF OFF OFF
* DCO esta deshabilitado, pero el generador de DC sigue activo a menos que se manipule sus bits de control.
Modos de Bajo Consumo
Con
sum
oen
uA
@ 1
MH
z
![Page 44: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/44.jpg)
44
1mA
9uA
“
1s 2s
Otra CPU 17,500us “power-up**”
**Microchip (AN606)
MSP430 6us wake-up*
1mA
2uA1s 2s
10-bit Frequency Integrator
/(N+1)
f Crystal
f System
32,768
Digitally Controller OsciallatorDCO
FLL - US Patent # 5,877,641
MSP430 Aplicación para RTC de 1 año:
![Page 45: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/45.jpg)
45
Ejemplo RTC : operación en LPM3 con oscilador a 32KHz (1.5uA). 1Hz ISR.
Consumo normal en LPM3 1s x 1.50uA 1.50uA
Rutina de interrupción (50 ciclos/ISR) 50us x 400uA 0.02uA
1.52uA
MSP430 posee un “wake-up” de solo 6uS, que permite un uso extendido del modo de bajo consumo LPM3
CR2032 180mAH. Corriente drenada para 10 años de vida = 0.180A/ 10 años / 365 días / 24 horas < 2.2uA
32768CR2032
MSP430x11xVcc Xin
Vss Xout
RST/NMI P2.x
RX P1.xTXDatos…
UART, SPI, IIC ... 12 Pines disponibles
MSP430 Aplicación para RTC de 1 año:
![Page 46: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/46.jpg)
46
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsInterrupciones, Reset y modos de operacionSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 47: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/47.jpg)
47
MSP430x11x/12x Sistema de Reloj Básico
2
SMCLK
Sub-System Clock
SELS DIVS2
SCG1
/1, /2, /4, /8, off
ACLK
Auxiliary Clock
MCLK
Main System Clock
Digital Controlled Oscillator+
DCO3
SELM2
DIVM2
CPUOff
MOD5
LFXTCLK
Modulator
/1, /2, /4, /8, off
DCOCLK
XIN
XOUT
0
1
DCOR
1P2.5/Rosc
0
DC- Gen
SCG0
Vcc
OscOff
LFXT1 Oscillator
XTS
3
2
0,1
/1, /2, /4, /8
Rsel3
Vcc
DIVA
![Page 48: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/48.jpg)
48
MSP430x13x/14x/15x/16xSistema de Reloj Básico
DIVA2
SMCLK
Sub-System Clock
SELS DIVS2
SCG1
/1, /2, /4, /8, off
ACLK
Auxiliary Clock
MCLK
Main System Clock
Digital Controlled Oscillator+
DCO3
SELM2
DIVM2
CPUOff
MOD5
LFXTCLK
Modulator
/1, /2, /4, /8, off
DCOCLK
XIN
XOUT
0
1
DCOR
1P2.5/Rosc
0
DC- Gen
SCG0
Vcc
OscOff
LFXT1 Oscillator
XTS
3
2
0,1
/1, /2, /4, /8
XT2IN
XT1OUT
XT2Off
XT2 Oscillator
Rsel3
Vcc
Sistema de reloj F13x ~ F16x
![Page 49: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/49.jpg)
49
ACLK= 32768 (o fracción)
MCLK~1MHz DCOCLK (o fracción)
SMCLK~1MHz DCOCLK (o fracción)
32768
Solo se requiere un cristal de reloj; No se necesitan componentes adicionales.
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
MSP430x1xx LF XTAL (Cristal Baja Frec.)
NOTA! Es necesario verificar el estado de flag OSCFAULT antes de cambiar MCLK a LFXT1. La operación a prueba de fallas, automáticamente cambia MCLK a DCO si es puesto el flag OSCFAULT (falla de cristal).
![Page 50: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/50.jpg)
50
Sin componentes externos; Solo el oscilador DCO interno.
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
SetupBC bis #OSCOFF,SR ; oscilador externo desactivadoMainloop jmp Mainloop ; no hace nada
MSP430x1xx DCO como reloj.
ACLK= 0
MCLK= DCOCLK (o fracción)
SMCLK= DCOCLK (o fracción)
NOTA! La fuente por defecto de reloj al momento del Power UP es el DCO. La configuración posterior define la fuente de reloj a utilizar.
![Page 51: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/51.jpg)
51
MSP430x11x DCO Parameters
![Page 52: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/52.jpg)
52
La frecuencia nominal es definida por los bits RSELLa frecuencia generada por el DCO es estable, pero varia con la temperatura y
tensión de alimentación
Set_1MHz bis.b #05h,&BCSCTL1 ; DCO~1MHz;;Set_2MHz bis.b #06h,&BCSCTL1 ; DCO~2MHz;;Set_Fast bis.b #07h,&BCSCTL1 ; DCO~5Mhz
mov.b #0E0h,&DCOCTL ; ;;Set_Slow bic.b #07h,&BCSCTL1 ; DCO~100kHz
mov.b #DIVS1+DIVS0,&BCSCTL2 ; SMCLK=DCOCLK/8
MSP430 Configuración de DCO
![Page 53: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/53.jpg)
53
ACLK= LFXT1 (o fracción)
MCLK= LFXT1 o DCOCLK (o fracción)
SMCLK= LFXT1 o DCOCLK (o fracción)
Cristal de alta frecuencia; Requiere condensadores apropiados.
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
SetupBC bis.b #XTS,&BCSCTL1 ; LFXT1/ACLK = XT XTALMainloop jmp Mainloop ; hace nada.
NOTA! Es necesario verificar el estado de flag OSCFAULT antes de cambiar MCLK a LFXT1. La operación a prueba de fallas, automáticamente cambia MCLK a DCO si es puesto el flag OSCFAULT (falla de cristal).
MSP430x11x/12x HF XTAL (Cristal Alta Frec.)
![Page 54: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/54.jpg)
54
SMCLK
ACLK
;;Out_ACLK bis.b #01h,&P2DIR ; P2.0 configurado como salida
bis.b #01h,&P2SEL ; P2.0 configurado como “modulo”Out_SMCLK bis.b #010h,&P1DIR ; P1.4 configurado como salida
bis.b #010h,&P1SEL ; P1.4 configurado como “modulo”
TESTVccP2.5VssXOUTXINRSTP2.0/ACLKP2.1P2.2
P1.7P1.6P1.5
SMCLK/P1.4P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
MSP430x11x/12x Buffer de Reloj
Se pueden sacar por los pines las señales de reloj internas:
![Page 55: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/55.jpg)
55
Digital Controlled Oscillator DCO+
DCO
3
MOD
5
Modulator MOD
DCOCLKDC-
Generator
SCG0Rsel
Frecuencia de referencia. ACLK or 50/60Hz
SW+HWControl de DCOCLK
Una frecuencia de referencia ej. ACLK o 50/60Hz es usada para medir DCOCLK’sManipulación de software periódica o predefinida estabiliza DCOCLKDCOCLK es programable digitalmente en el rango de: 100kHz - 8Mhz
Sistema de Reloj SW/HW FLL (frequency Locked Loop)
![Page 56: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/56.jpg)
56
15 0
Timer_A0
123
15 0
CCI2B
CCR2
Capture
Destino 1,000,000Hz DCOCLK para timer
Captura 122us
Ejemplo: DCOCLK= 1,000,000 si ACLK= 8192ACLK (8192Hz) dispara una captura en CCI2B, DCOCLK es la fuente de reloj
para el Timer_ADCOCLK es la fuente de reloj para timer_A , pensando en 1,000,000Hz.Captura debe ser = 1,000,000/8192 ~122
CCI2B_ISR mov &CCR2,R14 ; R14 = captura SMCLKsub R15,R14 ; R14 = captura diferenciamov &CCR2,R15 ; R15 = captura SMCLKcmp #122,R14 ; Delta = SMCLK/(3278/4)jlo IncDCO ; jeq DoneDCO ; si es igual termina
DecDCO dec.b &DCOCTL ; decrementa si es mayorjmp Test_DCO ;
IncDCO inc.b &DCOCTL ; incrementa si es menorjmp Test_DCO ;
DoneDCO clr &CCTL2 ; detiene CCR2Test_DCO reti ; retorna de subrutina
Intervalo
CCI2B-ISR CCI2B_ISR
Sistema de Reloj SW/HW FLL (frequency Locked Loop)
![Page 57: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/57.jpg)
57
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsInterrupciones, Reset y modos de operacionSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 58: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/58.jpg)
58
MSP430F Registros de periféricos
0FFFFH
0200h
000h
MSP430 usa arquitectura Von NewanTodos los periféricos están mapeados
en memoria.Se puede utilizar cualquier instrucción
con estos registros
Info. Memory
Bootstrap Loader
RAM
Vectores de interrupción
Memoria dePrograma
Registros de Periféricos
![Page 59: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/59.jpg)
59
MSP430 Controlador de Memoria FLASH
MEMORIA FLASHMEMORIA FLASH
Generador interno de voltaje de programación.
Programación de Byte o word.
Operación Ultra low-power.
Borrado de memoria por segmentos o masivo.
Programación desde 2.7v
Generador de temporización interno (independiente)
No se puede ejecutar código desde la Flash (ROM) mientras se estáescribiendo.
![Page 60: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/60.jpg)
60
MSP430 Controlador de Memoria FLASH
La memoria Flash está segmentada en bloques de 128byte para datos, y en bloques de 512bytes para programa.
Cualquier acceso a los registros de control de memoria Flash, esta protegido por una contraseña.
El borrado o escritura se puede efectuar desde la memoria de programa o desde RAM.
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 lógico de cada bit es ”1”, la escritura pone los bit’s en estado lógico “0”.
![Page 61: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/61.jpg)
61
MSP430 Supervisor de Alimentación
SUPERVISOR DE ALIMENTACIONSUPERVISOR DE ALIMENTACION
Monitoreo de AVcc.
Generación de POR configurable.
Salida del comparador SVS accesible por software.
Condición de Bajo voltaje Accesible por software.
14 niveles de límite configurable por software.
Canal Externo para monitorear voltaje.
Presente en Micros MSP430F15x / F16x
![Page 62: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/62.jpg)
62
MSP430 Supervisor de Alimentación
![Page 63: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/63.jpg)
63
MSP430 Multiplicador por Hardware
MULTIPLICADOR POR HARDWAREMULTIPLICADOR POR HARDWARE
Multiplicación sin signo
Multiplicación con signo
Multiplicación y acumulación sin signo
Multiplicación y acumulación con signo
Operación en 16x16, 16x8, 8x16 y 8x8 bits
Operación en un solo ciclo.
Presente en Micros MSP430F14x ~ F16x
![Page 64: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/64.jpg)
64
MAC 134h
MPYS 132h
MPY 130h
OP2 138h
16x16 Multiplier
32-Bit Multiplexer
32-Bit Adder
015
15 0
31 0RESLO 013AhRESHI 13ChC SSUMEXT 13Eh
Multiplexer
OP1015
MACS 136h
MPY, MPYS, MAC, MACS -16 u 8-bit
No hay instrucciones especiales.
La operación comienza moviendo el primer operando y termina moviendo el segundo operando.
La multiplicación esta lista en el siguiente ciclo.
mov.w #01234h,&MACS ; Carga primer operandomov.w #04567h,&OP2 ; Carga segundo operando
; Operación lista.
MSP430 Multiplicador por Hardware
![Page 65: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/65.jpg)
65
Controlador de Acceso Directo a memoria
CONTROLADOR DE DMACONTROLADOR DE DMA
Transfiere datos sin intervención de la CPU.3 Canales de transferencia independientes.Prioridad de transferencia configurable.Requiere solo 2 Ciclos de MCLK.Capacidad de transferencia de byte, word, o combinaciones.Transferencia de bloques de hasta 64k (byte o word)Disparador de transferencia configurable.Flanco de disparo configurable.4 modos de direccionamiento.Modos de transferencia:
SingleBlockBurst-Block
Presente en Micros MSP430F15x / F16x
![Page 66: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/66.jpg)
66
Controlador de Acceso Directo a memoria
![Page 67: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/67.jpg)
67
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsInterrupciones, Reset y modos de operacionSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 68: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/68.jpg)
68
MSP430F Registros de periféricos
0FFFFH
0200h
000h
MSP430 usa arquitectura Von NewanTodos los periféricos están mapeadosen memoria.Se puede utilizar cualquier instrucción con estos registros
Info. Memory
Bootstrap Loader
RAM
Vectores de interrupción
Memoria dePrograma
Registros de Periféricos
![Page 69: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/69.jpg)
69
MSP430 Puertos I/O
Puertos de Entrada / SalidaPuertos de Entrada / Salida
Dirección de cada pin es configurable independientemente.Es posible cualquier combinación de entrada / salida.Registros de datos independientes de entrada y salida.
Interrupciones en todos los pines de los puertos P1 y P2.Habilitación y selección de flanco independiente para cada pinFlags de interrupción independientes para cada pin.
Registros para habilitación de módulos periféricos independientes para cada puerto, y concentrados en un solo registro.
I/O
![Page 70: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/70.jpg)
70
MSP430 Puertos I/O
Puertos Configurados por múltiples registros de 8 bits:P1 y P2 con capacidad de interrupción.P3 en adelante sin capacidad de interrupción. Cada pin posee protección ESD (Diodos para 2mA)
PxINPxIN
PxOUTPxOUT
PxDIRPxDIR
PxSELPxSEL
PxINPxIN
PxOUTPxOUT
PxDIRPxDIR
PxSELPxSEL
PxIFGPxIFG
PxIESPxIES
PxIEPxIE
Puertos P1 y P2: Puertos P3 en adelante.
![Page 71: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/71.jpg)
71
MSP430 Watchdog Timer
WATCHDOG TIMERWATCHDOG TIMER
Puede operar como Watchdog Timer o temporizador.Cualquier acceso al registro WDTCTL esta protegido por contraseña.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 energía.
![Page 72: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/72.jpg)
72
InterruptY
1
2
3
4Q6
Q9
Q13
Q15
16 bitCounter
CLK
A
B
1
1
A EN
PUC
SMCLK
ACLK
Clear
PasswordComparator
0
0
0
0
1
1
1
1
CNTCL
TMSEL
NMI
NMIES
IS1
SSEL
IS0
HOLD
EQU
EQU Write Enable LowByte R/ W
MDB
LSB
16
MSB
WDTCTL
MSP430 Watchdog Timer
Cualquier acceso al registro WDTCTL debe incluir 05Axxh a modo de contraseñaRegistro de control mapeado en ram, completamente configurable por software.
Clk/32.768
Clk/8.192
Clk/512
Clk/64
![Page 73: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/73.jpg)
73
MDB, Byte Inferior
Comparación de contraseña
MDB, Byte Superior R/W
EQU
Lectura: Byte Superior se lee como 069hEscritura: Byte Superior se debe escribir como 05Ah,
de otra forma se produce una violación de contraseña y se efectúa un PUC
HOLD NMINMIES TMSEL CNTCL SSEL IS1
7 0
ISO
0120h
WDT_key equ 05A00h ; Contraseña de acceso a WDT;WDT_Stop mov.w #(WDT_Key+80h),&WDTCTL ; detiene WDT;WDT_250 mov.w #(WDT_Key+1Dh),&WDTCTL ; Configura como timer.
MSP430 Ejemplo Watchdog Timer
![Page 74: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/74.jpg)
74
MSP430 Comparador A
COMPARADORCOMPARADOR ANALOGOANALOGO AA
Todos los terminales disponiblesReferencia internaFiltro pasa bajos para salida.Salida asignable a captura de TAControl de energía por softwareIntercambio de entradas para compensación de offset (CAEX)Generador de voltaje interno para referenciaReferencia interna configurable por software.
![Page 75: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/75.jpg)
75
MSP430 Comparador A
![Page 76: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/76.jpg)
76
MSP430 Timers A y B
TIMERSTIMERS
Toda CPU MSP430 cuenta con Timer A3, algunas CPU’s incluyen Timer B3 y otras Timer B7
Contadores de 16bitsInterrupción por rebalse del contadorFuentes de reloj seleccionadas y configuradas por software.Cuatro modos de operación.3 (o 7) registros de captura/comparación.Salidas configurables con capacidad PWM (por hardware)Vector de interrupción para decodificación rápida de interrupción.El Timer B puede contar en 8,10,12 o 16 bits.
![Page 77: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/77.jpg)
77
0FFFFh
0h
CCR0
Modo Stop/HaltTimer detenido permanentemente
Modo UPEl timer cuenta desde 0 hasta CCR0
0FFFFh
0h
CCR0
UP/DOWN Mode
Continuous Mode
0FFFFh
0h
Modo ContinuousEl timer cuenta hasta rebalsar.
Modo UP/DOWNEl timer cuenta entre 0 , CCR0 y 0
MSP430 Timer’s Modos de cuenta
![Page 78: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/78.jpg)
78
MSP430 Timer’s Modos de salida
Los Registro CCR poseen salidas independientes
Multiples modos de operación.
Salidas controladas por hardware.
![Page 79: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/79.jpg)
79
Divider1/2/4/8
Mode Continous,UP, UP/Down
16-bit Timer CLK
RC
ACLKSMCLK
P1.0
P2.1
Set_TAIFG
15 0
P1.1
P1.5
OUT_0CaptureMode
OutputUnit
GNDVCC
P1.1P2.2
Comparator 0
Capture
Equ0CCI0
Capture/ Compare RegisterCCR0
15 0
P1.2
P1.6
P2.3
OUT_1CaptureMode
OutputUnit
GNDVCC
CCI1
P1.2CAOUT
Comparator 1
Capture
Equ1
Capture/ Compare RegisterCCR1
15 0
OUT_2 P1.3
P1.7
P2.4
CaptureMode
OutputUnit
GNDVCC
CCI2
P1.3ACLK
Comparator 2
Capture
Equ2
Capture/ Compare RegisterCCR2
15 0
MSP430 Timer A3
![Page 80: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/80.jpg)
80
0
162h
CCTLx
rw-
15
un-SCS OUTMODx
(0)rw-(0)
CAPINPUTSELECT
CAPTUREMODE
rrw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
CCIFGCOVOUTCCICCIE
16Ehto rw-
(0)
SCCI used
015CCRx
rw-(0)
021520172hto017Eh
CCIx
to Port0
15 0Capture/Compare Register
CCRx
Comparator x
OverflowxLogic Data Bus Timer Bus
EQUx CAPx0
COVx
Capture
DisabledPos. EdgeNeg. EdgeBoth Edges1 1
010 10 0
CCMx1 CCMx0
CAPxCCISx0
23
CCISx1
01CCIxB
VCCGND
CCIxA
Set_CCIFGx
1
SCCIxENA Y
Capture Mode
MSP430 Timer A3 Unidades CCRx
![Page 81: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/81.jpg)
81
CCR1 - CCR6
Divider1/2/4/8
Mode Continous,UP, UP/Down
8, 10, 12 or 16-bit Timer CLK
RC
ACLKSMCLK
P4.7
P4.7
Set_TBIFG
15 0
P4.0
ADC12I2
OUT_0CaptureMode Output
UnitGNDVCC
P4.0P4.0
Comparator 0
Capture
Equ0CCI0
Compare Latch TBCL0
15 0
OUT_7
P4.6
CaptureMode Output
UnitGNDVCC
CCI7
P4.6ACLK
Comparator 7
Capture
Equ7
Compare Latch TBCL7
15 0
Capture/ Compare CCR7
Capture / Compare CCR0
P4.1P4.2P4.3P4.4P4.5
P4.1P4.2P4.3P4.4P4.5
MSP430 Timer B3/7 ( F13x en adelante )
![Page 82: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/82.jpg)
82
MSP430 Timer B3/7 Unidades CCRx
to Port0
15 0
Capture/Compare RegisterCCRx
Capture
Comparator x
Overflow xLogic
Timer Bus
EQUx
Set_CCIFGx
Capture
Mode
CCIx
CCISx0
CCMx1 CCMx0
23
CCISx101
CAPx
CCIxB
VCCGND
CCIxA
CAPx0
1
COVx
to Port0Capture Latch TBCLx
Reset
Reset
POR
DisabledPos. EdgeNeg. EdgeBoth Edges1 1
010 10 0
CCMx1 CCMx0 Load
HighZero
EQU0Up/Down
CAPCCDL0CCLD1
0
182h
CCTLx
rw-
15
SCS OUTMODx
(0)rw-(0)
CAPINPUTSELECT
CAPTUREMODE
rrw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
rw-(0)
CCIFGCOVOUTCCICCIE
19Ahto rw-
(0)
CLLD
![Page 83: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/83.jpg)
83
Ejemplo de generación de PWM Sin intervención de la CPU
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3
TA1/P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
SetupP1 bis.b #004h,&P1DIR ; P1.2 salidabis.b #004h,&P1SEL ; P1.2 TA1 configura modulo
SetupC0 mov.w #512-1,&CCR0 ; define periodo PWM SetupC1 mov.w #OUTMOD2+OUTMOD1+OUTMOD0,&CCTL1 ; CCR1 modo reset/set
mov.w #128,&CCR1 ; CCR1 ciclo útil PWM
SetupTA mov.w #TASSEL1+MC0,&TACTL ; SMCLK, modo: up;
Mainloop jmp #Mainloop ; loop infinito
0 - CCR0
CCR1
0 - CCR0
CCR1
0 - CCR0
CCR1
Timer A Ejemplo de PWM Up-Mode
![Page 84: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/84.jpg)
84
MSP430 Puertos Serie
Pueden operar como:Modo USART
Modo SPI
Modo I2C (solo procesadores F15x y F16x)
CPU’s con 1 y 2 puertos serie idénticos.
![Page 85: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/85.jpg)
85
MSP430 Puerto Serie (Modo USART)
PUERTO SERIE: USARTPUERTO SERIE: USART
Datos de 7 u 8 bits.Generador / Detector de paridad por hardware: (odd, even, none)Registros de desplazamiento y buffers independientes para transmisión y recepciónTransmisión y recepción de datos partiendo por bit LSB.Soporte por hardware para protocolos “idle line” y “address-bit” para sistemas multi-procesadores.Detección de bit de partida para salir de modos de bajo consumo.Generador de Baudios con modulación.Flags de estado para detección de errores y detección de dirección.Interrupciones independientes para transmisión y recepción.
![Page 86: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/86.jpg)
86
MSP430 Puerto Serie (Modo USART)
![Page 87: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/87.jpg)
87
MSP430 Puerto Serie (Modo SPI)
PUERTO SERIE: SPIPUERTO SERIE: SPI
Datos de 7 u 8 bits.Operación como SPI de 3 o 4 pines.Modo Maestro o EsclavoRegistros de desplazamiento y buffers independientes para transmisión y recepciónPolaridad y fase de reloj configurable.Frecuencia de reloj programable en modo MasterInterrupciones independientes para transmisión y recepción.
![Page 88: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/88.jpg)
88
MSP430 Puerto Serie (Modo SPI)
![Page 89: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/89.jpg)
89
MSP430 Puerto Serie (Modo I2C)
PUERTO SERIE: IPUERTO SERIE: I22CC
Solo esta presente en CPU’s F15x y F16x en USART0Cumple con especificaciones de Philips (I2C v2.1)
Formato Byte/Word para transferencia.Direccionamiento de 7 o 10 bitsLlamada generalStart / restart / StopModo Multi Master transmitter / Slave ReceiverModo Multi Master Receive / Slave TransmitterModo Combinado Master TX / RX y RX / TXModo Standard (100kbps) y Modo Fast (400kbps)
FIFO incorporada para lectura/escritura.Generación de reloj programable.Datos de 16 bits de ancho para aumentar ancho de bandaCuenta automática de bytes de datos
![Page 90: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/90.jpg)
90
MSP430 Puerto Serie (Modo I2C)
![Page 91: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/91.jpg)
91
CONVERSORES ANALOGO / DIGITALCONVERSORES ANALOGO / DIGITAL
Capacidad de muestreo de 200ksps+8 Canales externos / 4 Canales internos.Conversión iniciada por software, TA o TB*Auto-scan con 16 registros de conversión.Sample&hold programable.Medición de referencias y tensión interna.Diodo de temperatura interno.4 Modos de conversión:
Conversión única en un canalConversión única en secuencia de canalesConversiones sucesivas en un canalConversiones sucesivas en secuencias de canales
MSP430 ADC10 / ADC12
ADC12 / ADC10
![Page 92: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/92.jpg)
92
Mul
tiple
xer
AVCCAVSS
Sample&
Hold
CLKSRCx
ADC12Ix
Oscillator
SamplingTimer
Ve REF+
V REF+
VREF-/ Ve REF-
VR-
12-bit SAR
Reference1.5V or 2.5V
16 x 12-bitSampleBuffer
ConversionClock
VR-
AVCC
A0A1A2A3A5A5A6A7
16 x 8-bitBufferControl
ADC12Intx
MSP430 ADC10 (F11x2 ~ F12x2)
10bit SAR
16 x 10bits sample buffer
![Page 93: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/93.jpg)
93
a0a1a2a3a4a5
a7a6
Analog
Multi-plexer
12 : 1
AVCC
AVSS
1.5V or 2.5V
AVSS
AVCCVREF+
AVCCAVSS
Sample&
Hold
CLKSRC1CLKSRC2CLKSRC3
ADC12OSC
InternalOscillator
ADC12CLK
S/H
Divide by1,2,3,4,5,6,7,8
SamplingTimer
a8a9a10a11
12-bit S A R
ADC12DIV
REFON2_5V
ISSHSHP
ADC12CTLx.0..3
ADC12CTLx.4..6
T
SHT1SHT0
ADC12ONADC12SSEL
SHS
VeREF+
VREF+V REF- / VeREF-
VR+VR-
12-bit A/D converter core
ENC
Conversion CTLMSC
Ref_X
INCH= 0Ah
Ref_X
SAMPCON
ADC12SCADC12I1ADC12I2ADC12I3
Referenceon on
0140h0142h
015Ch015Eh
080h081h
08Eh08Fh
ADC12MEM0ADC12MEM1
ADC12MEM14ADC12MEM15
16 x 12-bitADC Memory
16 x 8-bitADC Memory Control
ADC12MEM10ADC12MEM9ADC12MEM8
ADC12MEM6ADC12MEM7
ADC12MEM5
ADC12MEM11
ADC12MEM4
ADC12MEM3ADC12MEM2
ADC12MEM12ADC12MEM13
ADC12CTL0ADC12CTL1ADC12CTL2ADC12CTL3ADC12CTL4ADC12CTL5ADC12CTL6ADC12CTL7ADC12CTL8ADC12CTL9ADC12CTL10ADC12CTL11ADC12CTL12ADC12CTL13ADC12CTL14ADC12CTL15
082h083h084h085h086h
088h087h
089h08Ah08Bh08Ch08Dh
0144h0146h0148h014Ah014Ch014Eh0150h0152h0154h0156h0158h015Ah
SHI
MSP430F14x ~ 16x ADC12
![Page 94: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/94.jpg)
94
CONVERSORES DIGITAL / ANALOGO CONVERSORES DIGITAL / ANALOGO
2 Conversores Monolíticos de 12bit’s con salida de voltaje.Resolución configurable de 8 o 12 bit’sSettling time configurable (para ahorro de energía)Selección de referencia interna o externa.Formato de datos Binario o complemento de 2.Auto calibración para corrección de offset.Capacidad de sincronización para múltiples dac’sPresente en MicrosMSP430F15x/F16x
MSP430 DAC12
DAC12
![Page 95: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/95.jpg)
95
MSP430 DAC12
Comparte referencias con el conversor Analogo / Digital
![Page 96: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/96.jpg)
96
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsInterrupciones, Reset y modos de operaciónSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 97: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/97.jpg)
97
Desarrollo con MSP430
CONCEPTO DE DESARROLLO Y DEPURACIONCONCEPTO DE DESARROLLO Y DEPURACION
Programación y depuración IN-CIRCUIT vía JTAGJTAG permite emulación y control en tiempo real.JTAG permite acceso completo a registros, emulación paso a paso, etc…JTAG protegido por fusible FISICOProgramador JTAG de bajo costo
Programación IN-CIRCUIT vía BSL (producción)BSL solo para propósitos de programación
![Page 98: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/98.jpg)
98
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
TDO/P1.7TDI/P1.6
TMS/P1.5TCK/P1.4
P1.3P1.2P1.1P1.0P2.4P2.3
MSP430F11x1
Adaptador deniveles
Puerto Paralelo
MSP-FETxxxxxx
Desarrollo con MSP430x11x/12x
TEST en alto, habilita JTAGLos terminales usados por JTAG están
compartidos con los terminales P1.7-P1.4 en los micros de 20 y 28
pines.
7
![Page 99: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/99.jpg)
99
VCCRSTVSSVss
TDOTDI
TMSTCK
MSP430F14x
Adaptador de niveles
Puerto Paralelo
MSP-FETxxxxxx
Desarrollo con MSP430 x13x ~ 4xx
Los terminales para JTAG son dedicados
7
![Page 100: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/100.jpg)
100
Aplicación REAL con MSP430F135
Conector JTAG
MSP430F135
![Page 101: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/101.jpg)
101
MCU: Variante:MSP-FET430X110 MSP430x11x(1)MSP-FET430P120 MSP430x12xMSP-FET430P140 MSP430x13x/14xMSP-FET430P410 MSP430x41xMSP-FET430P430 MSP430x42x/43x MSP-EVK430S320 MSP430x31x/32xMSP-EVK430S330 MSP430x33x
Familia de Herramientas para MSP430
![Page 102: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/102.jpg)
102
LED en P1.0
Terminales disponibles.
• Kickstart IDE• Emulación In-Circuit / Software • Ejecución de código en tiempo real.• HW breakpoints/single step• Visualización/modificación de registros y memoria.
Interfaz única para todas las variantes de MSP430.
IAR Embedded Workbench
Herramientas de Desarrollo y Depuración.
![Page 103: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/103.jpg)
103
LED en P1.0
Terminales disponibles.
• Kickstart IDE• Emulación In-Circuit / Software • Ejecución de código en tiempo real.• HW breakpoints/single step• Visualización/modificación de registros y memoria.
Interfaz única para todas las variantes de MSP430.
IAR Embedded Workbench
Herramientas de Desarrollo y Depuración.
![Page 104: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/104.jpg)
104
TESTVccP2.5VssXOUTXINRSTP2.0P2.1P2.2
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.4P2.3
TXD
RXD
MSP430F1121
Los terminales P1.1 (RXD) y P2.2 (TXD) se usan como un puerto serie a 9600bps
(automático sin necesidad de cristal), Se efectúa la secuencia requerida en los
terminales TEST y RST/NMI para iniciar la transferencia de datos.
Bootloader starts
RST/NMI
Test
Test (internal)
Puerto Serie
RS232 Driver
0C00h
Bootstrap Loader en MSP430:
Falsh de datos
Bootstrap Loader
RAM
Vectores deInterrupción
Memoria deprograma
Registros dePeriféricos
SFR’s
![Page 105: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/105.jpg)
105
Programación y depuración en tiempo real aislada con MSP430
EMULACION AISALADAEMULACION AISALADA
Se utiliza una interfaz opto-aislada en lugar del Level Shiffter tradicional.La interfaz es de fácil construcción.Permite programar y depurar sistemas alimentados directamente desde las líneas de poder de AC
![Page 106: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/106.jpg)
106
Seminario de MSP430: Programa
MSP430 IntroducciónCPU de 16bitsInterrupciones, Reset y modos de operaciónSistema de RelojPeriféricos auxiliaresPeriféricos comunesDesarrollo y depuraciónDemostración.
![Page 107: Seminario_MSP430](https://reader034.vdocumento.com/reader034/viewer/2022050922/5572145b497959fc0b945961/html5/thumbnails/107.jpg)
107