Subversion Repositories pentevo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1186 savelij 1
		ifndef	__regm406inc
2
__regm406inc	equ	1
3
                save
4
                listing off   ; no listing over this file
5
 
6
;****************************************************************************
7
;*                                                                          *
8
;*   AS 1.42 - File REGM406.INC                                             *
9
;*                                                                          *
10
;*   Contains Bit & Register Definitions for ATmega406                      *
11
;*                                                                          *
12
;****************************************************************************
13
 
14
;----------------------------------------------------------------------------
15
; Memory Limits
16
 
17
E2END           equ	511
18
RAMSTART	equ	0x100,data
19
RAMEND		equ	0x8ff,data
20
FLASHEND	label	0x9fff
21
 
22
;----------------------------------------------------------------------------
23
; Chip Control
24
 
25
MCUCR		port	0x35		; MCU Control Register
26
IVCE		avrbit	MCUCR,0		; Interrupt Vector Change Enable
27
IVSEL		avrbit	MCUCR,1		; Interrupt Vector Select
28
 
29
MCUSR		port	0x34		; MCU Status Register
30
PORF		avrbit	MCUSR,0		; Power-On Reset Occured
31
EXTRF		avrbit	MCUSR,1		; External Reset Occured
32
BORF		avrbit	MCUSR,2		; Brown-Out Reset Occured
33
WDRF		avrbit	MCUSR,3		; Watchdog Reset Occured
34
 
35
SMCR		port	0x33		; Sleep Mode Control Register
36
SE		avrbit	SMCR,0		; Sleep Mode Enable
37
SM0		avrbit	SMCR,1		; Sleep Mode Select
38
SM1		avrbit	SMCR,2
39
SM2		avrbit	SMCR,3
40
 
41
PRR0		sfr	0x64		; Power Reduction Register 0
42
PRVADC		avrbit	PRR0,0		; Power Reduction Voltage ADC
43
PRTIM0		avrbit	PRR0,1		; Power Reduction Timer/Counter 0
44
PRTIM1		avrbit	PRR0,2		; Power Reduction Timer/Counter 1
45
PRTWI		avrbit	PRR0,3		; Power Reduction Two Wire Interface
46
 
47
FOSCCAL		sfr	0x66		; Fast Oscillator Calibration
48
 
49
CCSR		sfr	0xc0		; Clock Control and Status Register
50
XOE		avrbit	CCSR,1		; 32 kHz Crystal Oscillator Enable
51
ACS		avrbit	CCSR,0		; Asynchronous Clock Select
52
 
53
WUTCSR		sfr	0x62		; Wake-up Timer Control and Status Register
54
WUTIF		avrbit	WUTCSR,7	; Wake-up Timer Interrupt Flag
55
WUTIE		avrbit	WUTCSR,6	; Wake-up Timer Interrupt Enable
56
WUTCF		avrbit	WUTCSR,5	; Wake-up Timer Calibration Flag
57
WUTR		avrbit	WUTCSR,4	; Wake-up Timer Reset
58
WUTE		avrbit	WUTCSR,3	; Wake-up Timer Enable
59
WUTP2		avrbit	WUTCSR,2	; Wake-up Timer Prescaler 2, 1, and 0
60
WUTP1		avrbit	WUTCSR,1
61
WUTP0		avrbit	WUTCSR,0
62
 
63
BGCCR		sfr	0xd0		; Bandgap Calibration C Register
64
BGEN		avrbit	BGCCR,7		; reserved
65
BGCC5		avrbit	BGCCR,5		; BG Calibration of PTAT Current
66
BGCC4		avrbit	BGCCR,4
67
BGCC3		avrbit	BGCCR,3
68
BGCC2		avrbit	BGCCR,2
69
BGCC1		avrbit	BGCCR,1
70
BGCC0		avrbit	BGCCR,0
71
 
72
BGCRR		sfr	0xd1		; Bandgap Calibration R Register
73
BGCR7		avrbit	BGCRR,7		; BG Calibration of Resistor Ladder
74
BGCR6		avrbit	BGCRR,6
75
BGCR5		avrbit	BGCRR,5
76
BGCR4		avrbit	BGCRR,4
77
BGCR3		avrbit	BGCRR,3
78
BGCR2		avrbit	BGCRR,2
79
BGCR1		avrbit	BGCRR,1
80
BGCR0		avrbit	BGCRR,0
81
 
82
;----------------------------------------------------------------------------
83
; EEPROM/Program Memory Access
84
 
