OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [CORTEX_AT91SAM3U256_IAR/] [system/] [board.h] - Blame information for rev 592

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 580 jeremybenn
/* ----------------------------------------------------------------------------
2
 *         ATMEL Microcontroller Software Support
3
 * ----------------------------------------------------------------------------
4
 * Copyright (c) 2008, Atmel Corporation
5
 *
6
 * All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions are met:
10
 *
11
 * - Redistributions of source code must retain the above copyright notice,
12
 * this list of conditions and the disclaimer below.
13
 *
14
 * Atmel's name may not be used to endorse or promote products derived from
15
 * this software without specific prior written permission.
16
 *
17
 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20
 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 * ----------------------------------------------------------------------------
28
 */
29
 
30
//------------------------------------------------------------------------------
31
/// \dir
32
/// !Purpose
33
///
34
/// Definition and functions for using AT91SAM3UE-related features, such
35
/// has PIO pins, memories, etc.
36
///
37
/// !Usage
38
/// -# The code for booting the board is provided by board_cstartup.S and
39
///    board_lowlevel.c.
40
/// -# For using board PIOs, board characteristics (clock, etc.) and external
41
///    components, see board.h.
42
/// -# For manipulating memories (remapping, SDRAM, etc.), see board_memories.h.
43
//------------------------------------------------------------------------------
44
 
45
//------------------------------------------------------------------------------
46
/// \unit
47
/// !Purpose
48
///
49
/// Definition of AT91SAM3UE-EK characteristics, AT91SAM3UE-dependant PIOs and
50
/// external components interfacing.
51
///
52
/// !Usage
53
/// -# For operating frequency information, see "SAM3UE-EK - Operating frequencies".
54
/// -# For using portable PIO definitions, see "SAM3UE-EK - PIO definitions".
55
/// -# Several USB definitions are included here (see "SAM3UE-EK - USB device").
56
//------------------------------------------------------------------------------
57
 
58
#ifndef BOARD_H
59
#define BOARD_H
60
 
61
//------------------------------------------------------------------------------
62
//         Headers
63
//------------------------------------------------------------------------------
64
 
65
#if defined(at91sam3u4)
66
    #include "at91sam3u4/chip.h"
67
    #include "at91sam3u4/AT91SAM3U4.h"
68
#else
69
    #error Board does not support the specified chip.
70
#endif
71
 
72
//------------------------------------------------------------------------------
73
//         Definitions
74
//------------------------------------------------------------------------------
75
 
76
//------------------------------------------------------------------------------
77
/// \page "SAM3UE-EK - Board Description"
78
/// This page lists several definition related to the board description.
79
///
80
/// !Definitions
81
/// - BOARD_NAME
82
 
83
/// Name of the board.
84
#define BOARD_NAME "AT91SAM3U-EK"
85
/// Board definition.
86
#define at91sam3uek
87
/// Family definition (already defined).
88
#define at91sam3u
89
/// Core definition
90
#define cortexm3
91
// Chip type
92
//#define fpgasimulation
93
//------------------------------------------------------------------------------
94
 
95
#if defined(fpgasimulation)
96
#define PMC_BY_HARD
97
#endif
98
 
99
//------------------------------------------------------------------------------
100
/// \page "SAM3UE-EK - Operating frequencies"
101
/// This page lists several definition related to the board operating frequency
102
/// (when using the initialization done by board_lowlevel.c).
103
///
104
/// !Definitions
105
/// - BOARD_MAINOSC
106
/// - BOARD_MCK
107
 
108
/// Frequency of the board main oscillator.
109
#define BOARD_MAINOSC           12000000
110
 
111
/// Master clock frequency (when using board_lowlevel.c).
112
#if !defined(fpgasimulation)
113
#define BOARD_MCK               48000000
114
#else
115
#define BOARD_MCK               22579200
116
#endif
117
 
118
#if defined (fpgasimulation)
119
//#define BOARD_ConfigureSdram(...) { }
120
#endif // fpgasimulation
121
 
122
//------------------------------------------------------------------------------
123
// ADC
124
//------------------------------------------------------------------------------
125
/// ADC clock frequency, at 10-bit resolution (in Hz)
126
#define ADC_MAX_CK_10BIT         5000000
127
/// Startup time max, return from Idle mode (in µs)
128
#define ADC_STARTUP_TIME_MAX       15
129
/// Track and hold Acquisition Time min (in ns)
130
#define ADC_TRACK_HOLD_TIME_MIN  1200
131
 
132
//------------------------------------------------------------------------------
133
 
134
//------------------------------------------------------------------------------
135
/// \page "SAM3UE-EK - USB device"
136
/// This page lists constants describing several characteristics (controller
137
/// type, D+ pull-up type, etc.) of the USB device controller of the chip/board.
138
///
139
/// !Constants
140
/// - BOARD_USB_UDP
141
/// - BOARD_USB_PULLUP_EXTERNAL
142
/// - BOARD_USB_NUMENDPOINTS
143
/// - BOARD_USB_ENDPOINTS_MAXPACKETSIZE
144
/// - BOARD_USB_ENDPOINTS_BANKS
145
 
