OSDN Git Service

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