RTEMS CPU Kit with SuperCore  4.11.3
iotn43u.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright (c) 2007 Atmel Corporation
11  * All rights reserved.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions are met:
15  *
16  * * Redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer.
18  *
19  * * Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in
21  * the documentation and/or other materials provided with the
22  * distribution.
23  *
24  * * Neither the name of the copyright holders nor the names of
25  * contributors may be used to endorse or promote products derived
26  * from this software without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38  * POSSIBILITY OF SUCH DAMAGE.
39  */
40 
41 #ifndef _AVR_IO_H_
42 # error "Include <avr/io.h> instead of this file."
43 #endif
44 
45 #ifndef _AVR_IOXXX_H_
46 # define _AVR_IOXXX_H_ "iotn43u.h"
47 #else
48 # error "Attempt to include more than one <avr/ioXXX.h> file."
49 #endif
50 
51 
52 #ifndef _AVR_IOTN43U_H_
53 #define _AVR_IOTN43U_H_ 1
54 
62 /* Registers and associated bit numbers */
63 
64 #define PRR _SFR_IO8(0x00)
65 #define PRADC 0
66 #define PRUSI 1
67 #define PRTIM0 2
68 #define PRTIM1 3
69 
70 #define DIDR0 _SFR_IO8(0x01)
71 #define ADC0D 0
72 #define ADC1D 1
73 #define ADC2D 2
74 #define ADC3D 3
75 #define AIN0D 4
76 #define AIN1D 5
77 
78 /* Reserved [0x02] */
79 
80 #define ADCSRB _SFR_IO8(0x03)
81 #define ADTS0 0
82 #define ADTS1 1
83 #define ADTS2 2
84 #define ADLAR 4
85 #define ACME 6
86 
87 #define ADC _SFR_IO16(0x04)
88 
89 #define ADCL _SFR_IO8(0x04)
90 #define ADCL0 0
91 #define ADCL1 1
92 #define ADCL2 2
93 #define ADCL3 3
94 #define ADCL4 4
95 #define ADCL5 5
96 #define ADCL6 6
97 #define ADCL7 7
98 
99 #define ADCH _SFR_IO8(0x05)
100 #define ADCH0 0
101 #define ADCH1 1
102 #define ADCH2 2
103 #define ADCH3 3
104 #define ADCH4 4
105 #define ADCH5 5
106 #define ADCH6 6
107 #define ADCH7 7
108 
109 #define ADCSRA _SFR_IO8(0x06)
110 #define ADPS0 0
111 #define ADPS1 1
112 #define ADPS2 2
113 #define ADIE 3
114 #define ADIF 4
115 #define ADATE 5
116 #define ADSC 6
117 #define ADEN 7
118 
119 #define ADMUX _SFR_IO8(0x07)
120 #define MUX0 0
121 #define MUX1 1
122 #define MUX2 2
123 #define REFS0 6
124 
125 #define ACSR _SFR_IO8(0x08)
126 #define ACIS0 0
127 #define ACIS1 1
128 #define ACIE 3
129 #define ACI 4
130 #define ACO 5
131 #define ACBG 6
132 #define ACD 7
133 
134 /* Reserved [0x09], [0x0A] */
135 
136 #define TIFR1 _SFR_IO8(0x0B)
137 #define TOV1 0
138 #define OCF1A 1
139 #define OCF1B 2
140 
141 #define TIMSK1 _SFR_IO8(0x0C)
142 #define TOIE1 0
143 #define OCIE1A 1
144 #define OCIE1B 2
145 
146 #define USICR _SFR_IO8(0x0D)
147 #define USITC 0
148 #define USICLK 1
149 #define USICS0 2
150 #define USICS1 3
151 #define USIWM0 4
152 #define USIWM1 5
153 #define USIOIE 6
154 #define USISIE 7
155 
156 #define USISR _SFR_IO8(0x0E)
157 #define USICNT0 0
158 #define USICNT1 1
159 #define USICNT2 2
160 #define USICNT3 3
161 #define USIDC 4
162 #define USIPF 5
163 #define USIOIF 6
164 #define USISIF 7
165 
166 #define USIDR _SFR_IO8(0x0F)
167 #define USIDR0 0
168 #define USIDR1 1
169 #define USIDR2 2
170 #define USIDR3 3
171 #define USIDR4 4
172 #define USIDR5 5
173 #define USIDR6 6
174 #define USIDR7 7
175 
176 #define USIBR _SFR_IO8(0x10)
177 #define USIBR0 0
178 #define USIBR1 1
179 #define USIBR2 2
180 #define USIBR3 3
181 #define USIBR4 4
182 #define USIBR5 5
183 #define USIBR6 6
184 #define USIBR7 7
185 
186 /* Reserved [0x11] */
187 
188 #define PCMSK0 _SFR_IO8(0x12)
189 #define PCINT0 0
190 #define PCINT1 1
191 #define PCINT2 2
192 #define PCINT3 3
193 #define PCINT4 4
194 #define PCINT5 5
195 #define PCINT6 6
196 #define PCINT7 7
197 
198 #define GPIOR0 _SFR_IO8(0x13)
199 #define GPIOR00 0
200 #define GPIOR01 1
201 #define GPIOR02 2
202 #define GPIOR03 3
203 #define GPIOR04 4
204 #define GPIOR05 5
205 #define GPIOR06 6
206 #define GPIOR07 7
207 
208 #define GPIOR1 _SFR_IO8(0x14)
209 #define GPIOR10 0
210 #define GPIOR11 1
211 #define GPIOR12 2
212 #define GPIOR13 3
213 #define GPIOR14 4
214 #define GPIOR15 5
215 #define GPIOR16 6
216 #define GPIOR17 7
217 
218 #define GPIOR2 _SFR_IO8(0x15)
219 #define GPIOR20 0
220 #define GPIOR21 1
221 #define GPIOR22 2
222 #define GPIOR23 3
223 #define GPIOR24 4
224 #define GPIOR25 5
225 #define GPIOR26 6
226 #define GPIOR27 7
227 
228 #define PINB _SFR_IO8(0x16)
229 #define PINB0 0
230 #define PINB1 1
231 #define PINB2 2
232 #define PINB3 3
233 #define PINB4 4
234 #define PINB5 5
235 #define PINB6 6
236 #define PINB7 7
237 
238 #define DDRB _SFR_IO8(0x17)
239 #define DDB0 0
240 #define DDB1 1
241 #define DDB2 2
242 #define DDB3 3
243 #define DDB4 4
244 #define DDB5 5
245 #define DDB6 6
246 #define DDB7 7
247 
248 #define PORTB _SFR_IO8(0x18)
249 #define PORTB0 0
250 #define PORTB1 1
251 #define PORTB2 2
252 #define PORTB3 3
253 #define PORTB4 4
254 #define PORTB5 5
255 #define PORTB6 6
256 #define PORTB7 7
257 
258 #define PINA _SFR_IO8(0x19)
259 #define PINA0 0
260 #define PINA1 1
261 #define PINA2 2
262 #define PINA3 3
263 #define PINA4 4
264 #define PINA5 5
265 #define PINA6 6
266 #define PINA7 7
267 
268 #define DDRA _SFR_IO8(0x1A)
269 #define DDA0 0
270 #define DDA1 1
271 #define DDA2 2
272 #define DDA3 3
273 #define DDA4 4
274 #define DDA5 5
275 #define DDA6 6
276 #define DDA7 7
277 
278 #define PORTA _SFR_IO8(0x1B)
279 #define PORTA0 0
280 #define PORTA1 1
281 #define PORTA2 2
282 #define PORTA3 3
283 #define PORTA4 4
284 #define PORTA5 5
285 #define PORTA6 6
286 #define PORTA7 7
287 
288 /* EEPROM Control Register */
289 #define EECR _SFR_IO8(0x1C)
290 #define EERE 0
291 #define EEPE 1
292 #define EEMPE 2
293 #define EERIE 3
294 #define EEPM0 4
295 #define EEPM1 5
296 
297 /* EEPROM Data Register */
298 #define EEDR _SFR_IO8(0x1D)
299 
300 /* EEPROM Address Register */
301 #define EEARL _SFR_IO8(0x1E)
302 
303 /* Reserved [0x1F] */
304 
305 #define PCMSK1 _SFR_IO8(0x20)
306 #define PCINT8 0
307 #define PCINT9 1
308 #define PCINT10 2
309 #define PCINT11 3
310 
311 #define WDTCSR _SFR_IO8(0x21)
312 #define WDP0 0
313 #define WDP1 1
314 #define WDP2 2
315 #define WDE 3
316 #define WDCE 4
317 #define WDP3 5
318 #define WDIE 6
319 #define WDIF 7
320 
321 /* Reserved [0x22] */
322 
323 #define GTCCR _SFR_IO8(0x23)
324 #define PSR10 0
325 #define TSM 7
326 
327 /* Reserved [0x24], [0x25] */
328 
329 #define CLKPR _SFR_IO8(0x26)
330 #define CLKPS0 0
331 #define CLKPS1 1
332 #define CLKPS2 2
333 #define CLKPS3 3
334 #define CLKPCE 7
335 
336 /* Reserved [0x27],[0x28],[0x29],[0x2A] */
337 
338 #define OCR1B _SFR_IO8(0x2B)
339 #define OCR1B_0 0
340 #define OCR1B_1 1
341 #define OCR1B_2 2
342 #define OCR1B_3 3
343 #define OCR1B_4 4
344 #define OCR1B_5 5
345 #define OCR1B_6 6
346 #define OCR1B_7 7
347 
348 #define OCR1A _SFR_IO8(0x2C)
349 #define OCR1A_0 0
350 #define OCR1A_1 1
351 #define OCRA1_2 2
352 #define OCRA1_3 3
353 #define OCRA1_4 4
354 #define OCRA1_5 5
355 #define OCRA1_6 6
356 #define OCRA1_7 7
357 
358 #define TCNT1 _SFR_IO8(0x2D)
359 #define TCNT1_0 0
360 #define TCNT1_1 1
361 #define TCNT1_2 2
362 #define TCNT1_3 3
363 #define TCNT1_4 4
364 #define TCNT1_5 5
365 #define TCNT1_6 6
366 #define TCNT1_7 7
367 
368 #define TCCR1B _SFR_IO8(0x2E)
369 #define CS10 0
370 #define CS11 1
371 #define CS12 2
372 #define WGM12 3
373 #define FOC1B 6
374 #define FOC1A 7
375 
376 #define TCCR1A _SFR_IO8(0x2F)
377 #define WGM10 0
378 #define WGM11 1
379 #define COM1B0 4
380 #define COM1B1 5
381 #define COM1A0 6
382 #define COM1A1 7
383 
384 #define TCCR0A _SFR_IO8(0x30)
385 #define WGM00 0
386 #define WGM01 1
387 #define COM0B0 4
388 #define COM0B1 5
389 #define COM0A0 6
390 #define COM0A1 7
391 
392 #define OSCCAL _SFR_IO8(0x31)
393 #define CAL0 0
394 #define CAL1 1
395 #define CAL2 2
396 #define CAL3 3
397 #define CAL4 4
398 #define CAL5 5
399 #define CAL6 6
400 #define CAL7 7
401 
402 #define TCNT0 _SFR_IO8(0x32)
403 #define TCNT0_0 0
404 #define TCNT0_1 1
405 #define TCNT0_2 2
406 #define TCNT0_3 3
407 #define TCNT0_4 4
408 #define TCNT0_5 5
409 #define TCNT0_6 6
410 #define TCNT0_7 7
411 
412 #define TCCR0B _SFR_IO8(0x33)
413 #define CS00 0
414 #define CS01 1
415 #define CS02 2
416 #define WGM02 3
417 #define FOC0B 6
418 #define FOC0A 7
419 
420 #define MCUSR _SFR_IO8(0x34)
421 #define PORF 0
422 #define EXTRF 1
423 #define BORF 2
424 #define WDRF 3
425 
426 #define MCUCR _SFR_IO8(0x35)
427 #define ISC00 0
428 #define ISC01 1
429 #define BODSE 2
430 #define SM0 3
431 #define SM1 4
432 #define SE 5
433 #define PUD 6
434 #define BODS 7
435 
436 #define OCR0A _SFR_IO8(0x36)
437 #define OCR0A_0 0
438 #define OCR0A_1 1
439 #define OCR0A_2 2
440 #define OCR0A_3 3
441 #define OCR0A_4 4
442 #define OCR0A_5 5
443 #define OCR0A_6 6
444 #define OCR0A_7 7
445 
446 #define SPMCSR _SFR_IO8(0x37)
447 #define SPMEN 0
448 #define PGERS 1
449 #define PGWRT 2
450 #define RFLB 3
451 #define CTPB 4
452 
453 #define TIFR0 _SFR_IO8(0x38)
454 #define TOV0 0
455 #define OCF0A 1
456 #define OCF0B 2
457 
458 #define TIMSK0 _SFR_IO8(0x39)
459 #define TOIE0 0
460 #define OCIE0A 1
461 #define OCIE0B 2
462 
463 #define GIFR _SFR_IO8(0x3A)
464 #define PCIF0 4
465 #define PCIF1 5
466 #define INTF0 6
467 
468 #define GIMSK _SFR_IO8(0x3B)
469 #define PCIE0 4
470 #define PCIE1 5
471 #define INT0 6
472 
473 #define OCR0B _SFR_IO8(0x3C)
474 #define OCR0B_0 0
475 #define OCR0B_1 1
476 #define OCR0B_2 2
477 #define OCR0B_3 3
478 #define OCR0B_4 4
479 #define OCR0B_5 5
480 #define OCR0B_6 6
481 #define OCR0B_7 7
482 
483 
484 
485 /* Interrupt Vectors */
486 /* Interrupt vector 0 is the reset vector. */
487 
488 /* External Interrupt Request 0 */
489 #define INT0_vect _VECTOR(1)
490 
491 /* Pin Change Interrupt Request 0 */
492 #define PCINT0_vect _VECTOR(2)
493 
494 /* Pin Change Interrupt Request 1 */
495 #define PCINT1_vect _VECTOR(3)
496 
497 /* Watchdog Time-out */
498 #define WDT_vect _VECTOR(4)
499 
500 /* Timer/Counter1 Compare Match A */
501 #define TIM1_COMPA_vect _VECTOR(5)
502 
503 /* Timer/Counter1 Compare Match B */
504 #define TIM1_COMPB_vect _VECTOR(6)
505 
506 /* Timer/Counter1 Overflow */
507 #define TIM1_OVF_vect _VECTOR(7)
508 
509 /* Timer/Counter0 Compare Match A */
510 #define TIM0_COMPA_vect _VECTOR(8)
511 
512 /* Timer/Counter0 Compare Match B */
513 #define TIM0_COMPB_vect _VECTOR(9)
514 
515 /* Timer/Counter0 Overflow */
516 #define TIM0_OVF_vect _VECTOR(10)
517 
518 /* Analog Comparator */
519 #define ANA_COMP_vect _VECTOR(11)
520 
521 /* ADC Conversion Complete */
522 #define ADC_vect _VECTOR(12)
523 
524 /* EEPROM Ready */
525 #define EE_RDY_vect _VECTOR(13)
526 
527 /* USI START */
528 #define USI_START_vect _VECTOR(14)
529 
530 /* USI Overflow */
531 #define USI_OVF_vect _VECTOR(15)
532 
533 #define _VECTORS_SIZE 32
534 
535 
536 /* Constants */
537 #define SPM_PAGESIZE 64
538 #define RAMEND 0x15F
539 #define XRAMEND RAMEND
540 #define E2END 0x3F
541 #define E2PAGESIZE 4
542 #define FLASHEND 0xFFF
543 
544 
545 /* Fuse Information */
546 #define FUSE_MEMORY_SIZE 3
547 
548 /* Low Fuse Byte */
549 #define FUSE_CKSEL0 (unsigned char)~_BV(0)
550 #define FUSE_CKSEL1 (unsigned char)~_BV(1)
551 #define FUSE_CKSEL2 (unsigned char)~_BV(2)
552 #define FUSE_CKSEL3 (unsigned char)~_BV(3)
553 #define FUSE_SUT0 (unsigned char)~_BV(4)
554 #define FUSE_SUT1 (unsigned char)~_BV(5)
555 #define FUSE_CKOUT (unsigned char)~_BV(6)
556 #define FUSE_CKDIV8 (unsigned char)~_BV(7)
557 #define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_CKDIV8)
558 
559 /* High Fuse Byte */
560 #define FUSE_BODLEVEL0 (unsigned char)~_BV(0)
561 #define FUSE_BODLEVEL1 (unsigned char)~_BV(1)
562 #define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
563 #define FUSE_EESAVE (unsigned char)~_BV(3)
564 #define FUSE_WDTON (unsigned char)~_BV(4)
565 #define FUSE_SPIEN (unsigned char)~_BV(5)
566 #define FUSE_DWEN (unsigned char)~_BV(6)
567 #define FUSE_RSTDISBL (unsigned char)~_BV(7)
568 #define HFUSE_DEFAULT (FUSE_SPIEN)
569 
570 /* Extended Fuse Byte */
571 #define FUSE_SELFPRGEN (unsigned char)~_BV(0)
572 #define EFUSE_DEFAULT (0xFF)
573 
574 
575 /* Lock Bits */
576 #define __LOCK_BITS_EXIST
577 
578 
579 /* Signature */
580 #define SIGNATURE_0 0x1E
581 #define SIGNATURE_1 0x92
582 #define SIGNATURE_2 0x0C
583 
584 
586 #endif /* _AVR_IOTN43U_H_ */