146
/// Chip has a UDP controller.
147
#define BOARD_USB_UDPHS
148
 
149
/// Indicates the D+ pull-up is external.
150
#define BOARD_USB_PULLUP_INTERNAL
151
 
152
/// Number of endpoints in the USB controller.
153
#define BOARD_USB_NUMENDPOINTS              7
154
 
155
/// Returns the maximum packet size of the given endpoint.
156
#define BOARD_USB_ENDPOINTS_MAXPACKETSIZE(i) (((i == 0)||(i == 3)||(i == 4)) ? 64 :\
157
                                             (((i == 1) || (i == 2)) ? 512 : 1024))
158
 
159
/// Returns the number of FIFO banks for the given endpoint.
160
#define BOARD_USB_ENDPOINTS_BANKS(i)        ((i == 0) ? 1 : ((i == 1) || (i == 2)) ? 2 : 3)
161
 
162
/// USB attributes configuration descriptor (bus or self powered, remote wakeup)
163
#define BOARD_USB_BMATTRIBUTES              USBConfigurationDescriptor_SELFPOWERED_RWAKEUP
164
//#define BOARD_USB_BMATTRIBUTES            USBConfigurationDescriptor_SELFPOWERED_NORWAKEUP
165
//------------------------------------------------------------------------------
166
 
167
//------------------------------------------------------------------------------
168
/// \page "SAM3UE-EK - PIO definitions"
169
/// This pages lists all the pio definitions contained in board.h. The constants
170
/// are named using the following convention: PIN_* for a constant which defines
171
/// a single Pin instance (but may include several PIOs sharing the same
172
/// controller), and PINS_* for a list of Pin instances.
173
///
174
/// !ADC
175
/// - PIN_ADC0_AD0
176
/// - PIN_ADC0_AD1
177
/// - PIN_ADC0_AD2
178
/// - PIN_ADC0_AD3
179
/// - PIN_ADC0_AD4
180
/// - PIN_ADC0_AD5
181
/// - PIN_ADC0_AD6
182
/// - PIN_ADC0_AD7
183
/// - PINS_ADC0
184
///
185
/// !CAN
186
/// - PIN_CAN_TRANSCEIVER_RS
187
/// - PIN_CAN1_TRANSCEIVER_TXD
188
/// - PIN_CAN1_TRANSCEIVER_RXD
189
/// - PIN_CAN2_TRANSCEIVER_TXD
190
/// - PIN_CAN2_TRANSCEIVER_RXD
191
/// - PINS_CAN_TRANSCEIVER_TXD
192
/// - PINS_CAN_TRANSCEIVER_RXD
193
///
194
/// !DBGU
195
/// - PINS_DBGU
196
///
197
/// !Joystick buttons
198
/// - PIN_JOYSTICK_UP
199
/// - PIN_JOYSTICK_DOWN
200
/// - PIN_JOYSTICK_LEFT
201
/// - PIN_JOYSTICK_RIGHT
202
/// - PIN_JOYSTICK_LCLIC, PIN_JOYSTICK_PUSH
203
/// - PINS_JOYSTICK_MOVE, PINS_JOYSTICK_CLIC, PINS_JOYSTICK
204
/// - JOYSTICK_UP
205
/// - JOYSTICK_DOWN
206
/// - JOYSTICK_LEFT
207
/// - JOYSTICK_RIGHT
208
/// - JOYSTICK_LCLIC, JOYSTICK_PUSH
209
///
210
/// !EBI
211
/// - PIN_EBI_DATA_BUS
212
/// - PIN_EBI_NCS0
213
/// - PIN_EBI_NRD
214
/// - PIN_EBI_NWE
215
/// - PIN_EBI_ADDR_BUS
216
/// - PIN_EBI_PSRAM_NBS
217
/// - PIN_EBI_A1
218
/// - PIN_EBI_LCD_RS
219
///
220
/// !LEDs
221
/// - PIN_LED_DS1
222
/// - PIN_LED_DS2
223
/// - PIN_LED_DS3
224
/// - PIN_LED_DS4
225
/// - PINS_LEDS
226
/// - LED_DS1
227
/// - LED_DS2
228
/// - LED_DS3
229
/// - LED_DS4
230
///
231
/// !MCI
232
/// - PINS_MCI
233
///
234
/// !Push buttons
235
/// - PIN_PUSHBUTTON_1
236
/// - PIN_PUSHBUTTON_2
237
/// - PIN_PUSHBUTTON_3
238
/// - PIN_PUSHBUTTON_4
239
/// - PINS_PUSHBUTTONS
240
/// - PUSHBUTTON_BP1
241
/// - PUSHBUTTON_BP2
242
/// - PUSHBUTTON_BP3
243
/// - PUSHBUTTON_BP4
244
///
245
/// !PWMC
246
/// - PIN_PWMC_PWM0
247
/// - PIN_PWMC_PWM1
248
/// - PIN_PWMC_PWM2
249
/// - PIN_PWMC_PWM3
250
/// - PIN_PWMC_PWM4
251
/// - PIN_PWMC_PWM5
252
/// - PIN_PWMC_PWM6
253
/// - PIN_PWMC_PWM7
254
/// - PIN_PWM_LED0
255
/// - PIN_PWM_LED1
256
/// - CHANNEL_PWM_LED0
257
/// - CHANNEL_PWM_LED1
258
///
259
/// !SPI0
260
/// - PIN_SPI0_MISO
261
/// - PIN_SPI0_MOSI
262
/// - PIN_SPI0_SPCK
263
/// - PINS_SPI0
264
/// - PIN_SPI0_NPCS3
265
///
266
/// !SPI1
267
/// - PIN_SPI1_MISO
268
/// - PIN_SPI1_MOSI
269
/// - PIN_SPI1_SPCK
270
/// - PINS_SPI1
271
/// - PIN_SPI1_NPCS3
272
///
273
/// ! SSC
274
/// - PIN_SSC_TD
275
/// - PIN_SSC_TK
276
/// - PIN_SSC_TF
277
/// - PINS_SSC_CODEC
278
///
279
/// ! PCK0
280
/// - PIN_PCK0
281
///
282
/// !TWI
283
/// - PIN_TWI_TWD0
284
/// - PIN_TWI_TWCK0
285
/// - PINS_TWI
286
///
287
/// !USART0
288
/// - PIN_USART0_RXD
289
/// - PIN_USART0_TXD
290
/// - PIN_USART0_CTS
291
/// - PIN_USART0_RTS
292
/// - PIN_USART0_SCK
293
///
294
/// !USB
295
/// - PIN_USB_PULLUP
296
///
297
 
