Nut/OS  4.10.3
API Reference
at91sam7se.h
Go to the documentation of this file.
00001 #ifndef _ARCH_ARM_SAM7SE_H_
00002 #define _ARCH_ARM_SAM7SE_H_
00003 /*
00004  * Copyright (C) 2006-2008 by egnite Software GmbH. All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  *
00010  * 1. Redistributions of source code must retain the above copyright
00011  *    notice, this list of conditions and the following disclaimer.
00012  * 2. Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  * 3. Neither the name of the copyright holders nor the names of
00016  *    contributors may be used to endorse or promote products derived
00017  *    from this software without specific prior written permission.
00018  *
00019  * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS
00020  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00021  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00022  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE
00023  * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00024  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00025  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
00026  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
00027  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00028  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
00029  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00030  * SUCH DAMAGE.
00031  *
00032  * For additional information see http://www.ethernut.de/
00033  */
00034 
00044 #define FLASH_BASE      0x100000UL
00045 #define RAM_BASE        0x200000UL
00046 
00047 #define TC_BASE         0xFFFA0000      
00048 #define UDP_BASE        0xFFFB0000      
00049 #define TWI_BASE        0xFFFB8000      
00050 #define USART0_BASE     0xFFFC0000      
00051 #define USART1_BASE     0xFFFC4000      
00052 #define PWMC_BASE       0xFFFCC000      
00053 #define SSC_BASE        0xFFFD4000      
00054 #define ADC_BASE        0xFFFD8000      
00055 #define SPI0_BASE       0xFFFE0000      
00057 #define AIC_BASE        0xFFFFF000      
00058 #define DBGU_BASE       0xFFFFF200      
00059 #define PIOA_BASE       0xFFFFF400      
00060 #define PIOB_BASE       0xFFFFF600      
00061 #define PIOC_BASE       0xFFFFF800      
00062 #define PMC_BASE        0xFFFFFC00      
00063 #define RSTC_BASE       0xFFFFFD00      
00064 #define RTT_BASE        0xFFFFFD20      
00065 #define PIT_BASE        0xFFFFFD30      
00066 #define WDT_BASE        0xFFFFFD40      
00067 #define VREG_BASE       0xFFFFFD60      
00068 #define MC_BASE         0xFFFFFF00      
00069 #define EFC0_BASE       0xFFFFFF60      
00070 #define EFC1_BASE       0xFFFFFF70      
00071 #define EBI_BASE        0xFFFFFF80      
00072 #define SMC_BASE        0xFFFFFF90      
00073 #define SDRAMC_BASE     0xFFFFFFB0      
00074 #define ECC_BASE        0xFFFFFFDC      
00076 #define PERIPH_RPR_OFF  0x00000100      
00077 #define PERIPH_RCR_OFF  0x00000104      
00078 #define PERIPH_TPR_OFF  0x00000108      
00079 #define PERIPH_TCR_OFF  0x0000010C      
00080 #define PERIPH_RNPR_OFF 0x00000110      
00081 #define PERIPH_RNCR_OFF 0x00000114      
00082 #define PERIPH_TNPR_OFF 0x00000118      
00083 #define PERIPH_TNCR_OFF 0x0000011C      
00084 #define PERIPH_PTCR_OFF 0x00000120      
00085 #define PERIPH_PTSR_OFF 0x00000124      
00087 #define PDC_RXTEN       0x00000001      
00088 #define PDC_RXTDIS      0x00000002      
00089 #define PDC_TXTEN       0x00000100      
00090 #define PDC_TXTDIS      0x00000200      
00092 #define EBI_HAS_CSA
00093 #define SMC_HAS_CSR
00094 
00095 #define DBGU_HAS_PDC
00096 #define SPI_HAS_PDC
00097 #define SSC_HAS_PDC
00098 #define USART_HAS_PDC
00099 #define USART_HAS_MODE
00100 
00101 #define PIO_HAS_MULTIDRIVER
00102 #define PIO_HAS_PULLUP
00103 #define PIO_HAS_PERIPHERALSELECT
00104 #define PIO_HAS_OUTPUTWRITEENABLE
00105 
00106 #include <arch/arm/atmel/at91_tc.h>
00107 #include <arch/arm/atmel/at91_us.h>
00108 #include <arch/arm/atmel/at91_dbgu.h>
00109 #include <arch/arm/atmel/at91_spi.h>
00110 #include <arch/arm/atmel/at91_aic.h>
00111 #include <arch/arm/atmel/at91_pio.h>
00112 #include <arch/arm/atmel/at91_pmc.h>
00113 #include <arch/arm/atmel/at91_rstc.h>
00114 #include <arch/arm/atmel/at91_wdt.h>
00115 #include <arch/arm/atmel/at91_pit.h>
00116 #include <arch/arm/atmel/at91_mc.h>
00117 #include <arch/arm/atmel/at91_ebi.h>
00118 #include <arch/arm/atmel/at91_smc.h>
00119 #include <arch/arm/atmel/at91_sdramc.h>
00120 #include <arch/arm/atmel/at91_ssc.h>
00121 #include <arch/arm/atmel/at91_twi.h>
00122 #include <arch/arm/atmel/at91_udp.h>
00123 #include <arch/arm/atmel/at91_adc.h>
00124 #include <arch/arm/atmel/at91_pwmc.h>
00125 
00128 
00131 #define FIQ_ID      0       
00132 #define SYSC_ID     1       
00133 #define PIOA_ID     2       
00134 #define PIOB_ID     3       
00135 #define PIOC_ID     4       
00136 #define SPI0_ID     5       
00137 #define US0_ID      6       
00138 #define US1_ID      7       
00139 #define SSC_ID      8       
00140 #define TWI_ID      9       
00141 #define PWMC_ID     10      
00142 #define UDP_ID      11      
00143 #define TC0_ID      12      
00144 #define TC1_ID      13      
00145 #define TC2_ID      14      
00146 #define ADC_ID      15      
00147 /* Reserved      16-28*/
00148 #define IRQ0_ID     29      
00149 #define IRQ1_ID     30      
00151 
00152 
00154 #define SPI0_NPCS0_PA11A        11      
00155 #define SPI0_NPCS1_PA09B        9       
00156 #define SPI0_NPCS1_PA31A        31      
00157 #define SPI0_NPCS2_PA10B        10      
00158 #define SPI0_NPCS2_PA30B        30      
00159 #define SPI0_NPCS3_PA03B        3       
00160 #define SPI0_NPCS3_PA05B        5       
00161 #define SPI0_NPCS3_PA22B        22      
00162 #define SPI0_MISO_PA12A    12 
00163 #define SPI0_MOSI_PA13A    13 
00164 #define SPI0_SPCK_PA14A    14 
00166 
00167 
00169 #define PA5_RXD0_A          5
00170 #define PA6_TXD0_A          6
00171 #define PB2_SCK0_A          2
00172 #define PA7_RTS0_A          7
00173 #define PA8_CTS0_A          8
00174 
00175 #define PA21_RXD1_A         21
00176 #define PA22_TXD1_A         22
00177 #define PA23_SCK1_A         23
00178 #define PA24_RTS1_A         24
00179 #define PC8_RTS1_B          8
00180 #define PA25_CTS1_A         25
00181 #define PA26_DCD1_A         26
00182 #define PA27_DTR1_A         27
00183 #define PC9_DTR1_B          9
00184 #define PA28_DSR1_A         28
00185 #define PA29_RI1_A          29
00186 
00190 #define PA12_SPI0_MISO_A    12
00191 #define PA13_SPI0_MOSI_A    13
00192 #define PA14_SPI0_SPCK_A    14
00193 #define PA11_SPI0_NPCS0_A   11
00194 #define PA31_SPI0_NPCS1_A   31
00195 #define PB9_SPI0_NPCS1_A    9
00196 #define PB10_SPI0_NPCS2_A   10
00197 #define PC14_SPI0_NPCS1_B   14
00198 #define PB30_SPI0_NPCS2_A   30
00199 #define PB3_SPI0_NPCS3_A    3
00200 #define PB5_SPI0_NPCS3_A    5
00201 #define PB22_SPI0_NPCS3_A   22
00202 
00203 #define SPI0_PINS           _BV(PA12_SPI0_MISO_A) | _BV(PA13_SPI0_MOSI_A) | _BV(PA14_SPI0_SPCK_A)
00204 #define SPI0_PIO_BASE       PIOA_BASE
00205 #define SPI0_PSR_OFF        PIO_ASR_OFF
00206 
00207 #define SPI0_CS0_PIN        _BV(PA11_SPI0_NPCS0_A)
00208 #define SPI0_CS0_PIO_BASE   PIOA_BASE
00209 #define SPI0_CS0_PSR_OFF    PIO_ASR_OFF
00210 
00211 #ifndef SPI0_CS1_PIN
00212 #define SPI0_CS1_PIN        _BV(PA31_SPI0_NPCS1_A)
00213 #define SPI0_CS1_PIO_BASE   PIOA_BASE
00214 #define SPI0_CS1_PSR_OFF    PIO_ASR_OFF
00215 #endif
00216 
00221 #define PA0_A0_B            0
00222 #define PB0_A0_B            0
00223 #define PA1_A1_B            1
00224 #define PB1_A1_B            1
00225 #define PA2_A2_B            2
00226 #define PB2_A2_B            2
00227 #define PA3_A3_B            3
00228 #define PB3_A3_B            3
00229 #define PA4_A4_B            4
00230 #define PB4_A4_B            4
00231 #define PA5_A5_B            5
00232 #define PB5_A5_B            5
00233 #define PA6_A6_B            6
00234 #define PB6_A6_B            6
00235 #define PA7_A7_B            7
00236 #define PB7_A7_B            7
00237 #define PA8_A8_B            8
00238 #define PB8_A8_B            8
00239 #define PA9_A9_B            9
00240 #define PB9_A9_B            9
00241 #define PA10_A10_B          10
00242 #define PB10_A10_B          10
00243 #define PA11_A11_B          11
00244 #define PB11_A11_B          11
00245 #define PA12_A12_B          12
00246 #define PB12_A12_B          12
00247 #define PA13_A13_B          13
00248 #define PB13_A13_B          13
00249 #define PA14_A14_B          14
00250 #define PB14_A14_B          14
00251 #define PA15_A15_B          15
00252 #define PB15_A15_B          15
00253 #define PA16_A16_B          16
00254 #define PB16_A16_B          16
00255 #define PA17_A17_B          17
00256 #define PB17_A17_B          17
00257 #define PC16_A18_A          16
00258 #define PC17_A19_A          17
00259 #define PC18_A20_A          18
00260 #define PC19_A21_A          19
00261 #define PC20_A22_A          20
00262 
00263 #define PC0_D0_A            0
00264 #define PC1_D1_A            1
00265 #define PC2_D2_A            2
00266 #define PC3_D3_A            3
00267 #define PC4_D4_A            4
00268 #define PC5_D5_A            5
00269 #define PC6_D6_A            6
00270 #define PC7_D7_A            7
00271 #define PC8_D8_A            8
00272 #define PC9_D9_A            9
00273 #define PC10_D10_A          10
00274 #define PC11_D11_A          11
00275 #define PC12_D12_A          12
00276 #define PC13_D13_A          13
00277 #define PC14_D14_A          14
00278 #define PC15_D15_A          15
00279 #define PB18_D16_B          18
00280 #define PB19_D17_B          19
00281 #define PB20_D18_B          20
00282 #define PB21_D19_B          21
00283 #define PB22_D20_B          22
00284 #define PB23_D21_B          23
00285 #define PB24_D22_B          24
00286 #define PB25_D23_B          25
00287 #define PB26_D24_B          26
00288 #define PB27_D25_B          27
00289 #define PB28_D26_B          28
00290 #define PB29_D27_B          29
00291 #define PB30_D28_B          30
00292 #define PB31_D29_B          31
00293 #define PA30_D30_B          30
00294 #define PA31_D31_B          31
00295 
00296 #define PA19_NCS4_B         19
00297 #define PA20_NCS2_B         20
00298 #define PA21_NCS6_B         21
00299 #define PA22_NCS5_B         22
00300 #define PA26_NCS1_B         26
00301 #define PC15_NCS3_B         15
00302 #define PC20_NCS7_B         20
00303 #define PC23_NCS0_B         23
00304 
00305 #define PA18_NBS3_B         18
00306 #define PA23_NWR1_B         23
00307 #define PA24_SDA10_B        24
00308 #define PA25_SDCKE_B        25
00309 #define PA27_SDWE_B         27
00310 #define PA28_CAS_B          28
00311 #define PA29_RAS_B          29
00312 #define PC16_NWAIT_B        16
00313 #define PC17_NANDOE_B       17
00314 #define PC18_NANDWE_B       18
00315 #define PC21_NWR0_B         21
00316 #define PC22_NRD_B          22
00317 #define PC23_CFRNW_A        23
00318 
00322 #define PA9_DRXD_A          9
00323 #define PA10_DTXD_A         10
00324 
00328 #define PA17_TD_A           17  
00329 #define PA18_RD_A           18  
00330 #define PA16_TK_A           16  
00331 #define PA19_RK_A           19  
00332 #define PA15_TF_A           15  
00333 #define PA20_RF_A           20  
00335 
00336 
00338 #define PA3_TWD_A          3  
00339 #define PA4_TWCK_A         4  
00341 
00342 
00344 #define PB0_TIOA0_A         0
00345 #define PB1_TIOB0_A         1
00346 #define PB4_TCLK0_A         4
00347 #define PB15_TIOA1_A        15
00348 #define PB16_TIOB1_A        16
00349 #define PB28_TCLK1_A        28
00350 #define PB26_TIOA2_A        26
00351 #define PB27_TIOB2_A        27
00352 #define PB29_TCLK2_A        29
00353 
00357 #define PB6_PCK0_A          6
00358 #define PC10_PCK0_B         10
00359 #define PB17_PCK1_A         17
00360 #define PB21_PCK1_A         21
00361 #define PC11_PCK1_B         11
00362 #define PB18_PCK2_A         18
00363 #define PB31_PCK2_A         31
00364 #define PC12_PCK2_B         12
00365 
00369 #define PB19_FIQ_A          19
00370 #define PB20_IRQ0_A         20
00371 #define PA30_IRQ1_A         30
00372 
00376 #define PB8_ADTRG_A        8  
00378 
00379 
00381 #define PA0_PWM0_A          0
00382 #define PB11_PWM0_A         11
00383 #define PB23_PWM0_A         23
00384 #define PA1_PWM1_A          1
00385 #define PB12_PWM1_A         12
00386 #define PB24_PWM1_A         24
00387 #define PA2_PWM2_A          2
00388 #define PB13_PWM2_A         13
00389 #define PB25_PWM2_A         25
00390 #define PB7_PWM3_A          7
00391 #define PB14_PWM3_A         14
00392 
00394 
00396 #endif /* _ARCH_ARM_AT91SAM7SE_H_ */