2 ; MSP430FR4133 minimal declarations for FAST FORTH usage
3 DEVICE = "MSP430FR4133"
5 ; ----------------------------------------------
6 ; MSP430FR4133 MEMORY MAP
7 ; ----------------------------------------------
8 ; 0000-0FFF = peripherals (4 KB)
9 ; 1000-17FF = ROM bootstrap loader BSL0..3 (4x512 B)
10 ; 1800-19FF = info B (FRAM 512 B)
11 ; 1A00-1A7F = TLV device descriptor info (FRAM 128 B)
13 ; 2000-27FF = RAM (2 KB)
15 ; C400-FF7F = code memory (FRAM 15232 B)
16 ; FF80-FFFF = interrupt vectors (FRAM 128 B)
17 ; ----------------------------------------------
18 PAGESIZE .equ 512 ; MPU unit
19 ; ----------------------------------------------
21 ; ----------------------------------------------
24 TLV_ORG .equ 01A00h ; Device Descriptor Info (Tag-Lenght-Value)
26 ; ----------------------------------------------
28 ; ----------------------------------------------
31 ; ----------------------------------------------
33 ; ----------------------------------------------
34 MAIN_ORG .equ 0C400h ; Code space start
35 SIGNATURES .equ 0FF80h ; JTAG/BSL signatures
36 JTAG_SIG1 .equ 0FF80h ; if 0 (electronic fuse=0) enable JTAG/SBW ; reset by wipe and by S1+<reset>
37 JTAG_SIG2 .equ 0FF82h ; if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
38 BSL_SIG1 .equ 0FF84h ;
39 BSL_SIG2 .equ 0FF86h ;
40 JTAG_PASSWORD .equ 0FF88h ; 256 bits
41 VECT_ORG .equ 0FFE2h ; FFE2-FFFF
43 BSL_PASSWORD .equ 0FFE0h ; 256 bits
45 ; ----------------------------------------------
46 ; Interrupt Vectors and signatures - MSP430FR4133
47 ; ----------------------------------------------
50 ;;Start of JTAG and BSL signatures
51 ; .word 0FFFFh ; JTAG signature 1
52 ; .word 0FFFFh ; JTAG signature 2
53 ; .word 0FFFFh ; BSL signature 1, 5555h to disable BSL
54 ; .word 0FFFFh ; BSL signature 2
56 ; .org INTVECT ; FFE2-FFFF 14 vectors + reset
58 ; .word reset ; FFE2h - LCD
59 ; .word reset ; FFE4h - P2
60 ; .word reset ; FFE6h - P1
61 ; .word reset ; FFE8h - ADC10
62 ; .word reset ; FFEAh - eUSCI_B0
63 ; .word reset ; FFECh - eUSCI_A0
64 ; .word reset ; FFEEh - WDT
65 ; .word reset ; FFF0h - RTC
66 ; .word reset ; FFF2h - TA1_x
67 ; .word reset ; FFF4h - TA1_0
68 ; .word reset ; FFF6h - TA0_x
69 ; .word reset ; FFF8h - TA0_0
70 ; .word reset ; FFFAh - UserNMI
71 ; .word reset ; FFFCh - SysNMI
72 ; .word reset ; FFFEh - Reset
75 ; ----------------------------------------------------------------------
76 ; EXP430FR4133 Peripheral File Map
77 ; ----------------------------------------------------------------------
78 SFR_SFR .set 0100h ; Special function
79 PMM_SFR .set 0120h ; PMM
80 SYS_SFR .set 0140h ; SYS
81 CS_SFR .set 0180h ; Clock System
82 FRAM_SFR .set 01A0h ; FRAM control
84 WDT_A_SFR .set 01CCh ; Watchdog
85 PA_SFR .set 0200h ; PORT1/2
86 PB_SFR .set 0220h ; PORT3/4
87 PC_SFR .set 0240h ; PORT5/6
88 PD_SFR .set 0260h ; PORT7/8
89 CTIO0_SFR .set 02E0h ; Capacitive Touch IO
93 eUSCI_A0_SFR .set 0500h ; eUSCI_A0
94 eUSCI_B0_SFR .set 0540h ; eUSCI_B0
96 BACK_MEM_SFR .set 0660h
97 ADC10_B_SFR .equ 0700h
100 ; ----------------------------------------------------------------------
101 ; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
102 ; ----------------------------------------------------------------------
106 PM5CTL0 .equ PMM_SFR + 10h ; Power mode 5 control register 0
107 LOCKLPM5 .equ 1 ; bit position
109 ; ----------------------------------------------------------------------
110 ; POWER ON RESET SYS config
111 ; ----------------------------------------------------------------------
112 SYSCTL .equ SYS_SFR + 00h ; System control
113 SYSBSLC .equ SYS_SFR + 02h ; Bootstrap loader configuration area
114 SYSJMBC .equ SYS_SFR + 06h ; JTAG mailbox control
115 SYSJMBI0 .equ SYS_SFR + 08h ; JTAG mailbox input 0
116 SYSJMBI1 .equ SYS_SFR + 0Ah ; JTAG mailbox input 1
117 SYSJMBO0 .equ SYS_SFR + 0Ch ; JTAG mailbox output 0
118 SYSJMBO1 .equ SYS_SFR + 0Eh ; JTAG mailbox output 1
119 SYSBERRIV .equ SYS_SFR + 18h ; Bus Error vector generator
120 SYSUNIV .equ SYS_SFR + 1Ah ; User NMI vector generator
121 SYSSNIV .equ SYS_SFR + 1Ch ; System NMI vector generator
122 SYSRSTIV .equ SYS_SFR + 1Eh ; Reset vector generator
123 SYSCFG0 .equ SYS_SFR + 20h ; System configuration 0
124 SYSCFG1 .equ SYS_SFR + 22h ; System configuration 1
125 SYSCFG2 .equ SYS_SFR + 24h ; System configuration 2
129 ; ----------------------------------------------------------------------
130 ; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
131 ; ----------------------------------------------------------------------
133 WDTCTL .equ WDT_A_SFR + 00h ; Watchdog Timer Control */
135 ; WDTCTL Control Bits
137 WDTHOLD .equ 0080h ; WDT - Timer hold
138 WDTCNTCL .equ 0008h ; WDT timer counter clear
141 ; ----------------------------------------------------------------------
142 ; POWER ON RESET AND INITIALIZATION : PORT1/2
143 ; ----------------------------------------------------------------------
145 PAIN .equ PA_SFR + 00h ; Port A Input
146 PAOUT .equ PA_SFR + 02h ; Port A Output
147 PADIR .equ PA_SFR + 04h ; Port A Direction
148 PAREN .equ PA_SFR + 06h ; Port A Resistor Enable
149 PASEL0 .equ PA_SFR + 0Ah ; Port A Selection 0
150 PASEL1 .equ PA_SFR + 0Ch ; Port A Selection 1
151 PAIES .equ PA_SFR + 18h ; Port A Interrupt Edge Select
152 PAIE .equ PA_SFR + 1Ah ; Port A Interrupt Enable
153 PAIFG .equ PA_SFR + 1Ch ; Port A Interrupt Flag
155 P1IN .equ PA_SFR + 00h ; Port 1 Input
156 P1OUT .equ PA_SFR + 02h ; Port 1 Output
157 P1DIR .equ PA_SFR + 04h ; Port 1 Direction
158 P1REN .equ PA_SFR + 06h ; Port 1 Resistor Enable
159 P1SEL0 .equ PA_SFR + 0Ah ; Port 1 Selection 0
160 P1SEL1 .equ PA_SFR + 0Ch ; Port 1 Selection 1
161 P1IV .equ PA_SFR + 0Eh ; Port 1 Interrupt Vector word
162 P1IES .equ PA_SFR + 18h ; Port 1 Interrupt Edge Select
163 P1IE .equ PA_SFR + 1Ah ; Port 1 Interrupt Enable
164 P1IFG .equ PA_SFR + 1Ch ; Port 1 Interrupt Flag
166 P2IN .equ PA_SFR + 01h ; Port 2 Input
167 P2OUT .equ PA_SFR + 03h ; Port 2 Output
168 P2DIR .equ PA_SFR + 05h ; Port 2 Direction
169 P2REN .equ PA_SFR + 07h ; Port 2 Resistor Enable
170 P2SEL0 .equ PA_SFR + 0Bh ; Port 2 Selection 0
171 P2SEL1 .equ PA_SFR + 0Dh ; Port 2 Selection 1
172 P2IES .equ PA_SFR + 19h ; Port 2 Interrupt Edge Select
173 P2IE .equ PA_SFR + 1Bh ; Port 2 Interrupt Enable
174 P2IFG .equ PA_SFR + 1Dh ; Port 2 Interrupt Flag
175 P2IV .equ PA_SFR + 1Eh ; Port 2 Interrupt Vector word
177 ; ----------------------------------------------------------------------
178 ; POWER ON RESET AND INITIALIZATION : PORT3/4
179 ; ----------------------------------------------------------------------
182 PBIN .set PB_SFR + 00h ; Port B Input
183 PBOUT .set PB_SFR + 02h ; Port B Output 1/0 or pullup/pulldown resistor
184 PBDIR .set PB_SFR + 04h ; Port B Direction
185 PBREN .set PB_SFR + 06h ; Port B Resistor Enable
186 PBSEL0 .set PB_SFR + 0Ah ; Port B Selection 0
187 PBSEL1 .set PB_SFR + 0Ch ; Port B Selection 1
189 P3IN .set PB_SFR + 00h ; Port 3 Input */
190 P3OUT .set PB_SFR + 02h ; Port 3 Output
191 P3DIR .set PB_SFR + 04h ; Port 3 Direction
192 P3REN .set PB_SFR + 06h ; Port 3 Resistor Enable
193 P3SEL0 .set PB_SFR + 0Ah ; Port 3 Selection 0
194 P3SEL1 .set PB_SFR + 0Ch ; Port 3 Selection 1
196 P4IN .set PB_SFR + 01h ; Port 4 Input */
197 P4OUT .set PB_SFR + 03h ; Port 4 Output
198 P4DIR .set PB_SFR + 05h ; Port 4 Direction
199 P4REN .set PB_SFR + 07h ; Port 4 Resistor Enable
200 P4SEL0 .set PB_SFR + 0Bh ; Port 4 Selection 0
201 P4SEL1 .set PB_SFR + 0Dh ; Port 4 Selection 1
204 ; ----------------------------------------------------------------------
205 ; POWER ON RESET AND INITIALIZATION : PORT5/6
206 ; ----------------------------------------------------------------------
209 PCIN .set PC_SFR + 00h ; Port C Input
210 PCOUT .set PC_SFR + 02h ; Port C Output 1/0 or pullup/pulldown resistor
211 PCDIR .set PC_SFR + 04h ; Port C Direction
212 PCREN .set PC_SFR + 06h ; Port C Resistor Enable
213 PCSEL0 .set PC_SFR + 0Ah ; Port C Selection 0
214 PCSEL1 .set PC_SFR + 0Ch ; Port C Selection 1
216 P5IN .set PC_SFR + 00h ; Port 5 Input */
217 P5OUT .set PC_SFR + 02h ; Port 5 Output
218 P5DIR .set PC_SFR + 04h ; Port 5 Direction
219 P5REN .set PC_SFR + 06h ; Port 5 Resistor Enable
220 P5SEL0 .set PC_SFR + 0Ah ; Port 5 Selection 0
221 P5SEL1 .set PC_SFR + 0Ch ; Port 5 Selection 1
223 P6IN .set PC_SFR + 01h ; Port 6 Input */
224 P6OUT .set PC_SFR + 03h ; Port 6 Output
225 P6DIR .set PC_SFR + 05h ; Port 6 Direction
226 P6REN .set PC_SFR + 07h ; Port 6 Resistor Enable
227 P6SEL0 .set PC_SFR + 0Bh ; Port 6 Selection 0
228 P6SEL1 .set PC_SFR + 0Dh ; Port 6 Selection 1
230 ; ----------------------------------------------------------------------
231 ; POWER ON RESET AND INITIALIZATION : PORT7/8
232 ; ----------------------------------------------------------------------
235 PDIN .set PD_SFR + 00h ; Port D Input
236 PDOUT .set PD_SFR + 02h ; Port D Output 1/0 or pullup/pulldown resistor
237 PDDIR .set PD_SFR + 04h ; Port D Direction
238 PDREN .set PD_SFR + 06h ; Port D Resistor Enable
239 PDSEL0 .set PD_SFR + 0Ah ; Port D Selection 0
240 PDSEL1 .set PD_SFR + 0Ch ; Port D Selection 1
242 P7IN .set PD_SFR + 00h ; Port 7 Input */
243 P7OUT .set PD_SFR + 02h ; Port 7 Output
244 P7DIR .set PD_SFR + 04h ; Port 7 Direction
245 P7REN .set PD_SFR + 06h ; Port 7 Resistor Enable
246 P7SEL0 .set PD_SFR + 0Ah ; Port 7 Selection 0
247 P7SEL1 .set PD_SFR + 0Ch ; Port 7 Selection 1
249 P8IN .set PD_SFR + 01h ; Port 8 Input */
250 P8OUT .set PD_SFR + 03h ; Port 8 Output
251 P8DIR .set PD_SFR + 05h ; Port 8 Direction
252 P8REN .set PD_SFR + 07h ; Port 8 Resistor Enable
253 P8SEL0 .set PD_SFR + 0Bh ; Port 8 Selection 0
254 P8SEL1 .set PD_SFR + 0Dh ; Port 8 Selection 1
256 ; ----------------------------------------------------------------------
258 ; ----------------------------------------------------------------------
260 FRCTL0 .equ FRAM_SFR + 00h ; FRAM Controller Control 0
261 FRCTL0_H .equ FRAM_SFR + 01h ; FRAM Controller Control 0 high byte
263 ; ----------------------------------------------------------------------
264 ; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
265 ; ----------------------------------------------------------------------
267 CSCTL0 .equ CS_SFR + 00h ; Clock System Control Register 0
268 CSCTL1 .equ CS_SFR + 02h ; Clock System Control Register 1
269 CSCTL2 .equ CS_SFR + 04h ; Clock System Control Register 2
270 CSCTL3 .equ CS_SFR + 06h ; Clock System Control Register 3
271 CSCTL4 .equ CS_SFR + 08h ; Clock System Control Register 4
272 CSCTL5 .equ CS_SFR + 0Ah ; Clock System Control Register 5
273 CSCTL6 .equ CS_SFR + 0Ch ; Clock System Control Register 6
274 CSCTL7 .equ CS_SFR + 0Eh ; Clock System Control Register 7
275 CSCTL8 .equ CS_SFR + 10h ; Clock System Control Register 8
279 ; ----------------------------------------------------------------------
281 ; ----------------------------------------------------------------------
282 RTCCTL .equ RTC_SFR + 00h ; Real-Time Clock Control
283 RTCIV .equ RTC_SFR + 04h ; Real-Time Clock Interrupt Vector
284 RTCMOD .equ RTC_SFR + 08h ; Real-Timer Clock Modulo
285 RTCCNT .equ RTC_SFR + 0Ch ; Real-Time Clock Counter
289 UCSWRST .equ 1 ; eUSCI Software Reset
290 UCTXIE .equ 2 ; eUSCI Transmit Interrupt Enable
291 UCRXIE .equ 1 ; eUSCI Receive Interrupt Enable
292 UCTXIFG .equ 2 ; eUSCI Transmit Interrupt Flag
293 UCRXIFG .equ 1 ; eUSCI Receive Interrupt Flag
295 ; ----------------------------------------------------------------------
297 ; ----------------------------------------------------------------------
300 TERM_CTLW0 .equ eUSCI_A0_SFR + 00h ; eUSCI_A0 Control Word Register 0
301 TERM_BRW .equ eUSCI_A0_SFR + 06h ; eUSCI_A0 Baud Word Rate 0
302 TERM_MCTLW .equ eUSCI_A0_SFR + 08h ; eUSCI_A0 Modulation Control
303 TERM_STATW .equ eUSCI_A0_SFR + 0Ah ; eUSCI_A0 status Word Register
304 TERM_RXBUF .equ eUSCI_A0_SFR + 0Ch ; eUSCI_A0 Receive Buffer
305 TERM_TXBUF .equ eUSCI_A0_SFR + 0Eh ; eUSCI_A0 Transmit Buffer
306 TERM_IE .equ eUSCI_A0_SFR + 1Ah ; eUSCI_A0 Interrupt Enable Register
307 TERM_IFG .equ eUSCI_A0_SFR + 1Ch ; eUSCI_A0 Interrupt Flags Register
308 TERM_VEC .equ 0FFECh ; interrupt vector for eUSCI_A0
311 ; ----------------------------------------------------------------------
313 ; ----------------------------------------------------------------------
316 SD_CTLW0 .equ eUSCI_B0_SFR + 00h ; USCI_B0 Control Word Register 0
317 SD_BRW .equ eUSCI_B0_SFR + 06h ; USCI_B0 Baud Word Rate 0
318 SD_RXBUF .equ eUSCI_B0_SFR + 0Ch ; USCI_B0 Receive Buffer 8
319 SD_TXBUF .equ eUSCI_B0_SFR + 0Eh ; USCI_B0 Transmit Buffer 8
320 SD_IFG .equ eUSCI_B0_SFR + 2Ch ; USCI_B0 Interrupt Flags Register