298
/// ADC_AD0 pin definition.
299
#define PIN_ADC0_AD0 {1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
300
/// ADC_AD1 pin definition.
301
#define PIN_ADC0_AD1 {1 << 30, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
302
/// ADC_AD2 pin definition.
303
#define PIN_ADC0_AD2 {1 << 3, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEFAULT}
304
/// ADC_AD3 pin definition.
305
#define PIN_ADC0_AD3 {1 << 4, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEFAULT}
306
/// ADC_AD4 pin definition.
307
#define PIN_ADC0_AD4 {1 << 15, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_INPUT, PIO_DEFAULT}
308
/// ADC_AD5 pin definition.
309
#define PIN_ADC0_AD5 {1 << 16, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_INPUT, PIO_DEFAULT}
310
/// ADC_AD6 pin definition.
311
#define PIN_ADC0_AD6 {1 << 17, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_INPUT, PIO_DEFAULT}
312
/// ADC_AD7 pin definition.
313
#define PIN_ADC0_AD7 {1 << 18, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_INPUT, PIO_DEFAULT}
314
 
315
/// Pins ADC
316
#define PINS_ADC PIN_ADC0_AD0, PIN_ADC0_AD1, PIN_ADC0_AD2, PIN_ADC0_AD3, PIN_ADC0_AD4, PIN_ADC0_AD5, PIN_ADC0_AD6, PIN_ADC0_AD7
317
 
318
/// CAN Definition
319
/// RS: Select input for high speed mode or silent mode
320
//#define PIN_CAN_TRANSCEIVER_RS  {1<<23, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
321
//
322
///// TXD: Transmit data input
323
//#define PIN_CAN1_TRANSCEIVER_TXD  {1<<27, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
324
///// RXD: Receive data output
325
//#define PIN_CAN1_TRANSCEIVER_RXD  {1<<26, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
326
/// TXD: Transmit data input
327
//#define PIN_CAN2_TRANSCEIVER_TXD  {1<<29, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
328
///// RXD: Receive data output
329
//#define PIN_CAN2_TRANSCEIVER_RXD  {1<<28, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
330
///// TXD pins
331
//#define PINS_CAN_TRANSCEIVER_TXD  PIN_CAN1_TRANSCEIVER_TXD, PIN_CAN2_TRANSCEIVER_TXD
332
///// RXD pins
333
//#define PINS_CAN_TRANSCEIVER_RXD  PIN_CAN1_TRANSCEIVER_RXD, PIN_CAN2_TRANSCEIVER_RXD
334
 
335
/// DBGU pins (DTXD and DRXD) definitions, PA11,12.
336
#define PINS_DBGU  {0x00001800, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
337
 
338
/// EBI
339
#define PIN_EBI_DATA_BUS            {0xfe01fe00, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}, \
340
                                        {1 << 6, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}