85
		include	"eem2.inc"
86
		include	"spmcsr37.inc"
87
 
88
EEPM0		avrbit	EECR,4		; EEPROM Programming Mode
89
EEPM1		avrbit	EECR,5
90
 
91
SIGRD		avrbit	SPMCSR,5	; Signature Row Read
92
 
93
;----------------------------------------------------------------------------
94
; JTAG
95
 
96
JTD		avrbit	MCUCR,7		; JTAG Disable
97
 
98
JTRF		avrbit	MCUSR,4		; JTAG Reset Occured
99
 
100
OCDR		port	0x31		; On-Chip Debug Register
101
 
102
;----------------------------------------------------------------------------
103
; GPIO
104
 
105
PINA		port	0x00		; Port A @ 0x00 (IO) ff.
106
PINB		port	0x03		; Port B @ 0x03 (IO) ff.
107
PORTC		port	0x08		; Port C @ 0x08 (Inp only)
108
PIND		port	0x09		; Port D @ 0x09 (IO) ff.
109
 
110
PCMSK0		sfr	0x6b		; Pin Change Mask Register 0
111
PCMSK1		sfr	0x6c		; Pin Change Mask Register 1
112
PCICR		sfr	0x68		; Pin Change Interrupt Control Register
113
PCIFR		port	0x1b		; Pin Change Interrupt Flag Register
114
 
115
GPIOR0		port	0x1e		; General Purpose I/O Registers
116
GPIOR1		port	0x2a
117
GPIOR2		port	0x2b
118
 
119
;----------------------------------------------------------------------------
120
; Interrupt Vectors
121
 
122
		enumconf 2,code
123
		enum	 BPINT_vect=2		; battery protection Interrupt
124
		nextenum INT0_vect		; External Interrupt Request 0
125
		nextenum INT1_vect		; External Interrupt Request 1
126
		nextenum INT2_vect		; External Interrupt Request 2
127
		nextenum INT3_vect		; External Interrupt Request 3
128
		nextenum PCINT0_vect		; Pin Change Interrupt Request 0
129
		nextenum PCINT1_vect		; Pin Change Interrupt Request 1
130
		nextenum WDT_vect		; Watchdog Time-Out Interrupt
131
		nextenum WAKE_UP_vect		; Wake-Up Timer Overflow
132
		nextenum TIMER1_COMP_vect	; Timer/Counter 1 Compare Match
133
		nextenum TIMER1_OVF_vect	; Timer/Counter 1 Overflow
134
		nextenum TIMER0_COMPA_vect	; Timer/Counter 0 Compare Match A
135
		nextenum TIMER0_COMPB_vect	; Timer/Counter 0 Compare Match B
136
		nextenum TIMER0_OVF_vect	; Timer/Counter 0 Overflow
137
		nextenum TWI_BUS_CD_vect	; Two-Wire Bus Connect/Disconnect
138
		nextenum TWI_vect		; 2-Wire Transfer Complete
139
		nextenum VADC_vect		; Voltage ADC Conversion Complete
140
		nextenum CCADC_CONV_vect	; CC-ADC Instantaneous Current Conversion Complete
141
		nextenum CCADC_REG_CUR_vect	; CC-ADC Regular Current
142
		nextenum CCADC_ACC_vect		; CC-ADC Accumulate Current Conversion Complete
143
		nextenum EE_READY_vect		; EEPROM Ready
144
		nextenum SPM_READY_vect		; Store Program Memory Ready
145
 
146
;----------------------------------------------------------------------------
147
; External Interrupts
148
 
149
EICRA		sfr	0x69		; External Interrupt Control Register A
150
ISC00		avrbit	EICRA,0		; External Interrupt 0 Sense Control
151
ISC01		avrbit	EICRA,1
152
ISC10		avrbit	EICRA,2		; External Interrupt 1 Sense Control
153
ISC11		avrbit	EICRA,3
154
ISC20		avrbit	EICRA,4		; External Interrupt 2 Sense Control
155
ISC21		avrbit	EICRA,5
156
ISC30		avrbit	EICRA,6		; External Interrupt 3 Sense Control
157
ISC31		avrbit	EICRA,7
158
 
159
EIMSK		port	0x1d		; External Interrupt Mask Register
160
INT0		avrbit	EIMSK,0		; Enable External Interrupt 0
161
INT1		avrbit	EIMSK,1		; Enable External Interrupt 1
162
INT2		avrbit	EIMSK,2		; Enable External Interrupt 2
163
INT3		avrbit	EIMSK,3		; Enable External Interrupt 3
164
 
