OSDN Git Service

efc8fb9cc3facc43cff8b3b9d84be9a7d21e9810
[fast-forth/master.git] / inc / MSP430FR4133.inc
1 ; MSP430fr4133.inc
2 ; MSP430FR4133 minimal declarations for FAST FORTH usage
3 DEVICE = "MSP430FR4133"
4 FR2_FAMILY
5
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)
13 ; 1A80-1FFF = unused
14 ; 2000-27FF = RAM (2 KB)
15 ; 2800-C3FF = unused
16 ; C400-FF7F = code memory (FRAM 15232 B)
17 ; FF80-FFFF = interrupt vectors (FRAM 128 B)
18 ; ----------------------------------------------
19 PAGESIZE        .equ 512         ; MPU unit
20 ; ----------------------------------------------
21 ; FRAM                          ; INFO B, TLV
22 ; ----------------------------------------------
23 INFO_ORG        .equ 01800h
24 INFO_LEN        .equ 00200h
25 TLV_ORG         .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
26 TLV_LEN         .equ 00080h      ;
27 ; ----------------------------------------------
28 ; RAM
29 ; ----------------------------------------------
30 RAM_ORG         .equ 02000h
31 RAM_LEN         .equ 00800h
32 ; ----------------------------------------------
33 ; FRAM
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
43 VECT_LEN        .equ 1Eh
44 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
45
46 ; ----------------------------------------------
47 ; Interrupt Vectors and signatures - MSP430FR4133
48 ; ----------------------------------------------
49
50 ;    .org    SIGNATURES
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
56 ;
57 ;    .org    INTVECT         ; FFE2-FFFF 14 vectors + reset
58 ;
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    
74
75
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
84 CRC16_SFR       .equ 01C0h
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
91 TA0_SFR         .equ 0300h
92 TA1_SFR         .equ 0340h
93 RTC_SFR         .equ 03C0h
94 eUSCI_A0_SFR    .equ 0500h           ; eUSCI_A0
95 eUSCI_B0_SFR    .equ 0540h           ; eUSCI_B0
96 LCD_SFR         .equ 0600h
97 BACK_MEM_SFR    .equ 0660h
98 ADC10_B_SFR     .equ 0700h
99
100
101 ; ----------------------------------------------------------------------
102 ; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
103 ; ----------------------------------------------------------------------
104 SFRIE1      .equ SFR_SFR
105 SFRIFG1     .equ SFR_SFR + 2
106 SFRRPCR     .equ SFR_SFR + 4
107
108 PMMCTL0     .equ PMM_SFR
109 PMMSWBOR    .equ 4
110
111 PM5CTL0     .equ PMM_SFR + 10h    ; Power mode 5 control register 0
112 LOCKLPM5    .equ 1               ; bit position
113
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        
131       
132 ; SYS Control Bits
133 ; ...
134 ; ----------------------------------------------------------------------
135 ; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
136 ; ----------------------------------------------------------------------
137
138 WDTCTL      .equ WDT_A_SFR + 00h    ; Watchdog Timer Control */
139
140 ; WDTCTL Control Bits
141 WDTPW       .equ 5A00h
142 WDTHOLD     .equ 0080h  ; WDT - Timer hold
143 WDTCNTCL    .equ 0008h  ; WDT timer counter clear
144
145
146 ; ----------------------------------------------------------------------
147 ; POWER ON RESET AND INITIALIZATION : PORT1/2
148 ; ----------------------------------------------------------------------
149
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
159
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
170
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 
181
182 ; ----------------------------------------------------------------------
183 ; POWER ON RESET AND INITIALIZATION : PORT3/4
184 ; ----------------------------------------------------------------------
185 ; PB = P4:P3
186
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
193
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
200
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
207
208
209 ; ----------------------------------------------------------------------
210 ; POWER ON RESET AND INITIALIZATION : PORT5/6
211 ; ----------------------------------------------------------------------
212 ; PC = P6:P5
213
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
220
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
227
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
234
235 ; ----------------------------------------------------------------------
236 ; POWER ON RESET AND INITIALIZATION : PORT7/8
237 ; ----------------------------------------------------------------------
238 ; PD = P8:P7
239
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
246
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
253
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
260
261 ; ----------------------------------------------------------------------
262 ; FRAM config
263 ; ----------------------------------------------------------------------
264
265 FRCTL0      .equ FRAM_SFR + 00h   ; FRAM Controller Control 0
266 FRCTL0_H    .equ FRAM_SFR + 01h   ; FRAM Controller Control 0 high byte
267
268 ; ----------------------------------------------------------------------
269 ; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
270 ; ----------------------------------------------------------------------
271
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
281
282
283
284 ; ----------------------------------------------------------------------
285 RTC
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 
291
292 ; ----------------------------------------------------------------------
293 eUSCI_A0
294 ; ----------------------------------------------------------------------
295
296     .IFDEF UCA0_TERM
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
306 RX_TERM         .equ 1
307 TX_TERM         .equ 2
308     .ENDIF ;UCA0_TERM
309
310     .IFDEF UCA0_SD
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
319 RX_SD           .equ 1
320 TX_SD           .equ 2
321     .ENDIF
322
323 ; ----------------------------------------------------------------------
324 ; eUSCI_B0
325 ; ----------------------------------------------------------------------
326
327     .IFDEF UCB0_TERM
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
340 RX_TERM         .equ 1
341 TX_TERM         .equ 2
342     .ENDIF ;UCB0_TERM
343
344     .IFDEF UCB0_SD
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
350 RX_SD           .equ 1
351 TX_SD           .equ 2
352     .ENDIF ;UCB0_SD
353