341
#define PIN_EBI_NCS0                {1 << 20, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
342
#define PIN_EBI_NRD                 {1 << 19, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
343
#define PIN_EBI_NWE                 {1 << 23, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
344
#define PIN_EBI_PSRAM_ADDR_BUS      {0x3f00fff, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_PULLUP}
345
#define PIN_EBI_PSRAM_NBS           {1 << 7, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}, \
346
                                        {1 << 15, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_PULLUP}
347
#define PIN_EBI_A1                  {1 << 8, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}
348
 
349
#define PIN_EBI_NCS2                {1 << 16, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_PULLUP}
350
#define PIN_EBI_LCD_RS              {1 << 8, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}
351
 
352
 
353
/// LED #0 pin definition.
354
#define PIN_LED_0   {1 << 0, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
355
/// LED #1 pin definition.
356
#define PIN_LED_1   {1 << 2, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
357
/// LED #2 pin definition.
358
#define PIN_LED_2   {1 << 1, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
359
/// List of all LEDs definitions.
360
#define PINS_LEDS   PIN_LED_0, PIN_LED_1, PIN_LED_2
361
 
362
///// MCI pins definition.
363
#define PINS_MCI  {0x1f8, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}, \
364
                      {1 << 3, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
365
 
366
/// MCI pin Card Detect
367
#define PIN_MCI_CD \
368
    {AT91C_PIO_PA25, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
369
 
370
/// Push button #0 definition.
371
#define PIN_PUSHBUTTON_1    {1 << 18, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
372
/// Push button #1 definition.
373
#define PIN_PUSHBUTTON_2    {1 << 19, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
374
/// Push button #2 definition
375
/// List of all push button definitions.
376
#define PINS_PUSHBUTTONS    PIN_PUSHBUTTON_1, PIN_PUSHBUTTON_2
377
 
378
/// Push button #1 index.
379
#define PUSHBUTTON_BP1   0
380
/// Push button #2 index.
381
#define PUSHBUTTON_BP2   1
382
 
383
/// Simulated joystick LEFT index.
384
#define JOYSTICK_LEFT       0
385
/// Simulated joystick RIGHT index.
386
#define JOYSTICK_RIGHT      1
387
 
388
/// SPI0 MISO pin definition.
389
#define PIN_SPI0_MISO  {1 << 13, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
390
/// SPI0 MOSI pin definition.
391
#define PIN_SPI0_MOSI  {1 << 14, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
392
/// SPI0 SPCK pin definition.
393
#define PIN_SPI0_SPCK  {1 << 15, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
394
/// SPI0 chip select 2 pin definition.
395
//#define PIN_SPI0_NPCS2_PC14  {1 <<  14, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_B, PIO_DEFAULT}
396
#define PIN_SPI0_NPCS2_PC14  {1 <<  14, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_OUTPUT_0, PIO_PULLUP}
397
/// List of SPI0 pin definitions (MISO, MOSI & SPCK).
398
#define PINS_SPI0      PIN_SPI0_MISO, PIN_SPI0_MOSI, PIN_SPI0_SPCK
399
 
400
/// SSC pins definition.
401
#define PIN_SSC_TD      {0x1 << 26, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
402
#define PIN_SSC_TK      {0x1 << 28, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
403
#define PIN_SSC_TF      {0x1 << 30, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
404
#define PINS_SSC_CODEC       PIN_SSC_TD,  PIN_SSC_TK, PIN_SSC_TF
405
 
406
/// PCK0
407
#define PIN_PCK0        {0x1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
408
 
409
/// TWI pins definition.
410
#define TWI_V3XX
411
#define PIN_TWI_TWD0    {0x1 << 9, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
412
#define PIN_TWI_TWCK0    {0x1 << 10, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
413
#define PINS_TWI0     PIN_TWI_TWD0, PIN_TWI_TWCK0
414
#define PIN_TWI_TWD1    {0x1 << 24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
415
#define PIN_TWI_TWCK1    {0x1 << 25, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
416
#define PINS_TWI1     PIN_TWI_TWD1, PIN_TWI_TWCK1
417
 
418
/// USART0
419
#define PIN_USART0_RXD    {0x1 << 19, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
420
#define PIN_USART0_TXD    {0x1 << 18, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
421
#define PIN_USART0_CTS    {0x1 << 8, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
422
#define PIN_USART0_RTS    {0x1 << 7, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
423
#define PIN_USART0_SCK    {0x1 << 17, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
424
 
425
/// USART1
426
#define PIN_USART1_RXD    {0x1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
427
#define PIN_USART1_TXD    {0x1 << 20, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
428
#define PIN_USART1_CTS    {0x1 << 23, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
429
#define PIN_USART1_RTS    {0x1 << 22, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
430
#define PIN_USART1_SCK    {0x1 << 24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
431
 
432
/// USB VBus monitoring pin definition.
433
#define PIN_USB_VBUS    {1 << 31, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
434
 
435
//------------------------------------------------------------------------------
436
 
437
//------------------------------------------------------------------------------
438
/// \page "SAM3UE-EK - External components"
439
/// This page lists the definitions related to external on-board components
440
/// located in the board.h file for the AT91SAM3UE-EK.
441
///
442
/// !AT45 Dataflash Card
443
/// - BOARD_AT45_A_SPI_BASE
444
/// - BOARD_AT45_A_SPI_ID
445
/// - BOARD_AT45_A_SPI_PINS
446
/// - BOARD_AT45_A_SPI
447
/// - BOARD_AT45_A_NPCS
448
/// - BOARD_AT45_A_NPCS_PIN
449
///
450
/// !AT45 Dataflash (serial onboard DataFlash)
451
/// - BOARD_AT45_B_SPI_BASE
452
/// - BOARD_AT45_B_SPI_ID
453
/// - BOARD_AT45_B_SPI_PINS
454
/// - BOARD_AT45_B_SPI
455
/// - BOARD_AT45_B_NPCS
456
/// - BOARD_AT45_B_NPCS_PIN
457
///
458
/// !AT26 Serial Flash
459
/// - BOARD_AT26_A_SPI_BASE
460
/// - BOARD_AT26_A_SPI_ID
461
/// - BOARD_AT26_A_SPI_PINS
462
/// - BOARD_AT26_A_SPI
463
/// - BOARD_AT26_A_NPCS
464
/// - BOARD_AT26_A_NPCS_PIN
465
///
466
/// !SD Card
467
/// - MCI2_INTERFACE
468
/// - BOARD_SD_MCI_BASE
469
/// - BOARD_SD_MCI_ID
470
/// - BOARD_SD_PINS
471
/// - BOARD_SD_SLOT
472
///
473
/// !PSRAM
474
/// - BOARD_PSRAM_PINS
475
/// - BOARD_LCD_PINS
476
 
477
/// Base address of SPI peripheral connected to the dataflash.
478
//#define BOARD_AT45_A_SPI_BASE         AT91C_BASE_SPI0
479
///// Identifier of SPI peripheral connected to the dataflash.
480
//#define BOARD_AT45_A_SPI_ID           AT91C_ID_SPI0
481
///// Pins of the SPI peripheral connected to the dataflash.
482
//#define BOARD_AT45_A_SPI_PINS         PINS_SPI0
483
///// Dataflahs SPI number.
484
//#define BOARD_AT45_A_SPI              0
485
///// Chip select connected to the dataflash.
486
//#define BOARD_AT45_A_NPCS             3
487
///// Chip select pin connected to the dataflash.
488
//#define BOARD_AT45_A_NPCS_PIN         PIN_SPI0_NPCS3
489
 
490
/// Base address of SPI peripheral connected to the dataflash.
491
//#define BOARD_AT45_B_SPI_BASE         AT91C_BASE_SPI1
492
///// Identifier of SPI peripheral connected to the dataflash.
493
//#define BOARD_AT45_B_SPI_ID           AT91C_ID_SPI1
494
///// Pins of the SPI peripheral connected to the dataflash.
495
//#define BOARD_AT45_B_SPI_PINS         PINS_SPI1
496
///// Dataflahs SPI number.
497
//#define BOARD_AT45_B_SPI              1
498
///// Chip select connected to the dataflash.
499
//#define BOARD_AT45_B_NPCS             3
500
///// Chip select pin connected to the dataflash.
501
//#define BOARD_AT45_B_NPCS_PIN         PIN_SPI1_NPCS3
502
 
503
/// Base address of SPI peripheral connected to the serialflash.
504
//#define BOARD_AT26_A_SPI_BASE         AT91C_BASE_SPI0
505
///// Identifier of SPI peripheral connected to the serialflash.
506
//#define BOARD_AT26_A_SPI_ID           AT91C_ID_SPI0
507
///// Pins of the SPI peripheral connected to the serialflash.
508
//#define BOARD_AT26_A_SPI_PINS         PINS_SPI0
509
///// Serialflash SPI number.
510
//#define BOARD_AT26_A_SPI              0
511
///// Chip select connected to the serialflash.
512
//#define BOARD_AT26_A_NPCS             3
513
///// Chip select pin connected to the serialflash.
514
//#define BOARD_AT26_A_NPCS_PIN         PIN_SPI0_NPCS3
515
 
516
/// HS MCI interface
517
#define MCI2_INTERFACE
518
/// Base address of the MCI peripheral connected to the SD card.
519
#define BOARD_SD_MCI_BASE           AT91C_BASE_MCI0//AT91C_BASE_MCI
520
///// Peripheral identifier of the MCI connected to the SD card.
521
#define BOARD_SD_MCI_ID             AT91C_ID_MCI0 //AT91C_ID_MCI
522
///// MCI pins that shall be configured to access the SD card.
523
#define BOARD_SD_PINS               PINS_MCI
524
///// MCI slot to which the SD card is connected to.
525
#define BOARD_SD_SLOT               MCI_SD_SLOTA
526
///// MCI Card Detect pin.
527
#define BOARD_SD_PIN_CD             PIN_MCI_CD
528
 
529
#define BOARD_PSRAM_PINS            PIN_EBI_DATA_BUS, PIN_EBI_NCS0, PIN_EBI_NRD, PIN_EBI_NWE, \
530
                                        PIN_EBI_PSRAM_ADDR_BUS, PIN_EBI_PSRAM_NBS, PIN_EBI_A1
531
 
532
/// Indicates board has an HX8347 external component to manage LCD.
533
#define BOARD_LCD_HX8347
534
 
535
/// LCD pins definition.
536
#define BOARD_LCD_PINS              PIN_EBI_DATA_BUS, PIN_EBI_LCD_RS, PIN_EBI_NRD, PIN_EBI_NWE, \
537
                                        PIN_EBI_NCS2
538
/// Backlight pin definition.
539
#define BOARD_BACKLIGHT_PIN       {1 << 19, AT91C_BASE_PIOC, AT91C_ID_PIOC, \
540
                                      PIO_OUTPUT_0, PIO_DEFAULT}
541
/// Define HX8347 base address.
542
#define BOARD_LCD_BASE            0x62000000
543
/// Define HX8347 register select signal.
544
#define BOARD_LCD_RS              (1 << 1)
545
/// Display width in pixels.
546
#define BOARD_LCD_WIDTH             240
547
/// Display height in pixels.
548
#define BOARD_LCD_HEIGHT            320
549
 
550
/// Indicates board has an ADS7843 external component to manage Touch Screen
551
#define BOARD_TSC_ADS7843
552
 
553
/// Touchscreen controller IRQ pin definition.
554
#define PIN_TCS_IRQ {AT91C_PIO_PA24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
555
/// Touchscreen controller Busy pin definition.
556
#define PIN_TCS_BUSY {AT91C_PIO_PA2, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
557
 
558
/// Base address of SPI peripheral connected to the touchscreen controller.
559
#define BOARD_TSC_SPI_BASE         AT91C_BASE_SPI0
560
/// Identifier of SPI peripheral connected to the touchscreen controller.
561
#define BOARD_TSC_SPI_ID           AT91C_ID_SPI0
562
/// Pins of the SPI peripheral connected to the touchscreen controller.
563
#define BOARD_TSC_SPI_PINS         PINS_SPI0
564
/// Chip select connected to the touchscreen controller.
565
#define BOARD_TSC_NPCS             2//2
566
/// Chip select pin connected to the touchscreen controller.
567
#define BOARD_TSC_NPCS_PIN         PIN_SPI0_NPCS2_PC14
568
 
569
//------------------------------------------------------------------------------
570
 
571
//------------------------------------------------------------------------------
572
/// \page "SAM3UE-EK - Memories"
573
/// This page lists definitions related to internal & external on-board memories.
574
///
575
/// !Embedded Flash
576
/// - BOARD_FLASH_EFC
577
 
578
/// Internal SRAM address
579
#define AT91C_ISRAM                   AT91C_IRAM
580
#define AT91C_ISRAM_SIZE         AT91C_IRAM_SIZE
581
 
582
#define AT91C_IFLASH                   (0x80000)
583
#define AT91C_IFLASH_SIZE              (0x20000)
584
#define AT91C_IFLASH_PAGE_SIZE             (256) // Internal FLASH 0 Page Size: 256 bytes
585
#define AT91C_IFLASH_NB_OF_PAGES           (512) // Internal FLASH 0 Number of Pages: 512
586
#define AT91C_IFLASH_LOCK_REGION_SIZE     (8192) // Internal FLASH 0 Lock Region Size: 8 Kbytes
587
#define AT91C_IFLASH_NB_OF_LOCK_BITS        (16) // Internal FLASH 0 Number of Lock Bits: 32
588
#if 0
589
#define AT91C_IFLASH1                 (0x100000)
590
#define AT91C_IFLASH1_SIZE             (0x20000)
591
#define AT91C_IFLASH1_PAGE_SIZE            (256) // Internal FLASH 1 Page Size: 256 bytes
592
#define AT91C_IFLASH1_NB_OF_PAGES          (512) // Internal FLASH 1 Number of Pages: 512
593
#define AT91C_IFLASH1_LOCK_REGION_SIZE   (8192) // Internal FLASH 1 Lock Region Size: 8 Kbytes
594
#define AT91C_IFLASH1_NB_OF_LOCK_BITS       (16) // Internal FLASH 1 Number of Lock Bits: 32
595
#endif
596
/// Indicates chip has an EFC.
597
#define AT91C_BASE_EFC    AT91C_BASE_EFC0
598
//------------------------------------------------------------------------------
599
 
600
 
601
//------------------------------------------------------------------------------
602
/// \page "SAM3UE-EK - External components"
603
/// This page lists the definitions related to external on-board components
604
/// located in the board.h file for the SAM3UE-EK.
605
///
606
/// !ISO7816
607
/// - PIN_SMARTCARD_CONNECT
608
/// - PIN_ISO7816_RSTMC
609
/// - PINS_ISO7816
610
 
611
/// Smartcard detection pin
612
//#define PIN_SMARTCARD_CONNECT   {1 << 5, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
613
/// PIN used for reset the smartcard
614
//#define PIN_ISO7816_RSTMC       {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
615
/// Pins used for connect the smartcard
616
//#define PINS_ISO7816            PIN_USART0_TXD, PIN_USART0_SCK, PIN_ISO7816_RSTMC
617
 
618
/// Dma channel number
619
#define BOARD_MCI_DMA_CHANNEL                         0
620
/// MCI0 DMA hardware handshaking ID
621
#define DMA_HW_SRC_REQ_ID_MCI0      AT91C_HDMA_SRC_PER_0
622
#define DMA_HW_DEST_REQ_ID_MCI0     AT91C_HDMA_DST_PER_0
623
/// MCI1 DMA hardware handshaking ID
624
#define DMA_HW_SRC_REQ_ID_MCI1      AT91C_HDMA_SRC_PER_13
625
#define DMA_HW_DEST_REQ_ID_MCI1     AT91C_HDMA_DST_PER_13
626
/// SD DMA hardware handshaking ID
627
#define BOARD_SD_DMA_HW_SRC_REQ_ID      DMA_HW_SRC_REQ_ID_MCI0
628
#define BOARD_SD_DMA_HW_DEST_REQ_ID     DMA_HW_DEST_REQ_ID_MCI0
629
//------------------------------------------------------------------------------
630
 
631
//------------------------------------------------------------------------------
632
/// \page "SAM3UE-EK - Individual chip definition"
633
/// This page lists the definitions related to different chip's definition
634
/// located in the board.h file for the SAM3UE-EK.
635
 
636
/// DBGU
637
#define BOARD_DBGU_ID               AT91C_ID_DBGU
638
 
639
/// Rtc
640
#define BOARD_RTC_ID                AT91C_ID_RTC
641
 
642
/// Twi eeprom
643
#define BOARD_ID_TWI_EEPROM         AT91C_ID_TWI1
644
#define BOARD_BASE_TWI_EEPROM       AT91C_BASE_TWI1
645
#define BOARD_PINS_TWI_EEPROM       PINS_TWI1
646
 
647
/// USART
648
#define BOARD_PIN_USART_RXD        PIN_USART1_RXD
649
#define BOARD_PIN_USART_TXD        PIN_USART1_TXD
650
#define BOARD_PIN_USART_CTS        PIN_USART1_CTS
651
#define BOARD_PIN_USART_RTS        PIN_USART1_RTS
652
#define BOARD_USART_BASE           AT91C_BASE_US1
653
#define BOARD_ID_USART             AT91C_ID_US1
654
 
655
/// Interrupt source
656
typedef enum IRQn
657
{
658
/******  Cortex-M3 Processor Exceptions Numbers ***************************************************/
659
  NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                             */
660
  MemoryManagement_IRQn       = -12,    /*!< 4 Cortex-M3 Memory Management Interrupt              */
661
  BusFault_IRQn               = -11,    /*!< 5 Cortex-M3 Bus Fault Interrupt                      */
662
  UsageFault_IRQn             = -10,    /*!< 6 Cortex-M3 Usage Fault Interrupt                    */
663
  SVCall_IRQn                 = -5,     /*!< 11 Cortex-M3 SV Call Interrupt                       */
664
  DebugMonitor_IRQn           = -4,     /*!< 12 Cortex-M3 Debug Monitor Interrupt                 */
665
  PendSV_IRQn                 = -2,     /*!< 14 Cortex-M3 Pend SV Interrupt                       */
666
  SysTick_IRQn                = -1,     /*!< 15 Cortex-M3 System Tick Interrupt                   */
667
 
668
/******  AT91SAM3U4 specific Interrupt Numbers *********************************************************/
669
 IROn_SUPC                = AT91C_ID_SUPC , // SUPPLY CONTROLLER
670
 IROn_RSTC                = AT91C_ID_RSTC , // RESET CONTROLLER
671
 IROn_RTC                 = AT91C_ID_RTC  , // REAL TIME CLOCK
672
 IROn_RTT                 = AT91C_ID_RTT  , // REAL TIME TIMER
673
 IROn_WDG                 = AT91C_ID_WDG  , // WATCHDOG TIMER
674
 IROn_PMC                 = AT91C_ID_PMC  , // PMC
675
 IROn_EFC0                = AT91C_ID_EFC0 , // EFC0
676
 IROn_EFC1                = AT91C_ID_EFC1 , // EFC1
677
 IROn_DBGU                = AT91C_ID_DBGU , // DBGU
678
 IROn_HSMC4               = AT91C_ID_HSMC4, // HSMC4
679
 IROn_PIOA                = AT91C_ID_PIOA , // Parallel IO Controller A
680
 IROn_PIOB                = AT91C_ID_PIOB , // Parallel IO Controller B
681
 IROn_PIOC                = AT91C_ID_PIOC , // Parallel IO Controller C
682
 IROn_US0                 = AT91C_ID_US0  , // USART 0
683
 IROn_US1                 = AT91C_ID_US1  , // USART 1
684
 IROn_US2                 = AT91C_ID_US2  , // USART 2
685
 IROn_US3                 = AT91C_ID_US3  , // USART 3
686
 IROn_MCI0                = AT91C_ID_MCI0 , // Multimedia Card Interface
687
 IROn_TWI0                = AT91C_ID_TWI0 , // TWI 0
688
 IROn_TWI1                = AT91C_ID_TWI1 , // TWI 1
689
 IROn_SPI0                = AT91C_ID_SPI0 , // Serial Peripheral Interface
690
 IROn_SSC0                = AT91C_ID_SSC0 , // Serial Synchronous Controller 0
691
 IROn_TC0                 = AT91C_ID_TC0  , // Timer Counter 0
692
 IROn_TC1                 = AT91C_ID_TC1  , // Timer Counter 1
693
 IROn_TC2                 = AT91C_ID_TC2  , // Timer Counter 2
694
 IROn_PWMC                = AT91C_ID_PWMC , // Pulse Width Modulation Controller
695
 IROn_ADCC0               = AT91C_ID_ADCC0, // ADC controller0
696
 IROn_ADCC1               = AT91C_ID_ADCC1, // ADC controller1
697
 IROn_HDMA                = AT91C_ID_HDMA , // HDMA
698
 IROn_UDPHS               = AT91C_ID_UDPHS // USB Device High Speed
699
} IRQn_Type;
700
 
701
/// Dummy define SDRAM bus width 
702
#define BOARD_SDRAM_BUSWIDTH    32
703
 
704
//------------------------------------------------------------------------------
705
 
706
 
707
#define PIN_EBI_NANDOE          {1 << 17, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
708
#define PIN_EBI_NANDWE          {1 << 18, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
709
#define PIN_EBI_NANDCLE         {1 << 22, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
710
#define PIN_EBI_NANDALE         {1 << 21, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
711
 
712
#ifdef CHIP_NAND_CTRL
713
/// Nandflash chip enable pin definition.
714
#define BOARD_NF_CE_PIN         {1 << 12, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_PULLUP}
715
/// Nandflash ready/busy pin definition.
716
#define BOARD_NF_RB_PIN         {1 << 24, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
717
 
718
/// Nandflash controller peripheral pins definition.
719
#define PINS_NANDFLASH          BOARD_NF_CE_PIN, BOARD_NF_RB_PIN, PIN_EBI_NANDOE, PIN_EBI_NANDWE,\
720
                                PIN_EBI_NANDCLE, PIN_EBI_NANDALE, PIN_EBI_DATA_BUS
721
 
722
/// Address for transferring command bytes to the nandflash.
723
#define BOARD_NF_COMMAND_ADDR   0x60000000
724
/// Address for transferring address bytes to the nandflash.
725
#define BOARD_NF_ADDRESS_ADDR   0x61200000
726
/// Address for transferring data bytes to the nandflash.
727
#define BOARD_NF_DATA_ADDR      0x61000000
728
 
729
#else
730
/// Nandflash controller peripheral pins definition.
731
#define PINS_NANDFLASH          BOARD_NF_CE_PIN, BOARD_NF_RB_PIN, PIN_EBI_NANDOE, PIN_EBI_NANDWE,\
732
                                PIN_EBI_NANDCLE, PIN_EBI_NANDALE
733
/// Nandflash chip enable pin definition.
734
#define BOARD_NF_CE_PIN         {1 << 12, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_OUTPUT_1, PIO_DEFAULT}
735
/// Nandflash ready/busy pin definition.
736
#define BOARD_NF_RB_PIN         {1 << 24, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_PULLUP}
737
/// Address for transferring command bytes to the nandflash.
738
#define BOARD_NF_COMMAND_ADDR   0x61400000
739
/// Address for transferring address bytes to the nandflash.
740
#define BOARD_NF_ADDRESS_ADDR   0x61200000
741
/// Address for transferring data bytes to the nandflash.
742
#define BOARD_NF_DATA_ADDR      0x61000000
743
 
744
#endif
745
 
746
#endif //#ifndef BOARD_H
747
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.