165
EIFR		port	0x1c		; External Interrupt Flag Register
166
INTF0		avrbit	EIFR,0		; External Interrupt 0 Occured
167
INTF1		avrbit	EIFR,1		; External Interrupt 1 Occured
168
INTF2		avrbit	EIFR,2		; External Interrupt 2 Occured
169
INTF3		avrbit	EIFR,3		; External Interrupt 3 Occured
170
 
171
;----------------------------------------------------------------------------
172
; Timers
173
 
174
GTCCR		port	0x23		; General Timer/Counter Control Register
175
PSRSYNC		avrbit	GTCCR,0		; Prescaler Reset
176
TSM		avrbit	GTCCR,7		; Timer/Counter Synchronization Mode
177
 
178
TCCR0A		port	0x24		; Timer/Counter 0 Control Register A
179
WGM00		avrbit	TCCR0A,0	; Timer/Counter 0 Waveform Generation Mode
180
WGM01		avrbit	TCCR0A,1
181
COM0B0		avrbit	TCCR0A,4	; Timer/Counter 0 Compare B Mode
182
COM0B1		avrbit	TCCR0A,5
183
COM0A0		avrbit	TCCR0A,6	; Timer/Counter 0 Compare A Mode
184
COM0A1		avrbit	TCCR0A,7
185
TCCR0B		port	0x25		; Timer/Counter 0 Control Register B
186
CS00		avrbit	TCCR0B,0	; Timer/Counter 0 Clock Select
187
CS01		avrbit	TCCR0B,1
188
CS02		avrbit	TCCR0B,2
189
WGM02		avrbit	TCCR0B,3	; Timer/Counter 0 Waveform Generation Mode
190
FOC0B		avrbit	TCCR0B,6	; Timer/Counter 0 Force Output Compare B
191
FOC0A		avrbit	TCCR0B,7	; Timer/Counter 0 Force Output Compare A
192
TCNT0		port	0x26		; Timer/Counter 0
193
OCR0A		port	0x27		; Timer/Counter 0 Output Compare Value A
194
OCR0B		port	0x28		; Timer/Counter 0 Output Compare Value B
195
 
196
TCCR1B		sfr	0x81		; Timer/Counter 1 Control Register B
197
CS10		avrbit	TCCR1B,0	; Timer/Counter 1 Prescaler Setting
198
CS11		avrbit	TCCR1B,1
199
CS12		avrbit	TCCR1B,2
200
CTC1		avrbit	TCCR1B,3	; Timer/Counter 1 Clear on Match
201
TCNT1L		sfr	0x84		; Timer/Counter 1 Value LSB
202
TCNT1H		sfr	0x85		; Timer/Counter 1 Value MSB
203
OCR1AL		sfr	0x88		; Timer/Counter 1 Output Compare Value A LSB
204
OCR1AH		sfr	0x89		; Timer/Counter 1 Output Compare Value A MSB
205
 
206
TIMSK0		sfr	0x6e		; Timer/Counter 0 Interrupt Mask Register
207
TOIE0		avrbit	TIMSK0,0	; Timer/Counter 0 Overflow Interrupt Enable
208
OCIE0A		avrbit	TIMSK0,1	; Timer/Counter 0 Output Compare Interrupt Enable A
209
OCIE0B		avrbit	TIMSK0,2	; Timer/Counter 0 Output Compare Interrupt Enable B
210
TIMSK1		sfr	0x6f		; Timer/Counter 1 Interrupt Mask Register
211
TOIE1		avrbit	TIMSK1,0	; Timer/Counter 1 Overflow Interrupt Enable
212
OCIE1A		avrbit	TIMSK1,1	; Timer/Counter 1 Output Compare Interrupt Enable A
213
ICIE1		avrbit	TIMSK1,5	; Timer/Counter 1 Input Capture Event
214
 
215
TIFR0		port	0x15		; Timer/Counter 0 Interrupt Status Register 
216
TIFR1		port	0x16		; Timer/Counter 1 Interrupt Status Register
217
 
218
;----------------------------------------------------------------------------
219
; Watchdog Timer
220
 
221
		include	"wdme.inc"
222
 
223
;----------------------------------------------------------------------------
224
; TWI
225
 
226
		include	"twimb8.inc"
227
 
