OSDN Git Service

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