OSDN Git Service

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