228
TWBCSR		sfr	0xbe		; TWI Bus Control and Status Register
229
TWBCIF		avrbit	TWBCSR,7	; TWI Bus Connect/Disconnect Interrupt Flag
230
TWBCIE		avrbit	TWBCSR,6	; TWI Bus Connect/Disconnect Interrupt Enable
231
TWBDT1		avrbit	TWBCSR,2	; TWI Bus Disconnect Time-Out Period
232
TWBDT0		avrbit	TWBCSR,1
233
TWBCIP		avrbit	TWBCSR,0	; TWI Bus Connect/Disconnect Interrupt Polarity
234
 
235
;----------------------------------------------------------------------------
236
; Coulomb Counter
237
 
238
CADCSRA		sfr	0xe4		; CC-ADC Control and Status Register A
239
CADSE		avrbit	CADCSRA,0	; CC-ADC Current Sampling Enable
240
CADIS0		avrbit	CADCSRA,1	; CC-ADC Current Sampling Interval
241
CADIS1		avrbit	CADCSRA,2
242
CADAS0		avrbit	CADCSRA,3	; CC-ADC Accumulate Current Select
243
CADAS1		avrbit	CADCSRA,4
244
CADUB		avrbit	CADCSRA,5	; CADUB: CC-ADC Update Busy
245
CADEN		avrbit	CADCSRA,7	; CC-ADC Enable
246
 
247
CADCSRB		sfr	0xe5		; CC-ADC Control and Status Register B
248
CADACIE		avrbit	CADCSRB,6	; CC-ADC Accumulate Current Interrupt Enable
249
CADRCIE		avrbit	CADCSRB,5	; CC-ADC Regular Current Interrupt Enable
250
CADICIE		avrbit	CADCSRB,4	; CC-ADC Instantaneous Current Interrupt Enable
251
CADACIF		avrbit	CADCSRB,2	; CC-ADC Accumulate Current Interrupt Flag
252
CADRCIF		avrbit	CADCSRB,1	; CC-ADC Regular Current Interrupt Flag
253
CADICIF		avrbit	CADCSRB,0	; CC-ADC Instantaneous Current Interrupt Flag
254
 
255
CADICL		sfr	0xe8		; CC-ADC Instantaneous Current
256
CADICH		sfr	0xe9
257
 
258
CADAC0		sfr	0xe0		; CC-ADC Accumulate Current
259
CADAC1		sfr	0xe1
260
CADAC2		sfr	0xe2
261
CADAC3		sfr	0xe3
262
 
263
CADRCC		sfr	0xe6		; CC-ADC Regular Charge Current
264
 
265
CADRDC		sfr	0xe7		; CC-ADC Regular Discharge Current
266
 
267
;----------------------------------------------------------------------------
268
; Voltage A/D Converter
269
 
270
VADMUX		sfr	0x7c		; Multiplexer Selection Register
271
VADMUX0		avrbit	VADMUX,0	; Channel Selection Bits
272
VADMUX1		avrbit	VADMUX,1
273
VADMUX2		avrbit	VADMUX,2
274
VADMUX3		avrbit	VADMUX,3
275
 
276
VADCSR		sfr	0x7a		; Control and Status Register
277
VADCCIE		avrbit	VADCSR,0	; V-ADC Conversion Complete Interrupt Enable
278
VADCCIF		avrbit	VADCSR,1	; V-ADC Conversion Complete Interrupt Flag
279
VADSC		avrbit	VADCSR,2	; Voltage ADC Start Conversion
280
VADEN		avrbit	VADCSR,3	; V-ADC Enable
281
 
282
VADCL		sfr	0x78		; V-ADC Data Register
283
VADCH		sfr	0x79
284
 
285
DIDR0		sfr	0x7e		; Digital Input Disable Register 0
286
VADC0D		avrbit	DIDR0,0		; V-ADC0 Digital Input Disable
287
VADC1D		avrbit	DIDR0,1		; V-ADC1 Digital Input Disable
288
VADC2D		avrbit	DIDR0,2		; V-ADC2 Digital Input Disable
289
VADC3D		avrbit	DIDR0,3		; V-ADC3 Digital Input Disable
290
 
291
;----------------------------------------------------------------------------
292
; FET Control
293
 
294
FCSR		sfr	0xf0		; FET Control and Status Register
295
PWMOC		avrbit	FCSR,5		; Pulse Width Modulation of OC Output
296
PWMOPC		avrbit	FCSR,4		; Pulse Width Modulation of OPC Output
297
CPS		avrbit	FCSR,3		; Current Protection Status
298
DFE		avrbit	FCSR,2		; Discharge FET Enable
299
CFE		avrbit	FCSR,1		; Charge FET Enable
300
PFD		avrbit	FCSR,0		; Precharge FET Disable
301
 
