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