RTEMS CPU Kit with SuperCore  4.11.3
io4433.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_IO4433_H_
42 #define _AVR_IO4433_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_ "io4433.h"
57 #else
58 # error "Attempt to include more than one <avr/ioXXX.h> file."
59 #endif
60 
61 /* I/O registers */
62 
63 /* UART Baud Rate Register high */
64 #define UBRRH _SFR_IO8(0x03)
65 
66 /* ADC Data register */
67 #ifndef __ASSEMBLER__
68 #define ADC _SFR_IO16(0x04)
69 #endif
70 #define ADCW _SFR_IO16(0x04)
71 #define ADCL _SFR_IO8(0x04)
72 #define ADCH _SFR_IO8(0x05)
73 
74 /* ADC Control and Status Register */
75 #define ADCSR _SFR_IO8(0x06)
76 
77 /* ADC MUX */
78 #define ADMUX _SFR_IO8(0x07)
79 
80 /* Analog Comparator Control and Status Register */
81 #define ACSR _SFR_IO8(0x08)
82 
83 /* UART Baud Rate Register */
84 #define UBRR _SFR_IO8(0x09)
85 
86 /* UART Control/Status Registers */
87 #define UCSRB _SFR_IO8(0x0A)
88 #define UCSRA _SFR_IO8(0x0B)
89 
90 /* UART I/O Data Register */
91 #define UDR _SFR_IO8(0x0C)
92 
93 /* SPI Control Register */
94 #define SPCR _SFR_IO8(0x0D)
95 
96 /* SPI Status Register */
97 #define SPSR _SFR_IO8(0x0E)
98 
99 /* SPI I/O Data Register */
100 #define SPDR _SFR_IO8(0x0F)
101 
102 /* Input Pins, Port D */
103 #define PIND _SFR_IO8(0x10)
104 
105 /* Data Direction Register, Port D */
106 #define DDRD _SFR_IO8(0x11)
107 
108 /* Data Register, Port D */
109 #define PORTD _SFR_IO8(0x12)
110 
111 /* Input Pins, Port C */
112 #define PINC _SFR_IO8(0x13)
113 
114 /* Data Direction Register, Port C */
115 #define DDRC _SFR_IO8(0x14)
116 
117 /* Data Register, Port C */
118 #define PORTC _SFR_IO8(0x15)
119 
120 /* Input Pins, Port B */
121 #define PINB _SFR_IO8(0x16)
122 
123 /* Data Direction Register, Port B */
124 #define DDRB _SFR_IO8(0x17)
125 
126 /* Data Register, Port B */
127 #define PORTB _SFR_IO8(0x18)
128 
129 /* EEPROM Control Register */
130 #define EECR _SFR_IO8(0x1C)
131 
132 /* EEPROM Data Register */
133 #define EEDR _SFR_IO8(0x1D)
134 
135 /* EEPROM Address Register */
136 #define EEAR _SFR_IO8(0x1E)
137 #define EEARL _SFR_IO8(0x1E)
138 
139 /* Watchdog Timer Control Register */
140 #define WDTCR _SFR_IO8(0x21)
141 
142 /* T/C 1 Input Capture Register */
143 #define ICR1 _SFR_IO16(0x26)
144 #define ICR1L _SFR_IO8(0x26)
145 #define ICR1H _SFR_IO8(0x27)
146 
147 /* Timer/Counter1 Output Compare Register A */
148 #define OCR1 _SFR_IO16(0x2A)
149 #define OCR1L _SFR_IO8(0x2A)
150 #define OCR1H _SFR_IO8(0x2B)
151 
152 /* Timer/Counter 1 */
153 #define TCNT1 _SFR_IO16(0x2C)
154 #define TCNT1L _SFR_IO8(0x2C)
155 #define TCNT1H _SFR_IO8(0x2D)
156 
157 /* Timer/Counter 1 Control and Status Register */
158 #define TCCR1B _SFR_IO8(0x2E)
159 
160 /* Timer/Counter 1 Control Register */
161 #define TCCR1A _SFR_IO8(0x2F)
162 
163 /* Timer/Counter 0 */
164 #define TCNT0 _SFR_IO8(0x32)
165 
166 /* Timer/Counter 0 Control Register */
167 #define TCCR0 _SFR_IO8(0x33)
168 
169 /* MCU general Status Register */
170 #define MCUSR _SFR_IO8(0x34)
171 
172 /* MCU general Control Register */
173 #define MCUCR _SFR_IO8(0x35)
174 
175 /* Timer/Counter Interrupt Flag register */
176 #define TIFR _SFR_IO8(0x38)
177 
178 /* Timer/Counter Interrupt MaSK register */
179 #define TIMSK _SFR_IO8(0x39)
180 
181 /* General Interrupt Flag Register */
182 #define GIFR _SFR_IO8(0x3A)
183 
184 /* General Interrupt MaSK register */
185 #define GIMSK _SFR_IO8(0x3B)
186 
187 /* 0x3D..0x3E SP */
188 
189 /* 0x3F SREG */
190 
191 /* Interrupt vectors */
192 
193 /* External Interrupt 0 */
194 #define INT0_vect _VECTOR(1)
195 #define SIG_INTERRUPT0 _VECTOR(1)
196 
197 /* External Interrupt 1 */
198 #define INT1_vect _VECTOR(2)
199 #define SIG_INTERRUPT1 _VECTOR(2)
200 
201 /* Timer/Counter Capture Event */
202 #define TIMER1_CAPT_vect _VECTOR(3)
203 #define SIG_INPUT_CAPTURE1 _VECTOR(3)
204 
205 /* Timer/Counter1 Compare Match */
206 #define TIMER1_COMP_vect _VECTOR(4)
207 #define SIG_OUTPUT_COMPARE1A _VECTOR(4)
208 
209 /* Timer/Counter1 Overflow */
210 #define TIMER1_OVF_vect _VECTOR(5)
211 #define SIG_OVERFLOW1 _VECTOR(5)
212 
213 /* Timer/Counter0 Overflow */
214 #define TIMER0_OVF_vect _VECTOR(6)
215 #define SIG_OVERFLOW0 _VECTOR(6)
216 
217 /* Serial Transfer Complete */
218 #define SPI_STC_vect _VECTOR(7)
219 #define SIG_SPI _VECTOR(7)
220 
221 /* UART, Rx Complete */
222 #define UART_RX_vect _VECTOR(8)
223 #define SIG_UART_RECV _VECTOR(8)
224 
225 /* UART Data Register Empty */
226 #define UART_UDRE_vect _VECTOR(9)
227 #define SIG_UART_DATA _VECTOR(9)
228 
229 /* UART, Tx Complete */
230 #define UART_TX_vect _VECTOR(10)
231 #define SIG_UART_TRANS _VECTOR(10)
232 
233 /* ADC Conversion Complete */
234 #define ADC_vect _VECTOR(11)
235 #define SIG_ADC _VECTOR(11)
236 
237 /* EEPROM Ready */
238 #define EE_RDY_vect _VECTOR(12)
239 #define SIG_EEPROM_READY _VECTOR(12)
240 
241 /* Analog Comparator */
242 #define ANA_COMP_vect _VECTOR(13)
243 #define SIG_COMPARATOR _VECTOR(13)
244 
245 #define _VECTORS_SIZE 28
246 
247 /*
248  The Register Bit names are represented by their bit number (0-7).
249 */
250 
251 /* MCU general Status Register */
252 #define WDRF 3
253 #define BORF 2
254 #define EXTRF 1
255 #define PORF 0
256 
257 /* General Interrupt MaSK register */
258 #define INT1 7
259 #define INT0 6
260 
261 /* General Interrupt Flag Register */
262 #define INTF1 7
263 #define INTF0 6
264 
265 /* Timer/Counter Interrupt MaSK register */
266 #define TOIE1 7
267 #define OCIE1 6
268 #define TICIE1 3
269 #define TOIE0 1
270 
271 /* Timer/Counter Interrupt Flag register */
272 #define TOV1 7
273 #define OCF1 6
274 #define ICF1 3
275 #define TOV0 1
276 
277 /* MCU general Control Register */
278 #define SE 5
279 #define SM 4
280 #define ISC11 3
281 #define ISC10 2
282 #define ISC01 1
283 #define ISC00 0
284 
285 /* Timer/Counter 0 Control Register */
286 #define CS02 2
287 #define CS01 1
288 #define CS00 0
289 
290 /* Timer/Counter 1 Control Register */
291 #define COM11 7
292 #define COM10 6
293 #define PWM11 1
294 #define PWM10 0
295 
296 /* Timer/Counter 1 Control and Status Register */
297 #define ICNC1 7
298 #define ICES1 6
299 #define CTC1 3
300 #define CS12 2
301 #define CS11 1
302 #define CS10 0
303 
304 /* Watchdog Timer Control Register */
305 #define WDTOE 4
306 #define WDE 3
307 #define WDP2 2
308 #define WDP1 1
309 #define WDP0 0
310 
311 /* SPI Control Register */
312 #define SPIE 7
313 #define SPE 6
314 #define DORD 5
315 #define MSTR 4
316 #define CPOL 3
317 #define CPHA 2
318 #define SPR1 1
319 #define SPR0 0
320 
321 /* SPI Status Register */
322 #define SPIF 7
323 #define WCOL 6
324 
325 /* UART Status Register */
326 #define RXC 7
327 #define TXC 6
328 #define UDRE 5
329 #define FE 4
330 #define DOR 3
331 #define MPCM 0
332 
333 /* UART Control Register */
334 #define RXCIE 7
335 #define TXCIE 6
336 #define UDRIE 5
337 #define RXEN 4
338 #define TXEN 3
339 #define CHR9 2
340 #define RXB8 1
341 #define TXB8 0
342 
343 /* Analog Comparator Control and Status Register */
344 #define ACD 7
345 #define AINBG 6
346 #define ACO 5
347 #define ACI 4
348 #define ACIE 3
349 #define ACIC 2
350 #define ACIS1 1
351 #define ACIS0 0
352 
353 /* ADC MUX */
354 #define ACDBG 6
355 #define MUX2 2
356 #define MUX1 1
357 #define MUX0 0
358 
359 /* ADC Control and Status Register */
360 #define ADEN 7
361 #define ADSC 6
362 #define ADFR 5
363 #define ADIF 4
364 #define ADIE 3
365 #define ADPS2 2
366 #define ADPS1 1
367 #define ADPS0 0
368 
369 /* Data Register, Port B */
370 #define PB5 5
371 #define PB4 4
372 #define PB3 3
373 #define PB2 2
374 #define PB1 1
375 #define PB0 0
376 
377 /* Data Direction Register, Port B */
378 #define DDB5 5
379 #define DDB4 4
380 #define DDB3 3
381 #define DDB2 2
382 #define DDB1 1
383 #define DDB0 0
384 
385 /* Input Pins, Port B */
386 #define PINB5 5
387 #define PINB4 4
388 #define PINB3 3
389 #define PINB2 2
390 #define PINB1 1
391 #define PINB0 0
392 
393 /* Data Register, Port C */
394 #define PC5 5
395 #define PC4 4
396 #define PC3 3
397 #define PC2 2
398 #define PC1 1
399 #define PC0 0
400 
401 /* Data Direction Register, Port C */
402 #define DDC5 5
403 #define DDC4 4
404 #define DDC3 3
405 #define DDC2 2
406 #define DDC1 1
407 #define DDC0 0
408 
409 /* Input Pins, Port C */
410 #define PINC5 5
411 #define PINC4 4
412 #define PINC3 3
413 #define PINC2 2
414 #define PINC1 1
415 #define PINC0 0
416 
417 /* Data Register, Port D */
418 #define PD7 7
419 #define PD6 6
420 #define PD5 5
421 #define PD4 4
422 #define PD3 3
423 #define PD2 2
424 #define PD1 1
425 #define PD0 0
426 
427 /* Data Direction Register, Port D */
428 #define DDD7 7
429 #define DDD6 6
430 #define DDD5 5
431 #define DDD4 4
432 #define DDD3 3
433 #define DDD2 2
434 #define DDD1 1
435 #define DDD0 0
436 
437 /* Input Pins, Port D */
438 #define PIND7 7
439 #define PIND6 6
440 #define PIND5 5
441 #define PIND4 4
442 #define PIND3 3
443 #define PIND2 2
444 #define PIND1 1
445 #define PIND0 0
446 
447 /* EEPROM Control Register */
448 #define EERIE 3
449 #define EEMWE 2
450 #define EEWE 1
451 #define EERE 0
452 
453 /* Constants */
454 #define RAMEND 0xDF /*Last On-Chip SRAM location*/
455 #define XRAMEND RAMEND
456 #define E2END 0xFF
457 #define E2PAGESIZE 0
458 #define FLASHEND 0xFFF
459 
460 
461 /* Fuses */
462 #define FUSE_MEMORY_SIZE 1
463 
464 /* Low Fuse Byte */
465 #define FUSE_CKSEL0 (unsigned char)~_BV(0)
466 #define FUSE_CKSEL1 (unsigned char)~_BV(1)
467 #define FUSE_CKSEL2 (unsigned char)~_BV(2)
468 #define FUSE_BODEN (unsigned char)~_BV(3)
469 #define FUSE_BODLEVEL (unsigned char)~_BV(4)
470 #define FUSE_SPIEN (unsigned char)~_BV(5)
471 #define LFUSE_DEFAULT (0xFF)
472 
473 
474 /* Lock Bits */
475 #define __LOCK_BITS_EXIST
476 
477 
478 /* Signature */
479 #define SIGNATURE_0 0x1E
480 #define SIGNATURE_1 0x92
481 #define SIGNATURE_2 0x03
482 
484 #endif /* _AVR_IO4433_H_ */