OSDN Git Service

la der de der
[fast-forth/master.git] / inc / MSP430FR4133.inc
1 ; MSP430fr4133.inc
2 ; MSP430FR4133 minimal declarations for FAST FORTH usage
3     .save
4     .listing off
5
6 DEVICE = "MSP430FR4133"
7 FR2_FAMILY
8 FLL     ; Frequency Locked Loop CLOCK
9 ; ----------------------------------------------
10 ; MSP430FR4133 MEMORY MAP
11 ; ----------------------------------------------
12 ; 0000-0FFF = peripherals (4 KB)
13 ; 1000-17FF = ROM bootstrap loader BSL0..3 (4x512 B)
14 ; 1800-19FF = info B (FRAM 512 B)
15 ; 1A00-1A7F = TLV device descriptor info (FRAM 128 B)
16 ; 1A80-1FFF = unused
17 ; 2000-27FF = RAM (2 KB)
18 ; 2800-C3FF = unused
19 ; C400-FF7F = code memory (FRAM 15232 B)
20 ; FF80-FFFF = interrupt vectors (FRAM 128 B)
21 ; ----------------------------------------------
22 PAGESIZE        .equ 512         ; MPU unit
23 ; ----------------------------------------------
24 ; FRAM                          ; INFO B, TLV
25 ; ----------------------------------------------
26 INFO_ORG        .equ 01800h
27 INFO_LEN        .equ 00200h
28 TLV_ORG         .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
29 TLV_LEN         .equ 00080h      ;
30 ; ----------------------------------------------
31 ; RAM
32 ; ----------------------------------------------
33 RAM_ORG         .equ 02000h
34 RAM_LEN         .equ 00800h
35 ; ----------------------------------------------
36 ; FRAM
37 ; ----------------------------------------------
38 MAIN_ORG        .equ 0C400h      ; Code space start
39 SIGNATURES      .equ 0FF80h      ; JTAG/BSL signatures
40 JTAG_SIG1       .equ 0FF80h      ; if 0 (electronic fuse=0) enable JTAG/SBW ; reset by wipe and by S1+<reset>
41 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
42 BSL_SIG1        .equ 0FF84h      ;
43 BSL_SIG2        .equ 0FF86h      ;
44 I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
45 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
46 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
47 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
48 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits
49 VECT_ORG        .equ 0FFE2h      ; FFE2-FFFF
50 VECT_LEN        .equ 1Eh
51 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
52
53 ; ----------------------------------------------
54 ; Interrupt Vectors and signatures - MSP430FR4133
55 ; ----------------------------------------------
56
57 ;    .org    SIGNATURES
58 ;;Start of JTAG and BSL signatures
59 ;        .word   0FFFFh      ; JTAG signature 1
60 ;        .word   0FFFFh      ; JTAG signature 2
61 ;        .word   0FFFFh      ; BSL signature 1, 5555h to disable BSL
62 ;        .word   0FFFFh      ; BSL signature 2
63 ;
64 ;    .org    INTVECT         ; FFE2-FFFF 14 vectors + reset
65 ;
66 ;            .word  reset        ; 0FFE2h - LCD
67 ;            .word  reset        ; 0FFE4h - P2
68 ;            .word  reset        ; 0FFE6h - P1
69 ;            .word  reset        ; 0FFE8h - ADC10
70 ;            .word  reset        ; 0FFEAh - eUSCI_B0
71 ;            .word  reset        ; 0FFECh - eUSCI_A0
72 ;            .word  reset        ; 0FFEEh - WDT
73 ;            .word  reset        ; 0FFF0h - RTC
74 ;            .word  reset        ; 0FFF2h - TA1_x
75 ;            .word  reset        ; 0FFF4h - TA1_0
76 ;            .word  reset        ; 0FFF6h - TA0_x
77 ;            .word  reset        ; 0FFF8h - TA0_0
78 ;            .word  reset        ; 0FFFAh - UserNMI
79 ;            .word  reset        ; 0FFFCh - SysNMI
80 ;            .word  reset        ; 0FFFEh - Reset
81
82
83 ; ----------------------------------------------------------------------
84 ; EXP430FR4133 Peripheral File Map
85 ; ----------------------------------------------------------------------
86 SFR_SFR         .equ 0100h           ; Special function
87 PMM_SFR         .equ 0120h           ; PMM
88 SYS_SFR         .equ 0140h           ; SYS
89 CS_SFR          .equ 0180h           ; Clock System
90 FRAM_SFR        .equ 01A0h           ; FRAM control
91 CRC16_SFR       .equ 01C0h
92 WDT_A_SFR       .equ 01CCh           ; Watchdog
93 PA_SFR          .equ 0200h           ; PORT1/2
94 PB_SFR          .equ 0220h           ; PORT3/4
95 PC_SFR          .equ 0240h           ; PORT5/6
96 PD_SFR          .equ 0260h           ; PORT7/8
97 CTIO0_SFR       .equ 02E0h           ; Capacitive Touch IO
98 TA0_SFR         .equ 0300h
99 TA1_SFR         .equ 0340h
100 RTC_SFR         .equ 03C0h
101 eUSCI_A0_SFR    .equ 0500h           ; eUSCI_A0
102 eUSCI_B0_SFR    .equ 0540h           ; eUSCI_B0
103 LCD_SFR         .equ 0600h
104 BACK_MEM_SFR    .equ 0660h
105 ADC10_B_SFR     .equ 0700h
106
107
108 ; ----------------------------------------------------------------------
109 ; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
110 ; ----------------------------------------------------------------------
111 SFRIE1      .equ SFR_SFR
112 SFRIFG1     .equ SFR_SFR + 2
113 SFRRPCR     .equ SFR_SFR + 4
114
115 PMMCTL0     .equ PMM_SFR
116 PMMSWBOR    .equ 4
117
118 PM5CTL0     .equ PMM_SFR + 10h    ; Power mode 5 control register 0
119 LOCKLPM5    .equ 1               ; bit position
120
121 ; ----------------------------------------------------------------------
122 ; POWER ON RESET SYS config
123 ; ----------------------------------------------------------------------
124 SYSCTL      .equ SYS_SFR + 00h  ;   System control
125 SYSBSLC     .equ SYS_SFR + 02h  ;   Bootstrap loader configuration area
126 SYSJMBC     .equ SYS_SFR + 06h  ;   JTAG mailbox control
127 SYSJMBI0    .equ SYS_SFR + 08h  ;   JTAG mailbox input 0
128 SYSJMBI1    .equ SYS_SFR + 0Ah  ;   JTAG mailbox input 1
129 SYSJMBO0    .equ SYS_SFR + 0Ch  ;   JTAG mailbox output 0
130 SYSJMBO1    .equ SYS_SFR + 0Eh  ;   JTAG mailbox output 1
131 SYSBERRIV   .equ SYS_SFR + 18h  ;   Bus Error vector generator
132 SYSUNIV     .equ SYS_SFR + 1Ah  ;   User NMI vector generator
133 SYSSNIV     .equ SYS_SFR + 1Ch  ;   System NMI vector generator
134 SYSRSTIV    .equ SYS_SFR + 1Eh  ;   Reset vector generator
135 SYSCFG0     .equ SYS_SFR + 20h  ;   System configuration 0
136 SYSCFG1     .equ SYS_SFR + 22h  ;   System configuration 1
137 SYSCFG2     .equ SYS_SFR + 24h  ;   System configuration 2
138
139 ; SYS Control Bits
140 ; ...
141 ; ----------------------------------------------------------------------
142 ; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
143 ; ----------------------------------------------------------------------
144
145 WDTCTL      .equ WDT_A_SFR + 00h    ; Watchdog Timer Control */
146
147 ; WDTCTL Control Bits
148 WDTPW       .equ 5A00h
149 WDTHOLD     .equ 0080h  ; WDT - Timer hold
150 WDTCNTCL    .equ 0008h  ; WDT timer counter clear
151
152
153 ; ----------------------------------------------------------------------
154 ; POWER ON RESET AND INITIALIZATION : PORT1/2
155 ; ----------------------------------------------------------------------
156
157 PAIN        .equ PA_SFR + 00h    ; Port A Input
158 PAOUT       .equ PA_SFR + 02h    ; Port A Output
159 PADIR       .equ PA_SFR + 04h    ; Port A Direction
160 PAREN       .equ PA_SFR + 06h    ; Port A Resistor Enable
161 PASEL0      .equ PA_SFR + 0Ah    ; Port A Selection 0
162 PASEL1      .equ PA_SFR + 0Ch    ; Port A Selection 1
163 PAIES       .equ PA_SFR + 18h    ; Port A Interrupt Edge Select
164 PAIE        .equ PA_SFR + 1Ah    ; Port A Interrupt Enable
165 PAIFG       .equ PA_SFR + 1Ch    ; Port A Interrupt Flag
166
167 P1IN        .equ PA_SFR + 00h    ; Port 1 Input
168 P1OUT       .equ PA_SFR + 02h    ; Port 1 Output
169 P1DIR       .equ PA_SFR + 04h    ; Port 1 Direction
170 P1REN       .equ PA_SFR + 06h    ; Port 1 Resistor Enable
171 P1SEL0      .equ PA_SFR + 0Ah    ; Port 1 Selection 0
172 P1SEL1      .equ PA_SFR + 0Ch    ; Port 1 Selection 1
173 P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word
174 P1IES       .equ PA_SFR + 18h    ; Port 1 Interrupt Edge Select
175 P1IE        .equ PA_SFR + 1Ah    ; Port 1 Interrupt Enable
176 P1IFG       .equ PA_SFR + 1Ch    ; Port 1 Interrupt Flag
177
178 P2IN        .equ PA_SFR + 01h    ; Port 2 Input
179 P2OUT       .equ PA_SFR + 03h    ; Port 2 Output
180 P2DIR       .equ PA_SFR + 05h    ; Port 2 Direction
181 P2REN       .equ PA_SFR + 07h    ; Port 2 Resistor Enable
182 P2SEL0      .equ PA_SFR + 0Bh    ; Port 2 Selection 0
183 P2SEL1      .equ PA_SFR + 0Dh    ; Port 2 Selection 1
184 P2IES       .equ PA_SFR + 19h    ; Port 2 Interrupt Edge Select
185 P2IE        .equ PA_SFR + 1Bh    ; Port 2 Interrupt Enable
186 P2IFG       .equ PA_SFR + 1Dh    ; Port 2 Interrupt Flag
187 P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
188
189 ; ----------------------------------------------------------------------
190 ; POWER ON RESET AND INITIALIZATION : PORT3/4
191 ; ----------------------------------------------------------------------
192 ; PB = P4:P3
193
194 PBIN        .set PB_SFR + 00h    ; Port B Input
195 PBOUT       .set PB_SFR + 02h    ; Port B Output 1/0 or pullup/pulldown resistor
196 PBDIR       .set PB_SFR + 04h    ; Port B Direction
197 PBREN       .set PB_SFR + 06h    ; Port B Resistor Enable
198 PBSEL0      .set PB_SFR + 0Ah    ; Port B Selection 0
199 PBSEL1      .set PB_SFR + 0Ch    ; Port B Selection 1
200
201 P3IN        .set PB_SFR + 00h    ; Port 3 Input */
202 P3OUT       .set PB_SFR + 02h    ; Port 3 Output
203 P3DIR       .set PB_SFR + 04h    ; Port 3 Direction
204 P3REN       .set PB_SFR + 06h    ; Port 3 Resistor Enable
205 P3SEL0      .set PB_SFR + 0Ah    ; Port 3 Selection 0
206 P3SEL1      .set PB_SFR + 0Ch    ; Port 3 Selection 1
207
208 P4IN        .set PB_SFR + 01h    ; Port 4 Input */
209 P4OUT       .set PB_SFR + 03h    ; Port 4 Output
210 P4DIR       .set PB_SFR + 05h    ; Port 4 Direction
211 P4REN       .set PB_SFR + 07h    ; Port 4 Resistor Enable
212 P4SEL0      .set PB_SFR + 0Bh    ; Port 4 Selection 0
213 P4SEL1      .set PB_SFR + 0Dh    ; Port 4 Selection 1
214
215
216 ; ----------------------------------------------------------------------
217 ; POWER ON RESET AND INITIALIZATION : PORT5/6
218 ; ----------------------------------------------------------------------
219 ; PC = P6:P5
220
221 PCIN        .set PC_SFR + 00h    ; Port C Input
222 PCOUT       .set PC_SFR + 02h    ; Port C Output 1/0 or pullup/pulldown resistor
223 PCDIR       .set PC_SFR + 04h    ; Port C Direction
224 PCREN       .set PC_SFR + 06h    ; Port C Resistor Enable
225 PCSEL0      .set PC_SFR + 0Ah    ; Port C Selection 0
226 PCSEL1      .set PC_SFR + 0Ch    ; Port C Selection 1
227
228 P5IN        .set PC_SFR + 00h    ; Port 5 Input */
229 P5OUT       .set PC_SFR + 02h    ; Port 5 Output
230 P5DIR       .set PC_SFR + 04h    ; Port 5 Direction
231 P5REN       .set PC_SFR + 06h    ; Port 5 Resistor Enable
232 P5SEL0      .set PC_SFR + 0Ah    ; Port 5 Selection 0
233 P5SEL1      .set PC_SFR + 0Ch    ; Port 5 Selection 1
234
235 P6IN        .set PC_SFR + 01h    ; Port 6 Input */
236 P6OUT       .set PC_SFR + 03h    ; Port 6 Output
237 P6DIR       .set PC_SFR + 05h    ; Port 6 Direction
238 P6REN       .set PC_SFR + 07h    ; Port 6 Resistor Enable
239 P6SEL0      .set PC_SFR + 0Bh    ; Port 6 Selection 0
240 P6SEL1      .set PC_SFR + 0Dh    ; Port 6 Selection 1
241
242 ; ----------------------------------------------------------------------
243 ; POWER ON RESET AND INITIALIZATION : PORT7/8
244 ; ----------------------------------------------------------------------
245 ; PD = P8:P7
246
247 PDIN        .set PD_SFR + 00h    ; Port D Input
248 PDOUT       .set PD_SFR + 02h    ; Port D Output 1/0 or pullup/pulldown resistor
249 PDDIR       .set PD_SFR + 04h    ; Port D Direction
250 PDREN       .set PD_SFR + 06h    ; Port D Resistor Enable
251 PDSEL0      .set PD_SFR + 0Ah    ; Port D Selection 0
252 PDSEL1      .set PD_SFR + 0Ch    ; Port D Selection 1
253
254 P7IN        .set PD_SFR + 00h    ; Port 7 Input */
255 P7OUT       .set PD_SFR + 02h    ; Port 7 Output
256 P7DIR       .set PD_SFR + 04h    ; Port 7 Direction
257 P7REN       .set PD_SFR + 06h    ; Port 7 Resistor Enable
258 P7SEL0      .set PD_SFR + 0Ah    ; Port 7 Selection 0
259 P7SEL1      .set PD_SFR + 0Ch    ; Port 7 Selection 1
260
261 P8IN        .set PD_SFR + 01h    ; Port 8 Input */
262 P8OUT       .set PD_SFR + 03h    ; Port 8 Output
263 P8DIR       .set PD_SFR + 05h    ; Port 8 Direction
264 P8REN       .set PD_SFR + 07h    ; Port 8 Resistor Enable
265 P8SEL0      .set PD_SFR + 0Bh    ; Port 8 Selection 0
266 P8SEL1      .set PD_SFR + 0Dh    ; Port 8 Selection 1
267
268 ; ----------------------------------------------------------------------
269 ; FRAM config
270 ; ----------------------------------------------------------------------
271
272 FRCTL0      .equ FRAM_SFR + 00h   ; FRAM Controller Control 0
273 FRCTL0_H    .equ FRAM_SFR + 01h   ; FRAM Controller Control 0 high byte
274
275 ; ----------------------------------------------------------------------
276 ; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
277 ; ----------------------------------------------------------------------
278
279 CSCTL0      .equ CS_SFR + 00h   ; Clock System Control Register 0
280 CSCTL1      .equ CS_SFR + 02h   ; Clock System Control Register 1
281 CSCTL2      .equ CS_SFR + 04h   ; Clock System Control Register 2
282 CSCTL3      .equ CS_SFR + 06h   ; Clock System Control Register 3
283 CSCTL4      .equ CS_SFR + 08h   ; Clock System Control Register 4
284 CSCTL5      .equ CS_SFR + 0Ah   ; Clock System Control Register 5
285 CSCTL6      .equ CS_SFR + 0Ch   ; Clock System Control Register 6
286 CSCTL7      .equ CS_SFR + 0Eh   ; Clock System Control Register 7
287 CSCTL8      .equ CS_SFR + 10h   ; Clock System Control Register 8
288
289
290
291 ; ----------------------------------------------------------------------
292 RTC
293 ; ----------------------------------------------------------------------
294 RTCCTL      .equ RTC_SFR + 00h  ; Real-Time Clock Control
295 RTCIV       .equ RTC_SFR + 04h  ; Real-Time Clock Interrupt Vector
296 RTCMOD      .equ RTC_SFR + 08h  ; Real-Timer Clock Modulo
297 RTCCNT      .equ RTC_SFR + 0Ch  ; Real-Time Clock Counter
298
299
300     .IFDEF UCA0_TERM
301 ; ----------------------------------------------------------------------
302 eUSCI_A0
303 ; ----------------------------------------------------------------------
304 TERM_CTLW0      .equ eUSCI_A0_SFR + 00h    ; eUSCI_A0 Control Word Register 0
305 TERM_BRW        .equ eUSCI_A0_SFR + 06h    ; eUSCI_A0 Baud Word Rate 0
306 TERM_MCTLW      .equ eUSCI_A0_SFR + 08h    ; eUSCI_A0 Modulation Control
307 TERM_STATW      .equ eUSCI_A0_SFR + 0Ah    ; eUSCI_A0 status Word Register
308 TERM_RXBUF      .equ eUSCI_A0_SFR + 0Ch    ; eUSCI_A0 Receive Buffer
309 TERM_TXBUF      .equ eUSCI_A0_SFR + 0Eh    ; eUSCI_A0 Transmit Buffer
310 TERM_IE         .equ eUSCI_A0_SFR + 1Ah    ; eUSCI_A0 Interrupt Enable Register
311 TERM_IFG        .equ eUSCI_A0_SFR + 1Ch    ; eUSCI_A0 Interrupt Flags Register
312
313 TERM_VEC        .equ 0FFECh ;  interrupt vector for eUSCI_A0
314 WAKE_UP         .equ 1      ; UART RX interrupt
315
316 RX_TERM         .equ 1
317 TX_TERM         .equ 2
318     .ENDIF ;UCA0_TERM
319
320     .IFDEF UCA0_SD
321 ; ----------------------------------------------------------------------
322 ; eUSCI_A0 as UCA0_SD
323 ; ----------------------------------------------------------------------
324 SD_CTLW0       .equ eUSCI_A0_SFR + 00h      ; USCI_A0 Control Word Register 0
325 SD_BRW         .equ eUSCI_A0_SFR + 06h      ; USCI_A0 Baud Word Rate 0
326 SD_RXBUF       .equ eUSCI_A0_SFR + 0Ch      ; USCI_A0 Receive Buffer 8
327 SD_TXBUF       .equ eUSCI_A0_SFR + 0Eh      ; USCI_A0 Transmit Buffer 8
328 SD_IFG         .equ eUSCI_A0_SFR + 1Ch      ; USCI_A0 Interrupt Flags Register
329 RX_SD           .equ 1
330 TX_SD           .equ 2
331     .ENDIF
332
333
334     .IFDEF UCB0_TERM
335 ; ----------------------------------------------------------------------
336 ; eUSCI_B0 as TERMINAL I2C input
337 ; ----------------------------------------------------------------------
338 TERM_CTLW0      .equ eUSCI_B0_SFR + 00h     ; USCI_B0 Control Word Register 0
339 TERM_CTLW1      .equ eUSCI_B0_SFR + 02h     ; USCI_B0 Control Word Register 1
340 TERM_BRW        .equ eUSCI_B0_SFR + 06h     ; USCI_B0 Baud Word Rate 0
341 TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
342 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
343 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
344 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
345 TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
346 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
347 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
348 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
349
350 TERM_VEC        .equ 0FFEAh ; interrupt vector for eUSCI_B0
351 WAKE_UP         .equ 4      ; START interrupt
352
353 RX_TERM         .equ 1
354 TX_TERM         .equ 2
355     .ENDIF ;UCB0_TERM
356
357     .IFDEF UCB0_SD
358 ; ----------------------------------------------------------------------
359 ; eUSCI_B0
360 ; ----------------------------------------------------------------------
361 SD_CTLW0       .equ eUSCI_B0_SFR + 00h    ; USCI_B0 Control Word Register 0
362 SD_BRW         .equ eUSCI_B0_SFR + 06h    ; USCI_B0 Baud Word Rate 0
363 SD_RXBUF       .equ eUSCI_B0_SFR + 0Ch    ; USCI_B0 Receive Buffer 8
364 SD_TXBUF       .equ eUSCI_B0_SFR + 0Eh    ; USCI_B0 Transmit Buffer 8
365 SD_IFG         .equ eUSCI_B0_SFR + 2Ch    ; USCI_B0 Interrupt Flags Register
366 RX_SD           .equ 1
367 TX_SD           .equ 2
368     .ENDIF ;UCB0_SD
369