302
;----------------------------------------------------------------------------
303
; Cell Balancing
304
 
305
CBCR		sfr	0xf1		; Cell Balancing Control Register
306
CBE4		avrbit	CBCR,3		; Cell Balancing Enable 4
307
CBE3		avrbit	CBCR,2		; Cell Balancing Enable 3
308
CBE2		avrbit	CBCR,1		; Cell Balancing Enable 2
309
CBE1		avrbit	CBCR,0		; Cell Balancing Enable 1
310
 
311
;----------------------------------------------------------------------------
312
; Battery Protection
313
 
314
BPPLR		sfr	0xf8		; Battery Protection Parameter Lock Register
315
BPPLE		avrbit	BPPLR,1		; Battery Protection Parameter Lock Enable
316
BPPL		avrbit	BPPLR,0		; Battery Protection Parameter Lock
317
 
318
BPCR		sfr	0xf7		; Battery Protection Control Register
319
DUVD		avrbit	BPCR,3		; Deep Under-Voltage Protection Disable
320
SCD		avrbit	BPCR,2		; Short Circuit Protection Disabled
321
DCD		avrbit	BPCR,1		; Discharge Over-Current Protection Disable
322
CCD		avrbit	BPCR,0		; Charge Over-Current Protection Disable
323
 
324
CBPTR		sfr	0xf6		; Current Battery Protection Timing Register
325
SCPT3		avrbit	CBPTR,7		; Short-Circuit Protection Timing
326
SCPT2		avrbit	CBPTR,6
327
SCPT1		avrbit	CBPTR,5
328
SCPT0		avrbit	CBPTR,4
329
OCPT3		avrbit	CBPTR,3		; Over-Current Protection Timing
330
OCPT2		avrbit	CBPTR,2
331
OCPT1		avrbit	CBPTR,1
332
OCPT0		avrbit	CBPTR,0
333
 
334
BPOCD		sfr	0xf5		; Battery Protection Over-Current Detection Level Register
335
DCDL3		avrbit	BPOCD,7		; Discharge Over-Current Detection Level
336
DCDL2		avrbit	BPOCD,6
337
DCDL1		avrbit	BPOCD,5
338
DCDL0		avrbit	BPOCD,4
339
CCDL3		avrbit	BPOCD,3		; Charge Over-Current Detection Level
340
CCDL2		avrbit	BPOCD,2
341
CCDL1		avrbit	BPOCD,1
342
CCDL0		avrbit	BPOCD,0
343
 
344
BPSCD		sfr	0xf4		; Battery Protection Short-Circuit Detection Level Register
345
SCDL3		avrbit	BPSCD,3		; Short-Circuit Detection Level
346
SCDL2		avrbit	BPSCD,2
347
SCDL1		avrbit	BPSCD,1
348
SCDL0		avrbit	BPSCD,0
349
 
350
BPDUV		sfr	0xf3		; Battery Protection Deep Under Voltage Register
351
DUVT1		avrbit	BPDUV,5		; Deep Under-Voltage Timing
352
DUVT0		avrbit	BPDUV,4
353
DUDL3		avrbit	BPDUV,3		; Deep Under-Voltage Detection Level
354
DUDL2		avrbit	BPDUV,2
355
DUDL1		avrbit	BPDUV,1
356
DUDL0		avrbit	BPDUV,0
357
 
358
BPIR		sfr	0xf2		; Battery Protection Interrupt Register
359
DUVIF		avrbit	BPIR,7		; Deep Under-Voltage Early Warning Interrupt Flag
360
COCIF		avrbit	BPIR,6		; Charge Over-Current Protection Activated Interrupt Flag
361
DOCIF		avrbit	BPIR,5		; Discharge Over-Current Protection Activated Interrupt Flag
362
SCIF		avrbit	BPIR,4		; Short-Circuit Protection Activated Interrupt Flag
363
DUVIE		avrbit	BPIR,3		; Deep Under-Voltage Early Warning Interrupt Enable
364
COCIE		avrbit	BPIR,2		; Charge Over-Current Protection Activated Interrupt Enable
365
DOCIE		avrbit	BPIR,1		; Discharge Over-Current Protection Activated Interrupt Enable
366
SCIE		avrbit	BPIR,0		; Short-Circuit Protection Activated Interrupt Enable
367
 
368
		restore			; re-enable listing
369
 
370
		endif			; __regm406inc