OSDN Git Service

V208 Modified ACCEPT COLD WARM ?ABORT, S".
[fast-forth/master.git] / MSP430FR2433.inc
1 ; MSP430fr2433.inc
2 ; MSP430fr2433 minimal declarations for Fast FORTH usage
3 DEVICE = "MSP430FR2433"
4 FR2_FAMILY
5
6 ; ----------------------------------------------
7 ; MSP430FR2433 MEMORY MAP
8 ; ----------------------------------------------
9 ; 0000-0FFF = peripherals (4 KB)
10 ; 1000-17FF = ROM bootstrap loader BSL1 (2k)
11 ; 1800-19FF = info B (FRAM 512 B)
12 ; 1A00-1A7F = TLV device descriptor info (FRAM 128 B)
13 ; 1A80-1FFF = unused
14 ; 2000-2FFF = RAM (4 KB)
15 ; 2800-C3FF = unused
16 ; C400-FF7F = code memory (FRAM 15232 B)
17 ; FF80-FFFF = interrupt vectors (FRAM 128 B)
18 ; FFC00-FFFFF = BSL2 (2k)
19 ; ----------------------------------------------
20 PAGESIZE        .equ 512         ; MPU unit
21 ; ----------------------------------------------
22 ; BSL                           
23 ; ----------------------------------------------
24 BSL1            .equ 01000h 
25 BSL2            .equ 0FFC00h
26 ; ----------------------------------------------
27 ; FRAM                          ; INFO B, TLV
28 ; ----------------------------------------------
29 INFO_ORG        .equ 01800h
30 INFO_LEN        .equ 00200h
31 TLV_ORG         .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
32 TLV_LEN         .equ 00080h      ;
33 ; ----------------------------------------------
34 ; RAM
35 ; ----------------------------------------------
36 RAM_ORG         .equ 02000h
37 RAM_LEN         .equ 01000h
38 ; ----------------------------------------------
39 ; FRAM
40 ; ----------------------------------------------
41 MAIN_ORG        .equ 0C400h      ; Code space start
42 SIGNATURES      .equ 0FF80h      ; JTAG/BSL signatures
43 JTAG_SIG1       .equ 0FF80h      ; if 0 (electronic fuse=0) enable JTAG/SBW ; reset by wipe and by S1+<reset>
44 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
45 BSL_SIG1        .equ 0FF84h      ;
46 BSL_SIG2        .equ 0FF86h      ;
47 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits
48 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
49 VECT_ORG        .equ 0FFDAh      ; FFDA-FFFF
50 VECT_LEN        .equ 26h
51 ; ----------------------------------------------
52
53 ; ----------------------------------------------
54 ; Interrupt Vectors and signatures - MSP430FR243x
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         ; FFDA-FFFF 18 vectors + reset
65 ;
66 ;           .word  reset        ; FFDAh - P2       
67 ;           .word  reset        ; FFDCh - P1       
68 ;           .word  reset        ; FFDEh - ADC10    
69 ;           .word  reset        ; FFE0h - eUSCI_B0 
70 ;           .word  reset        ; FFE2h - eUSCI_A1 
71 ;           .word  reset        ; FFE4h - eUSCI_A0 
72 ;           .word  reset        ; FFE6h - WDT      
73 ;           .word  reset        ; FFE8h - RTC      
74 ;           .word  reset        ; FFEAh - TA3_x    
75 ;           .word  reset        ; FFECh - TA3_0    
76 ;           .word  reset        ; FFEEh - TA2_x    
77 ;           .word  reset        ; FFF0h - TA2_0    
78 ;           .word  reset        ; FFF2h - TA1_x    
79 ;           .word  reset        ; FFF4h - TA1_0    
80 ;           .word  reset        ; FFF6h - TA0_x    
81 ;           .word  reset        ; FFF8h - TA0_0    
82 ;           .word  reset        ; FFFAh - UserNMI  
83 ;           .word  reset        ; FFFCh - SysNMI   
84 ;           .word  reset        ; FFFEh - Reset    
85
86 ; ----------------------------------------------------------------------
87 ; MSP430FR2433 Peripheral File Map
88 ; ----------------------------------------------------------------------
89 SFR_SFR         .equ 0100h           ; Special function
90 PMM_SFR         .equ 0120h           ; PMM
91 SYS_SFR         .equ 0140h           ; SYS
92 CS_SFR          .equ 0180h           ; Clock System
93 FRAM_SFR        .equ 01A0h           ; FRAM control
94 CRC16_SFR       .equ 01C0h
95 WDT_A_SFR       .equ 01CCh           ; Watchdog
96 PA_SFR          .equ 0200h           ; PORT1/2
97 PB_SFR          .equ 0220h           ; PORT3
98 RTC_SFR         .equ 0300h
99 TA0_SFR         .equ 0380h
100 TA1_SFR         .equ 03C0h
101 TA2_SFR         .equ 0400h
102 TA3_SFR         .equ 0440h
103 MPY_SFR         .equ 04C0h
104 eUSCI_A0_SFR    .equ 0500h           ; eUSCI_A0
105 eUSCI_A1_SFR    .equ 0520h           ; eUSCI_A1
106 eUSCI_B0_SFR    .equ 0540h           ; eUSCI_B0
107 BACK_MEM_SFR    .equ 0660h
108 ADC10_B_SFR     .equ 0700h
109
110
111 ; ----------------------------------------------------------------------
112 ; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
113 ; ----------------------------------------------------------------------
114 PMMCTL0     .equ PMM_SFR
115 PMMSWBOR    .equ 4
116
117 PM5CTL0     .equ PMM_SFR + 10h    ; Power mode 5 control register 0
118 LOCKLPM5    .equ 1               ; bit position
119
120 ; ----------------------------------------------------------------------
121 ; POWER ON RESET SYS config
122 ; ----------------------------------------------------------------------
123 SYSCTL      .equ SYS_SFR + 00h  ;   System control                      
124 SYSBSLC     .equ SYS_SFR + 02h  ;   Bootstrap loader configuration area 
125 SYSJMBC     .equ SYS_SFR + 06h  ;   JTAG mailbox control                
126 SYSJMBI0    .equ SYS_SFR + 08h  ;   JTAG mailbox input 0                
127 SYSJMBI1    .equ SYS_SFR + 0Ah  ;   JTAG mailbox input 1                
128 SYSJMBO0    .equ SYS_SFR + 0Ch  ;   JTAG mailbox output 0               
129 SYSJMBO1    .equ SYS_SFR + 0Eh  ;   JTAG mailbox output 1               
130 SYSBERRIV   .equ SYS_SFR + 18h  ;   Bus Error vector generator          
131 SYSUNIV     .equ SYS_SFR + 1Ah  ;   User NMI vector generator           
132 SYSSNIV     .equ SYS_SFR + 1Ch  ;   System NMI vector generator         
133 SYSRSTIV    .equ SYS_SFR + 1Eh  ;   Reset vector generator              
134 SYSCFG0     .equ SYS_SFR + 20h  ;   System configuration 0              
135 SYSCFG1     .equ SYS_SFR + 22h  ;   System configuration 1              
136 SYSCFG2     .equ SYS_SFR + 24h  ;   System configuration 2        
137       
138 ; SYS Control Bits
139 ; ...
140
141
142 ; ----------------------------------------------------------------------
143 ; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
144 ; ----------------------------------------------------------------------
145
146 WDTCTL      .equ WDT_A_SFR + 00h    ; Watchdog Timer Control */
147
148 ; WDTCTL Control Bits
149 WDTPW       .equ 5A00h
150 WDTHOLD     .equ 0080h  ; WDT - Timer hold
151 WDTCNTCL    .equ 0008h  ; WDT timer counter clear
152
153
154 ; ----------------------------------------------------------------------
155 ; FRAM config
156 ; ----------------------------------------------------------------------
157
158 FRCTL0      .equ FRAM_SFR + 00h   ; FRAM Controller Control 0
159 FRCTL0_H    .equ FRAM_SFR + 01h   ; FRAM Controller Control 0 high byte
160
161 ; ----------------------------------------------------------------------
162 ; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
163 ; ----------------------------------------------------------------------
164
165 CSCTL0      .equ CS_SFR + 00h   ; Clock System Control Register 0
166 CSCTL1      .equ CS_SFR + 02h   ; Clock System Control Register 1
167 CSCTL2      .equ CS_SFR + 04h   ; Clock System Control Register 2
168 CSCTL3      .equ CS_SFR + 06h   ; Clock System Control Register 3
169 CSCTL4      .equ CS_SFR + 08h   ; Clock System Control Register 4
170 CSCTL5      .equ CS_SFR + 0Ah   ; Clock System Control Register 5
171 CSCTL6      .equ CS_SFR + 0Ch   ; Clock System Control Register 6
172 CSCTL7      .equ CS_SFR + 0Eh   ; Clock System Control Register 7
173 CSCTL8      .equ CS_SFR + 10h   ; Clock System Control Register 8
174
175 ; ----------------------------------------------------------------------
176 ; POWER ON RESET AND INITIALIZATION : PORT1/2
177 ; ----------------------------------------------------------------------
178
179 PAIN        .equ PA_SFR + 00h    ; Port A Input
180 PAOUT       .equ PA_SFR + 02h    ; Port A Output
181 PADIR       .equ PA_SFR + 04h    ; Port A Direction
182 PAREN       .equ PA_SFR + 06h    ; Port A Resistor Enable
183 PASEL0      .equ PA_SFR + 0Ah    ; Port A Selection 0
184 PASEL1      .equ PA_SFR + 0Ch    ; Port A Selection 1
185 PASELC      .equ PA_SFR + 16h    ; Port A Complement Selection
186 PAIES       .equ PA_SFR + 18h    ; Port A Interrupt Edge Select
187 PAIE        .equ PA_SFR + 1Ah    ; Port A Interrupt Enable
188 PAIFG       .equ PA_SFR + 1Ch    ; Port A Interrupt Flag
189
190 P1IN        .equ PA_SFR + 00h    ; Port 1 Input
191 P1OUT       .equ PA_SFR + 02h    ; Port 1 Output
192 P1DIR       .equ PA_SFR + 04h    ; Port 1 Direction
193 P1REN       .equ PA_SFR + 06h    ; Port 1 Resistor Enable
194 P1SEL0      .equ PA_SFR + 0Ah    ; Port 1 Selection 0
195 P1SEL1      .equ PA_SFR + 0Ch    ; Port 1 Selection 1
196 P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word 
197 P1IES       .equ PA_SFR + 18h    ; Port 1 Interrupt Edge Select
198 P1IE        .equ PA_SFR + 1Ah    ; Port 1 Interrupt Enable
199 P1IFG       .equ PA_SFR + 1Ch    ; Port 1 Interrupt Flag
200
201 P2IN        .equ PA_SFR + 01h    ; Port 2 Input
202 P2OUT       .equ PA_SFR + 03h    ; Port 2 Output
203 P2DIR       .equ PA_SFR + 05h    ; Port 2 Direction
204 P2REN       .equ PA_SFR + 07h    ; Port 2 Resistor Enable
205 P2SEL0      .equ PA_SFR + 0Bh    ; Port 2 Selection 0
206 P2SEL1      .equ PA_SFR + 0Dh    ; Port 2 Selection 1
207 P2IES       .equ PA_SFR + 19h    ; Port 2 Interrupt Edge Select
208 P2IE        .equ PA_SFR + 1Bh    ; Port 2 Interrupt Enable
209 P2IFG       .equ PA_SFR + 1Dh    ; Port 2 Interrupt Flag
210 P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word 
211
212 ; ----------------------------------------------------------------------
213 ; POWER ON RESET AND INITIALIZATION : PORT3
214 ; ----------------------------------------------------------------------
215
216 P3IN        .set PB_SFR + 00h    ; Port 3 Input */
217 P3OUT       .set PB_SFR + 02h    ; Port 3 Output
218 P3DIR       .set PB_SFR + 04h    ; Port 3 Direction
219 P3REN       .set PB_SFR + 06h    ; Port 3 Resistor Enable
220 P3SEL0      .set PB_SFR + 0Ah    ; Port 3 Selection 0
221 P3SEL1      .set PB_SFR + 0Ch    ; Port 3 Selection 1
222
223
224 ; ----------------------------------------------------------------------
225 RTC
226 ; ----------------------------------------------------------------------
227 RTCCTL      .equ RTC_SFR + 00h  ; Real-Time Clock Control 
228 RTCIV       .equ RTC_SFR + 04h  ; Real-Time Clock Interrupt Vector 
229 RTCMOD      .equ RTC_SFR + 08h  ; Real-Timer Clock Modulo 
230 RTCCNT      .equ RTC_SFR + 0Ch  ; Real-Time Clock Counter 
231
232 ; ----------------------------------------------------------------------
233 MPY_32
234 ; ----------------------------------------------------------------------
235
236 MPY       .equ MPY_SFR + 00h    ; Multiply16 Unsigned/Operand 1 */
237 MPYS      .equ MPY_SFR + 02h    ; Multiply16 signed/Operand 1
238 MAC       .equ MPY_SFR + 04h    ; MultiplyAccumulate16 Unsigned/Operand 1 */
239 MACS      .equ MPY_SFR + 06h    ; MultiplyAccumulate16 signed/Operand 1
240 OP2       .equ MPY_SFR + 08h    ; Operand2_16 */
241 RESLO     .equ MPY_SFR + 0Ah    ; 16x16-bit result low - least significant word */
242 RESHI     .equ MPY_SFR + 0Ch    ; 16x16-bit result high */
243 SUMEXT    .equ MPY_SFR + 0Eh    ; 16x16-bit sum extension register
244 MPY32L    .equ MPY_SFR + 10h    ; Multiply32 Unsigned/Operand 1
245 MPY32H    .equ MPY_SFR + 12h    ; Multiply32 Unsigned/Operand 1
246 MPYS32L   .equ MPY_SFR + 14h    ; Multiply32 signed/Operand 1
247 MPYS32H   .equ MPY_SFR + 16h    ; Multiply32 signed/Operand 1
248 MAC32L    .equ MPY_SFR + 18h    ; MultiplyAccumulate32 Unsigned/Operand 1
249 MAC32H    .equ MPY_SFR + 1Ah    ; MultiplyAccumulate32 Unsigned/Operand 1
250 MACS32L   .equ MPY_SFR + 1Ch    ; MultiplyAccumulate32 signed/Operand 1
251 MACS32H   .equ MPY_SFR + 1Eh    ; MultiplyAccumulate32 signed/Operand 1
252 OP2L      .equ MPY_SFR + 20h    ; Multiply32 Operand 2
253 OP2H      .equ MPY_SFR + 22h    ; Multiply32 Operand 2
254 RES0      .equ MPY_SFR + 24h    ; 32x32-bit result 0 - least significant word */
255 RES1      .equ MPY_SFR + 26h    ; 32x32-bit result 1 */
256 RES2      .equ MPY_SFR + 28h    ; 32x32-bit result 2 */
257 RES3      .equ MPY_SFR + 2Ah    ; 32x32-bit result 3 */
258 MPY32CTL0 .equ MPY_SFR + 2Ch    ; MPY32 control register 0
259
260
261
262
263 UCSWRST         .equ 1  ; eUSCI Software Reset
264 UCTXIE          .equ 2  ; eUSCI Transmit Interrupt Enable
265 UCRXIE          .equ 1  ; eUSCI Receive Interrupt Enable
266 UCTXIFG         .equ 2  ; eUSCI Transmit Interrupt Flag
267 UCRXIFG         .equ 1  ; eUSCI Receive Interrupt Flag
268
269
270
271 ; ----------------------------------------------------------------------
272 eUSCI_A0
273 ; ----------------------------------------------------------------------
274
275     .IFDEF UCA0_TERM
276 TERM_CTLW0       .equ eUSCI_A0_SFR + 00h    ; eUSCI_A0 Control Word Register 0
277 TERM_BRW         .equ eUSCI_A0_SFR + 06h    ; eUSCI_A0 Baud Word Rate 0
278 TERM_MCTLW       .equ eUSCI_A0_SFR + 08h    ; eUSCI_A0 Modulation Control
279 TERM_STATW       .equ eUSCI_A0_SFR + 0Ah    ; eUSCI_A0 status Word Register
280 TERM_RXBUF       .equ eUSCI_A0_SFR + 0Ch    ; eUSCI_A0 Receive Buffer
281 TERM_TXBUF       .equ eUSCI_A0_SFR + 0Eh    ; eUSCI_A0 Transmit Buffer
282 TERM_IE          .equ eUSCI_A0_SFR + 1Ah    ; eUSCI_A0 Interrupt Enable Register
283 TERM_IFG         .equ eUSCI_A0_SFR + 1Ch    ; eUSCI_A0 Interrupt Flags Register
284 TERM_VEC         .equ 0FFE4h      ;  interrupt vector for eUSCI_A0
285     .ENDIF ;UCA0_TERM
286
287
288 ; ----------------------------------------------------------------------
289 eUSCI_A1
290 ; ----------------------------------------------------------------------
291     .IFDEF UCA1_TERM
292 TERM_CTLW0       .equ eUSCI_A1_SFR + 00h    ; eUSCI_A1 Control Word Register 0
293 TERM_BRW         .equ eUSCI_A1_SFR + 06h    ; eUSCI_A1 Baud Word Rate 0
294 TERM_MCTLW       .equ eUSCI_A1_SFR + 08h    ; eUSCI_A1 Modulation Control
295 TERM_STATW       .equ eUSCI_A1_SFR + 0Ah    ; eUSCI_A1 status Word Register
296 TERM_RXBUF       .equ eUSCI_A1_SFR + 0Ch    ; eUSCI_A1 Receive Buffer
297 TERM_TXBUF       .equ eUSCI_A1_SFR + 0Eh    ; eUSCI_A1 Transmit Buffer
298 TERM_IE          .equ eUSCI_A1_SFR + 1Ah    ; eUSCI_A1 Interrupt Enable Register
299 TERM_IFG         .equ eUSCI_A1_SFR + 1Ch    ; eUSCI_A1 Interrupt Flags Register
300 TERM_VEC         .equ 0FFE2h      ;  interrupt vector for eUSCI_A1
301     .ENDIF ;UCA1_TERM
302
303     .IFDEF UCA1_SD
304 SD_CTLW0       .equ eUSCI_A1_SFR + 00h    ; USCI_B0 Control Word Register 0
305 SD_BRW         .equ eUSCI_A1_SFR + 06h    ; USCI_B0 Baud Word Rate 0
306 SD_RXBUF       .equ eUSCI_A1_SFR + 0Ch    ; USCI_B0 Receive Buffer 8
307 SD_TXBUF       .equ eUSCI_A1_SFR + 0Eh    ; USCI_B0 Transmit Buffer 8
308 SD_IFG         .equ eUSCI_A1_SFR + 1Ch    ; USCI_B0 Interrupt Flags Register
309     .ENDIF ;UCA1_SD
310
311 ; ----------------------------------------------------------------------
312 eUSCI_B0
313 ; ----------------------------------------------------------------------
314     .IFDEF UCB0_TERM
315 I2CTERM_CTLW0       .equ eUSCI_B0_SFR + 00h    ; USCI_B0 Control Word Register 0
316 I2CTERM_CTLW1       .equ eUSCI_B0_SFR + 02h    ; USCI_B0 Control Word Register 1
317 I2CTERM_BRW         .equ eUSCI_B0_SFR + 06h    ; USCI_B0 Baud Word Rate 0
318 I2CTERM_RXBUF       .equ eUSCI_B0_SFR + 0Ch    ; USCI_B0 Receive Buffer 8
319 I2CTERM_TXBUF       .equ eUSCI_B0_SFR + 0Eh    ; USCI_B0 Transmit Buffer 8
320 I2CTERM_I2COA0      .equ eUSCI_B0_SFR + 14h    ; USCI_B0 I2C Own Address 0
321 I2CTERM_ADDRX       .equ eUSCI_B0_SFR + 1Ch    ; USCI_B0  Received Address Register 
322 I2CTERM_I2CSA       .equ eUSCI_B0_SFR + 20h    ; USCI_B0 I2C Slave Address
323 I2CTERM_IE          .equ eUSCI_B0_SFR + 2Ah    ; USCI_B0 Interrupt Enable
324 I2CTERM_IFG         .equ eUSCI_B0_SFR + 2Ch    ; USCI_B0 Interrupt Flags Register
325 I2CTERMVEC          .equ 0FFE0h      ; interrupt vector for eUSCI_B0
326     .ENDIF ;UCB0_TERM
327
328     .IFDEF UCB0_I2CM ; used by UART2MIIC.asm 
329 TERM2IIC_CTLW0       .equ eUSCI_B0_SFR + 00h    ; USCI_B0 Control Word Register 0
330 TERM2IIC_CTLW1       .equ eUSCI_B0_SFR + 02h    ; USCI_B0 Control Word Register 1
331 TERM2IIC_BRW         .equ eUSCI_B0_SFR + 06h    ; USCI_B0 Baud Word Rate 0
332 TERM2IIC_STATW       .equ eUSCI_B0_SFR + 08h    ; USCI_B0 Status Word
333 TERM2IIC_STAT        .equ eUSCI_B0_SFR + 08h    ; USCI_B0 Status Byte
334 TERM2IIC_BCNT        .equ eUSCI_B0_SFR + 09h    ; USCI_B0 Byte Counter Register Byte
335 TERM2IIC_TBCNT       .equ eUSCI_B0_SFR + 0Ah    ; USCI_B0 Byte Counter Threshold Register
336 TERM2IIC_RXBUF       .equ eUSCI_B0_SFR + 0Ch    ; USCI_B0 Receive Buffer 8
337 TERM2IIC_TXBUF       .equ eUSCI_B0_SFR + 0Eh    ; USCI_B0 Transmit Buffer 8
338 TERM2IIC_I2COA0      .equ eUSCI_B0_SFR + 14h    ; USCI_B0 I2C Own Address 0
339 TERM2IIC_I2CSA       .equ eUSCI_B0_SFR + 20h    ; USCI_B0 I2C Slave Address
340 TERM2IIC_IE          .equ eUSCI_B0_SFR + 2Ah    ; USCI_B0 Interrupt Enable
341 TERM2IIC_IFG         .equ eUSCI_B0_SFR + 2Ch    ; USCI_B0 Interrupt Flags Register
342     .ENDIF ;UCB0_I2CM
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     .ENDIF ;UCB0_SD
351
352