RTEMS CPU Kit with SuperCore  4.11.3
io4434.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright (c) 2002 Marek Michalkiewicz
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_IO4434_H_
42 #define _AVR_IO4434_H_ 1
43 
51 #ifndef _AVR_IO_H_
52 # error "Include <avr/io.h> instead of this file."
53 #endif
54 
55 #ifndef _AVR_IOXXX_H_
56 # define _AVR_IOXXX_H_ "io4434.h"
57 #else
58 # error "Attempt to include more than one <avr/ioXXX.h> file."
59 #endif
60 
61 /* I/O registers */
62 
63 /* ADC Data register */
64 #ifndef __ASSEMBLER__
65 #define ADC _SFR_IO16(0x04)
66 #endif
67 #define ADCW _SFR_IO16(0x04)
68 #define ADCL _SFR_IO8(0x04)
69 #define ADCH _SFR_IO8(0x05)
70 
71 /* ADC Control and Status Register */
72 #define ADCSR _SFR_IO8(0x06)
73 
74 /* ADC MUX */
75 #define ADMUX _SFR_IO8(0x07)
76 
77 /* Analog Comparator Control and Status Register */
78 #define ACSR _SFR_IO8(0x08)
79 
80 /* UART Baud Rate Register */
81 #define UBRR _SFR_IO8(0x09)
82 
83 /* UART Control Register */
84 #define UCR _SFR_IO8(0x0A)
85 
86 /* UART Status Register */
87 #define USR _SFR_IO8(0x0B)
88 
89 /* UART I/O Data Register */
90 #define UDR _SFR_IO8(0x0C)
91 
92 /* SPI Control Register */
93 #define SPCR _SFR_IO8(0x0D)
94 
95 /* SPI Status Register */
96 #define SPSR _SFR_IO8(0x0E)
97 
98 /* SPI I/O Data Register */
99 #define SPDR _SFR_IO8(0x0F)
100 
101 /* Input Pins, Port D */
102 #define PIND _SFR_IO8(0x10)
103 
104 /* Data Direction Register, Port D */
105 #define DDRD _SFR_IO8(0x11)
106 
107 /* Data Register, Port D */
108 #define PORTD _SFR_IO8(0x12)
109 
110 /* Input Pins, Port C */
111 #define PINC _SFR_IO8(0x13)
112 
113 /* Data Direction Register, Port C */
114 #define DDRC _SFR_IO8(0x14)
115 
116 /* Data Register, Port C */
117 #define PORTC _SFR_IO8(0x15)
118 
119 /* Input Pins, Port B */
120 #define PINB _SFR_IO8(0x16)
121 
122 /* Data Direction Register, Port B */
123 #define DDRB _SFR_IO8(0x17)
124 
125 /* Data Register, Port B */
126 #define PORTB _SFR_IO8(0x18)
127 
128 /* Input Pins, Port A */
129 #define PINA _SFR_IO8(0x19)
130 
131 /* Data Direction Register, Port A */
132 #define DDRA _SFR_IO8(0x1A)
133 
134 /* Data Register, Port A */
135 #define PORTA _SFR_IO8(0x1B)
136 
137 /* EEPROM Control Register */
138 #define EECR _SFR_IO8(0x1C)
139 
140 /* EEPROM Data Register */
141 #define EEDR _SFR_IO8(0x1D)
142 
143 /* EEPROM Address Register */
144 #define EEAR _SFR_IO8(0x1E)
145 #define EEARL _SFR_IO8(0x1E)
146 
147 /* Watchdog Timer Control Register */
148 #define WDTCR _SFR_IO8(0x21)
149 
150 /* Asynchronous mode Status Register */
151 #define ASSR _SFR_IO8(0x22)
152 
153 /* Timer/Counter2 Output Compare Register */
154 #define OCR2 _SFR_IO8(0x23)
155 
156 /* Timer/Counter 2 */
157 #define TCNT2 _SFR_IO8(0x24)
158 
159 /* Timer/Counter 2 Control Register */
160 #define TCCR2 _SFR_IO8(0x25)
161 
162 /* T/C 1 Input Capture Register */
163 #define ICR1 _SFR_IO16(0x26)
164 #define ICR1L _SFR_IO8(0x26)
165 #define ICR1H _SFR_IO8(0x27)
166 
167 /* Timer/Counter1 Output Compare Register B */
168 #define OCR1B _SFR_IO16(0x28)
169 #define OCR1BL _SFR_IO8(0x28)
170 #define OCR1BH _SFR_IO8(0x29)
171 
172 /* Timer/Counter1 Output Compare Register A */
173 #define OCR1A _SFR_IO16(0x2A)
174 #define OCR1AL _SFR_IO8(0x2A)
175 #define OCR1AH _SFR_IO8(0x2B)
176 
177 /* Timer/Counter 1 */
178 #define TCNT1 _SFR_IO16(0x2C)
179 #define TCNT1L _SFR_IO8(0x2C)
180 #define TCNT1H _SFR_IO8(0x2D)
181 
182 /* Timer/Counter 1 Control and Status Register */
183 #define TCCR1B _SFR_IO8(0x2E)
184 
185 /* Timer/Counter 1 Control Register */
186 #define TCCR1A _SFR_IO8(0x2F)
187 
188 /* Timer/Counter 0 */
189 #define TCNT0 _SFR_IO8(0x32)
190 
191 /* Timer/Counter 0 Control Register */
192 #define TCCR0 _SFR_IO8(0x33)
193 
194 /* MCU general Status Register */
195 #define MCUSR _SFR_IO8(0x34)
196 
197 /* MCU general Control Register */
198 #define MCUCR _SFR_IO8(0x35)
199 
200 /* Timer/Counter Interrupt Flag register */
201 #define TIFR _SFR_IO8(0x38)
202 
203 /* Timer/Counter Interrupt MaSK register */
204 #define TIMSK _SFR_IO8(0x39)
205 
206 /* General Interrupt Flag Register */
207 #define GIFR _SFR_IO8(0x3A)
208 
209 /* General Interrupt MaSK register */
210 #define GIMSK _SFR_IO8(0x3B)
211 
212 /* 0x3D..0x3E SP */
213 
214 /* 0x3F SREG */
215 
216 /* Interrupt vectors */
217 
218 /* External Interrupt 0 */
219 #define INT0_vect _VECTOR(1)
220 #define SIG_INTERRUPT0 _VECTOR(1)
221 
222 /* External Interrupt 1 */
223 #define INT1_vect _VECTOR(2)
224 #define SIG_INTERRUPT1 _VECTOR(2)
225 
226 /* Timer/Counter2 Compare Match */
227 #define TIMER2_COMP_vect _VECTOR(3)
228 #define SIG_OUTPUT_COMPARE2 _VECTOR(3)
229 
230 /* Timer/Counter2 Overflow */
231 #define TIMER2_OVF_vect _VECTOR(4)
232 #define SIG_OVERFLOW2 _VECTOR(4)
233 
234 /* Timer/Counter1 Capture Event */
235 #define TIMER1_CAPT_vect _VECTOR(5)
236 #define SIG_INPUT_CAPTURE1 _VECTOR(5)
237 
238 /* Timer/Counter1 Compare Match A */
239 #define TIMER1_COMPA_vect _VECTOR(6)
240 #define SIG_OUTPUT_COMPARE1A _VECTOR(6)
241 
242 /* Timer/Counter1 Compare Match B */
243 #define TIMER1_COMPB_vect _VECTOR(7)
244 #define SIG_OUTPUT_COMPARE1B _VECTOR(7)
245 
246 /* Timer/Counter1 Overflow */
247 #define TIMER1_OVF_vect _VECTOR(8)
248 #define SIG_OVERFLOW1 _VECTOR(8)
249 
250 /* Timer/Counter0 Overflow */
251 #define TIMER0_OVF_vect _VECTOR(9)
252 #define SIG_OVERFLOW0 _VECTOR(9)
253 
254 /* SPI Serial Transfer Complete */
255 #define SPI_STC_vect _VECTOR(10)
256 #define SIG_SPI _VECTOR(10)
257 
258 /* UART, RX Complete */
259 #define UART_RX_vect _VECTOR(11)
260 #define SIG_UART_RECV _VECTOR(11)
261 
262 /* UART Data Register Empty */
263 #define UART_UDRE_vect _VECTOR(12)
264 #define SIG_UART_DATA _VECTOR(12)
265 
266 /* UART, TX Complete */
267 #define UART_TX_vect _VECTOR(13)
268 #define SIG_UART_TRANS _VECTOR(13)
269 
270 /* ADC Conversion Complete */
271 #define ADC_vect _VECTOR(14)
272 #define SIG_ADC _VECTOR(14)
273 
274 /* EEPROM Ready */
275 #define EE_RDY_vect _VECTOR(15)
276 #define SIG_EEPROM_READY _VECTOR(15)
277 
278 /* Analog Comparator */
279 #define ANA_COMP_vect _VECTOR(16)
280 #define SIG_COMPARATOR _VECTOR(16)
281 
282 #define _VECTORS_SIZE 34
283 
284 /*
285  The Register Bit names are represented by their bit number (0-7).
286 */
287 
288 /* MCU general Status Register */
289 #define EXTRF 1
290 #define PORF 0
291 
292 /* General Interrupt MaSK register */
293 #define INT1 7
294 #define INT0 6
295 
296 /* General Interrupt Flag Register */
297 #define INTF1 7
298 #define INTF0 6
299 
300 /* Timer/Counter Interrupt MaSK register */
301 #define OCIE2 7
302 #define TOIE2 6
303 #define TICIE1 5
304 #define OCIE1A 4
305 #define OCIE1B 3
306 #define TOIE1 2
307 #define TOIE0 0
308 
309 /* Timer/Counter Interrupt Flag register */
310 #define OCF2 7
311 #define TOV2 6
312 #define ICF1 5
313 #define OCF1A 4
314 #define OCF1B 3
315 #define TOV1 2
316 #define TOV0 0
317 
318 /* MCU general Control Register */
319 #define SE 6
320 #define SM1 5
321 #define SM0 4
322 #define ISC11 3
323 #define ISC10 2
324 #define ISC01 1
325 #define ISC00 0
326 
327 /* Timer/Counter 0 Control Register */
328 #define CS02 2
329 #define CS01 1
330 #define CS00 0
331 
332 /* Timer/Counter 1 Control Register */
333 #define COM1A1 7
334 #define COM1A0 6
335 #define COM1B1 5
336 #define COM1B0 4
337 #define PWM11 1
338 #define PWM10 0
339 
340 /* Timer/Counter 1 Control and Status Register */
341 #define ICNC1 7
342 #define ICES1 6
343 #define CTC1 3
344 #define CS12 2
345 #define CS11 1
346 #define CS10 0
347 
348 /* Timer/Counter 2 Control Register */
349 #define PWM2 6
350 #define COM21 5
351 #define COM20 4
352 #define CTC2 3
353 #define CS22 2
354 #define CS21 1
355 #define CS20 0
356 
357 /* Asynchronous mode Status Register */
358 #define AS2 3
359 #define TCN2UB 2
360 #define OCR2UB 1
361 #define TCR2UB 0
362 
363 /* Watchdog Timer Control Register */
364 #define WDTOE 4
365 #define WDE 3
366 #define WDP2 2
367 #define WDP1 1
368 #define WDP0 0
369 
370 /* Data Register, Port A */
371 #define PA7 7
372 #define PA6 6
373 #define PA5 5
374 #define PA4 4
375 #define PA3 3
376 #define PA2 2
377 #define PA1 1
378 #define PA0 0
379 
380 /* Data Direction Register, Port A */
381 #define DDA7 7
382 #define DDA6 6
383 #define DDA5 5
384 #define DDA4 4
385 #define DDA3 3
386 #define DDA2 2
387 #define DDA1 1
388 #define DDA0 0
389 
390 /* Input Pins, Port A */
391 #define PINA7 7
392 #define PINA6 6
393 #define PINA5 5
394 #define PINA4 4
395 #define PINA3 3
396 #define PINA2 2
397 #define PINA1 1
398 #define PINA0 0
399 
400 /* Data Register, Port B */
401 #define PB7 7
402 #define PB6 6
403 #define PB5 5
404 #define PB4 4
405 #define PB3 3
406 #define PB2 2
407 #define PB1 1
408 #define PB0 0
409 
410 /* Data Direction Register, Port B */
411 #define DDB7 7
412 #define DDB6 6
413 #define DDB5 5
414 #define DDB4 4
415 #define DDB3 3
416 #define DDB2 2
417 #define DDB1 1
418 #define DDB0 0
419 
420 /* Input Pins, Port B */
421 #define PINB7 7
422 #define PINB6 6
423 #define PINB5 5
424 #define PINB4 4
425 #define PINB3 3
426 #define PINB2 2
427 #define PINB1 1
428 #define PINB0 0
429 
430 /* Data Register, Port C */
431 #define PC7 7
432 #define PC6 6
433 #define PC5 5
434 #define PC4 4
435 #define PC3 3
436 #define PC2 2
437 #define PC1 1
438 #define PC0 0
439 
440 /* Data Direction Register, Port C */
441 #define DDC7 7
442 #define DDC6 6
443 #define DDC5 5
444 #define DDC4 4
445 #define DDC3 3
446 #define DDC2 2
447 #define DDC1 1
448 #define DDC0 0
449 
450 /* Input Pins, Port C */
451 #define PINC7 7
452 #define PINC6 6
453 #define PINC5 5
454 #define PINC4 4
455 #define PINC3 3
456 #define PINC2 2
457 #define PINC1 1
458 #define PINC0 0
459 
460 /* Data Register, Port D */
461 #define PD7 7
462 #define PD6 6
463 #define PD5 5
464 #define PD4 4
465 #define PD3 3
466 #define PD2 2
467 #define PD1 1
468 #define PD0 0
469 
470 /* Data Direction Register, Port D */
471 #define DDD7 7
472 #define DDD6 6
473 #define DDD5 5
474 #define DDD4 4
475 #define DDD3 3
476 #define DDD2 2
477 #define DDD1 1
478 #define DDD0 0
479 
480 /* Input Pins, Port D */
481 #define PIND7 7
482 #define PIND6 6
483 #define PIND5 5
484 #define PIND4 4
485 #define PIND3 3
486 #define PIND2 2
487 #define PIND1 1
488 #define PIND0 0
489 
490 /* SPI Control Register */
491 #define SPIE 7
492 #define SPE 6
493 #define DORD 5
494 #define MSTR 4
495 #define CPOL 3
496 #define CPHA 2
497 #define SPR1 1
498 #define SPR0 0
499 
500 /* SPI Status Register */
501 #define SPIF 7
502 #define WCOL 6
503 
504 /* UART Status Register */
505 #define RXC 7
506 #define TXC 6
507 #define UDRE 5
508 #define FE 4
509 #define DOR 3
510 
511 /* UART Control Register */
512 #define RXCIE 7
513 #define TXCIE 6
514 #define UDRIE 5
515 #define RXEN 4
516 #define TXEN 3
517 #define CHR9 2
518 #define RXB8 1
519 #define TXB8 0
520 
521 /* Analog Comparator Control and Status Register */
522 #define ACD 7
523 #define ACO 5
524 #define ACI 4
525 #define ACIE 3
526 #define ACIC 2
527 #define ACIS1 1
528 #define ACIS0 0
529 
530 /* ADC MUX */
531 #define MUX2 2
532 #define MUX1 1
533 #define MUX0 0
534 
535 /* ADC Control and Status Register */
536 #define ADEN 7
537 #define ADSC 6
538 #define ADFR 5
539 #define ADIF 4
540 #define ADIE 3
541 #define ADPS2 2
542 #define ADPS1 1
543 #define ADPS0 0
544 
545 /* EEPROM Control Register */
546 #define EERIE 3
547 #define EEMWE 2
548 #define EEWE 1
549 #define EERE 0
550 
551 /* Constants */
552 #define RAMEND 0x15F /*Last On-Chip SRAM location*/
553 #define XRAMEND RAMEND
554 #define E2END 0xFF
555 #define E2PAGESIZE 0
556 #define FLASHEND 0xFFF
557 
558 
559 /* Fuses */
560 #define FUSE_MEMORY_SIZE 1
561 
562 /* Low Fuse Byte */
563 #define FUSE_SPIEN ~_BV(1) /* Serial Program Downloading Enabled */
564 #define FUSE_FSTRT ~_BV(2) /* Short Start-up time selected */
565 #define LFUSE_DEFAULT (0xFF)
566 
567 
568 /* Lock Bits */
569 #define __LOCK_BITS_EXIST
570 
571 
572 /* Signature */
573 #define SIGNATURE_0 0x1E
574 #define SIGNATURE_1 0x93
575 #define SIGNATURE_2 0x03
576 
578 #endif /* _AVR_IO4434_H_ */