4 * \brief SAM3X-EK Board Definition.
\r
6 * Copyright (c) 2011 - 2012 Atmel Corporation. All rights reserved.
\r
12 * Redistribution and use in source and binary forms, with or without
\r
13 * modification, are permitted provided that the following conditions are met:
\r
15 * 1. Redistributions of source code must retain the above copyright notice,
\r
16 * this list of conditions and the following disclaimer.
\r
18 * 2. Redistributions in binary form must reproduce the above copyright notice,
\r
19 * this list of conditions and the following disclaimer in the documentation
\r
20 * and/or other materials provided with the distribution.
\r
22 * 3. The name of Atmel may not be used to endorse or promote products derived
\r
23 * from this software without specific prior written permission.
\r
25 * 4. This software may only be redistributed and used in connection with an
\r
26 * Atmel microcontroller product.
\r
28 * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
\r
29 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
\r
30 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
\r
31 * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
\r
32 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
\r
33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
\r
34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
\r
35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
\r
36 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
\r
37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
\r
38 * POSSIBILITY OF SUCH DAMAGE.
\r
44 #ifndef _SAM3X_EK_H_
\r
45 #define _SAM3X_EK_H_
\r
47 #include "compiler.h"
\r
48 #include "system_sam3x.h"
\r
49 #include "exceptions.h"
\r
51 /*#define BOARD_REV_A */
\r
54 /* ------------------------------------------------------------------------ */
\r
57 * \page sam3x_ek_opfreq "SAM3X-EK - Operating frequencies"
\r
58 * This page lists several definition related to the board operating frequency
\r
60 * \section Definitions
\r
61 * - \ref BOARD_FREQ_*
\r
65 /*! Board oscillator settings */
\r
66 #define BOARD_FREQ_SLCK_XTAL (32768U)
\r
67 #define BOARD_FREQ_SLCK_BYPASS (32768U)
\r
68 #define BOARD_FREQ_MAINCK_XTAL (12000000U)
\r
69 #define BOARD_FREQ_MAINCK_BYPASS (12000000U)
\r
71 /*! Master clock frequency */
\r
72 #define BOARD_MCK CHIP_FREQ_CPU_MAX
\r
74 /* ------------------------------------------------------------------------ */
\r
77 * \page sam3x_ek_board_info "SAM3X-EK - Board informations"
\r
78 * This page lists several definition related to the board description.
\r
80 * \section Definitions
\r
84 /*! Name of the board */
\r
85 #define BOARD_NAME "SAM3X-EK"
\r
86 /*! Board definition */
\r
88 /*! Family definition (already defined) */
\r
90 /*! Core definition */
\r
93 /* ------------------------------------------------------------------------ */
\r
96 * \page sam3x_ek_piodef "SAM3X-EK - PIO definitions"
\r
97 * This pages lists all the pio definitions. The constants
\r
98 * are named using the following convention: PIN_* for a constant which defines
\r
99 * a single Pin instance (but may include several PIOs sharing the same
\r
100 * controller), and PINS_* for a list of Pin instances.
\r
107 * - \ref PIN_ADC0_AD1
\r
112 /*! ADC_AD1 pin definition. */
\r
113 #define PIN_ADC0_AD1 {PIO_PA3X1_AD1, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
\r
114 #define PINS_ADC_TRIG PIO_PA11_IDX
\r
115 #define PINS_ADC_TRIG_FLAG (PIO_PERIPH_B | PIO_DEFAULT)
\r
117 #define PINS_ADC PIN_ADC0_AD1
\r
122 * - \ref PIN_EBI_DATA_BUS
\r
123 * - \ref PIN_EBI_NRD
\r
124 * - \ref PIN_EBI_NWE
\r
125 * - \ref PIN_EBI_NCS0
\r
126 * - \ref PIN_EBI_PSRAM_ADDR_BUS
\r
127 * - \ref PIN_EBI_PSRAM_NBS
\r
128 * - \ref PIN_EBI_A1
\r
129 * - \ref PIN_EBI_NCS1
\r
130 * - \ref PIN_EBI_LCD_RS
\r
134 /* ------------------------------------------------------------------------ */
\r
136 /* ------------------------------------------------------------------------ */
\r
137 /*! EBI Data Bus pins */
\r
138 #define PIN_EBI_DATA_BUS_D0 PIO_PC2_IDX
\r
139 #define PIN_EBI_DATA_BUS_D1 PIO_PC3_IDX
\r
140 #define PIN_EBI_DATA_BUS_D2 PIO_PC4_IDX
\r
141 #define PIN_EBI_DATA_BUS_D3 PIO_PC5_IDX
\r
142 #define PIN_EBI_DATA_BUS_D4 PIO_PC6_IDX
\r
143 #define PIN_EBI_DATA_BUS_D5 PIO_PC7_IDX
\r
144 #define PIN_EBI_DATA_BUS_D6 PIO_PC8_IDX
\r
145 #define PIN_EBI_DATA_BUS_D7 PIO_PC9_IDX
\r
146 #define PIN_EBI_DATA_BUS_D8 PIO_PC10_IDX
\r
147 #define PIN_EBI_DATA_BUS_D9 PIO_PC11_IDX
\r
148 #define PIN_EBI_DATA_BUS_D10 PIO_PC12_IDX
\r
149 #define PIN_EBI_DATA_BUS_D11 PIO_PC13_IDX
\r
150 #define PIN_EBI_DATA_BUS_D12 PIO_PC14_IDX
\r
151 #define PIN_EBI_DATA_BUS_D13 PIO_PC15_IDX
\r
152 #define PIN_EBI_DATA_BUS_D14 PIO_PC16_IDX
\r
153 #define PIN_EBI_DATA_BUS_D15 PIO_PC17_IDX
\r
154 #define PIN_EBI_DATA_BUS_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
156 #define PIN_EBI_NRD PIO_PA29_IDX
\r
157 #define PIN_EBI_NRD_FLAGS (PIO_PERIPH_B | PIO_PULLUP)
\r
158 #define PIN_EBI_NRD_MASK (1 << 29)
\r
159 #define PIN_EBI_NRD_PIO PIOB
\r
160 #define PIN_EBI_NRD_ID ID_PIOB
\r
161 #define PIN_EBI_NRD_TYPE PIO_PERIPH_B
\r
162 #define PIN_EBI_NRD_ATTR PIO_PULLUP
\r
164 #define PIN_EBI_NWE PIO_PC18_IDX
\r
165 #define PIN_EBI_NWE_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
166 #define PIN_EBI_NWE_MASK (1 << 18)
\r
167 #define PIN_EBI_NWE_PIO PIOC
\r
168 #define PIN_EBI_NWE_ID ID_PIOC
\r
169 #define PIN_EBI_NWE_TYPE PIO_PERIPH_A
\r
170 #define PIN_EBI_NWE_ATTR PIO_PULLUP
\r
171 /*! EBI NCS0 pin */
\r
172 #define PIN_EBI_NCS0 PIO_PA6_IDX
\r
173 #define PIN_EBI_NCS0_FLAGS (PIO_PERIPH_B | PIO_PULLUP)
\r
174 #define PIN_EBI_NCS0_MASK (1 << 6)
\r
175 #define PIN_EBI_NCS0_PIO PIOA
\r
176 #define PIN_EBI_NCS0_ID ID_PIOA
\r
177 #define PIN_EBI_NCS0_TYPE PIO_PERIPH_B
\r
178 #define PIN_EBI_NCS0_ATTR PIO_PULLUP
\r
179 /*! EBI address bus pins */
\r
180 #define PIN_EBI_ADDR_BUS_A0 PIO_PC21_IDX
\r
181 #define PIN_EBI_ADDR_BUS_NBS0 PIO_PC21_IDX
\r
182 #define PIN_EBI_ADDR_BUS_A1 PIO_PC22_IDX
\r
183 #define PIN_EBI_ADDR_BUS_NBS1 PIO_PD10_IDX
\r
184 #define PIN_EBI_ADDR_BUS_A2 PIO_PC23_IDX
\r
185 #define PIN_EBI_ADDR_BUS_A3 PIO_PC24_IDX
\r
186 #define PIN_EBI_ADDR_BUS_A4 PIO_PC25_IDX
\r
187 #define PIN_EBI_ADDR_BUS_A5 PIO_PC26_IDX
\r
188 #define PIN_EBI_ADDR_BUS_A6 PIO_PC27_IDX
\r
189 #define PIN_EBI_ADDR_BUS_A7 PIO_PC28_IDX
\r
190 #define PIN_EBI_ADDR_BUS_A8 PIO_PC29_IDX
\r
191 #define PIN_EBI_ADDR_BUS_A9 PIO_PC30_IDX
\r
192 #define PIN_EBI_ADDR_BUS_A10 PIO_PD0_IDX
\r
193 #define PIN_EBI_ADDR_BUS_A11 PIO_PD1_IDX
\r
194 #define PIN_EBI_ADDR_BUS_A12 PIO_PD2_IDX
\r
195 #define PIN_EBI_ADDR_BUS_A13 PIO_PD3_IDX
\r
196 #define PIN_EBI_ADDR_BUS_A14 PIO_PD4_IDX
\r
197 #define PIN_EBI_ADDR_BUS_A15 PIO_PD5_IDX
\r
198 #define PIN_EBI_ADDR_BUS_A16 PIO_PD6_IDX
\r
199 #define PIN_EBI_ADDR_BUS_A17 PIO_PD7_IDX
\r
200 #define PIN_EBI_ADDR_BUS_FLAG1 (PIO_PERIPH_A | PIO_PULLUP)
\r
201 #define PIN_EBI_ADDR_BUS_A18 PIO_PA25_IDX
\r
202 #define PIN_EBI_ADDR_BUS_A19 PIO_PA26_IDX
\r
203 #define PIN_EBI_ADDR_BUS_A20 PIO_PA27_IDX
\r
204 #define PIN_EBI_ADDR_BUS_FLAG2 (PIO_PERIPH_B | PIO_PULLUP)
\r
205 /*! EBI pin for LCD CS */
\r
206 #define PIN_EBI_NCS2 PIO_PB24_IDX
\r
207 #define PIN_EBI_NCS2_FLAGS (PIO_PERIPH_B | PIO_PULLUP)
\r
208 #define PIN_EBI_NCS2_MASK (1 << 24)
\r
209 #define PIN_EBI_NCS2_PIO PIOB
\r
210 #define PIN_EBI_NCS2_ID ID_PIOB
\r
211 #define PIN_EBI_NCS2_TYPE PIO_PERIPH_B
\r
212 #define PIN_EBI_NCS2_ATTR PIO_PULLUP
\r
213 /*! EBI pin for LCD RS */
\r
214 #define PIN_EBI_LCD_RS PIO_PC22_IDX
\r
215 #define PIN_EBI_LCD_RS_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
216 #define PIN_EBI_LCD_RS_MASK (1 << 22)
\r
217 #define PIN_EBI_LCD_RS_PIO PIOC
\r
218 #define PIN_EBI_LCD_RS_ID ID_PIOC
\r
219 #define PIN_EBI_LCD_RS_TYPE PIO_PERIPH_A
\r
220 #define PIN_EBI_LCD_RS_ATTR PIO_PULLUP
\r
225 * - \ref PIN_USER_LED1
\r
226 * - \ref PIN_USER_LED2
\r
227 * - \ref PIN_USER_LED3
\r
228 * - \ref PIN_POWER_LED
\r
233 /* ------------------------------------------------------------------------ */
\r
235 /* ------------------------------------------------------------------------ */
\r
236 /*! LED #0 pin definition (GREEN). D4 */
\r
237 #define PIN_USER_LED1 {PIO_PB13, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
\r
238 /*! LED #1 pin definition (AMBER). D3 */
\r
239 #define PIN_USER_LED2 {PIO_PB12, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
\r
240 /*! LED #1 pin definition (BLUE). D2 */
\r
241 #define PIN_USER_LED3 {PIO_PA12, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
\r
242 /*! LED #2 pin definition (RED). D5 */
\r
243 #define PIN_POWER_LED {PIO_PA13, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
\r
245 #define LED_GREEN 0
\r
246 #define LED_AMBER 1
\r
250 /*! List of all LEDs definitions. */
\r
251 #define PINS_LEDS PIN_USER_LED1, PIN_USER_LED2, PIN_USER_LED3, PIN_POWER_LED
\r
253 /*! LED #0 pin definition (BLUE). */
\r
254 #define LED_0_NAME "blue LED D2"
\r
255 #define LED0_GPIO (PIO_PA12_IDX)
\r
256 #define LED0_FLAGS (PIO_TYPE_PIO_OUTPUT_1 | PIO_DEFAULT)
\r
258 #define PIN_LED_0 {1 << 12, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
\r
259 #define PIN_LED_0_MASK (1 << 12)
\r
260 #define PIN_LED_0_PIO PIOA
\r
261 #define PIN_LED_0_ID ID_PIOA
\r
262 #define PIN_LED_0_TYPE PIO_OUTPUT_0
\r
263 #define PIN_LED_0_ATTR PIO_DEFAULT
\r
265 /*! LED #1 pin definition (GREEN). */
\r
266 #define LED_1_NAME "green LED D4"
\r
267 #define LED1_GPIO (PIO_PB13_IDX)
\r
268 #define LED1_FLAGS (PIO_TYPE_PIO_OUTPUT_1 | PIO_DEFAULT)
\r
270 #define PIN_LED_1 {1 << 13, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
\r
271 #define PIN_LED_1_MASK (1 << 13)
\r
272 #define PIN_LED_1_PIO PIOB
\r
273 #define PIN_LED_1_ID ID_PIOB
\r
274 #define PIN_LED_1_TYPE PIO_OUTPUT_1
\r
275 #define PIN_LED_1_ATTR PIO_DEFAULT
\r
277 /*! LED #2 pin detection (AMBER). */
\r
278 #define LED2_GPIO (PIO_PB12_IDX)
\r
279 #define LED2_FLAGS (PIO_TYPE_PIO_OUTPUT_1 | PIO_DEFAULT)
\r
281 /*! LED #3 pin detection (power) */
\r
282 #define LED3_GPIO (PIO_PA13_IDX)
\r
283 #define LED3_FLAGS (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)
\r
288 * - \ref PIN_PB_LEFT_CLICK
\r
289 * - \ref PIN_PB_RIGHT_CLICK
\r
290 * - \ref PINS_PUSHBUTTONS
\r
291 * - \ref PUSHBUTTON_BP1
\r
292 * - \ref PUSHBUTTON_BP2
\r
296 /* ------------------------------------------------------------------------ */
\r
298 /* ------------------------------------------------------------------------ */
\r
300 /** Push button LEFT CLICK definition.
\r
301 * Attributes = pull-up + debounce + interrupt on falling edge. */
\r
302 #define PIN_PB_LEFT_CLICK {PIO_PE7, PIOE, ID_PIOE, PIO_INPUT,\
\r
303 PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
\r
305 /** Push button RIGHT CLICK definition.
\r
306 * Attributes = pull-up + debounce + interrupt on falling edge. */
\r
307 #define PIN_PB_RIGHT_CLICK {PIO_PB23, PIOB, ID_PIOB, PIO_INPUT,\
\r
308 PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
\r
310 /*! List of all push button definitions. */
\r
311 #define PINS_PUSHBUTTONS PIN_PB_LEFT_CLICK, PIN_PB_RIGHT_CLICK
\r
313 /*! Push button #1 index. */
\r
314 #define PUSHBUTTON_BP1 0
\r
315 /*! Push button #2 index. */
\r
316 #define PUSHBUTTON_BP2 1
\r
318 /*! Push button LEFT CLICK index. */
\r
319 #define PUSHBUTTON_LEFT 0
\r
320 /*! Push button RIGHT CLICK index. */
\r
321 #define PUSHBUTTON_RIGHT 1
\r
323 /** Push button #0 definition.
\r
324 * Attributes = pull-up + debounce + interrupt on rising edge. */
\r
325 #define PUSHBUTTON_1_NAME "LEFT CLICK"
\r
326 #define GPIO_PUSH_BUTTON_1 (PIO_PE7_IDX)
\r
327 #define GPIO_PUSH_BUTTON_1_FLAGS\
\r
328 (PIO_INPUT | PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_RISE_EDGE)
\r
330 #define PIN_PUSHBUTTON_1 {PIO_PE7, PIOE, ID_PIOE, PIO_INPUT,\
\r
331 PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
\r
332 #define PIN_PUSHBUTTON_1_MASK PIO_PE7
\r
333 #define PIN_PUSHBUTTON_1_PIO PIOE
\r
334 #define PIN_PUSHBUTTON_1_ID ID_PIOE
\r
335 #define PIN_PUSHBUTTON_1_TYPE PIO_INPUT
\r
336 #define PIN_PUSHBUTTON_1_ATTR (PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_RISE_EDGE)
\r
338 /** Push button #1 definition.
\r
339 * Attributes = pull-up + debounce + interrupt on falling edge. */
\r
340 #define PUSHBUTTON_2_NAME "RIGHT CLICK"
\r
341 #define GPIO_PUSH_BUTTON_2 (PIO_PB23_IDX)
\r
342 #define GPIO_PUSH_BUTTON_2_FLAGS\
\r
343 (PIO_INPUT | PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE)
\r
345 #define PIN_PUSHBUTTON_2 {PIO_PB23, PIOB, ID_PIOB, PIO_INPUT,\
\r
346 PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
\r
347 #define PIN_PUSHBUTTON_2_MASK PIO_PB23
\r
348 #define PIN_PUSHBUTTON_2_PIO PIOB
\r
349 #define PIN_PUSHBUTTON_2_ID ID_PIOB
\r
350 #define PIN_PUSHBUTTON_2_TYPE PIO_INPUT
\r
351 #define PIN_PUSHBUTTON_2_ATTR (PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE)
\r
353 #define PIN_TC0_TIOA0 (PIO_PB25_IDX)
\r
354 #define PIN_TC0_TIOA0_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
356 #define PIN_TC0_TIOA1 (PIO_PA2_IDX)
\r
357 #define PIN_TC0_TIOA1_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
359 #define PIN_TC0_TIOA1_PIO PIOA
\r
360 #define PIN_TC0_TIOA1_MASK PIO_PA2
\r
361 #define PIN_TC0_TIOA1_ID ID_PIOA
\r
362 #define PIN_TC0_TIOA1_TYPE PIO_PERIPH_A
\r
363 #define PIN_TC0_TIOA1_ATTR PIO_DEFAULT
\r
365 #define PIN_TC0_TIOA2 (PIO_PA5_IDX)
\r
366 #define PIN_TC0_TIOA2_FLAGS (PIO_INPUT | PIO_DEFAULT)
\r
368 #define PIN_TC0_TIOA2_PIO PIOA
\r
369 #define PIN_TC0_TIOA2_MASK PIO_PA5
\r
370 #define PIN_TC0_TIOA2_ID ID_PIOA
\r
371 #define PIN_TC0_TIOA2_TYPE PIO_INPUT
\r
372 #define PIN_TC0_TIOA2_ATTR PIO_DEFAULT
\r
377 * - \ref PIN_PWMC_PWMH0
\r
378 * - \ref PIN_PWMC_PWML0
\r
379 * - \ref PIN_PWMC_PWMH1
\r
380 * - \ref PIN_PWMC_PWML1
\r
381 * - \ref PIN_PWMC_PWMH2
\r
382 * - \ref PIN_PWMC_PWML2
\r
383 * - \ref PIN_PWMC_PWMH3
\r
384 * - \ref PIN_PWMC_PWML3
\r
385 * - \ref PIN_PWM_LED0
\r
386 * - \ref PIN_PWM_LED1
\r
387 * - \ref PIN_PWM_LED2
\r
388 * - \ref CHANNEL_PWM_LED0
\r
389 * - \ref CHANNEL_PWM_LED1
\r
390 * - \ref CHANNEL_PWM_LED2
\r
394 /* ------------------------------------------------------------------------ */
\r
396 /* ------------------------------------------------------------------------ */
\r
397 /*! PWMC PWM0 pin definition: Output High. */
\r
398 #define PIN_PWMC_PWMH0\
\r
399 {PIO_PB12B_PWMH0, PIOB, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT}
\r
400 #define PIN_PWMC_PWMH0_TRIG PIO_PB12_IDX
\r
401 #define PIN_PWMC_PWMH0_TRIG_FLAG PIO_PERIPH_B | PIO_DEFAULT
\r
402 /*! PWMC PWM0 pin definition: Output Low. */
\r
403 #define PIN_PWMC_PWML0\
\r
404 {PIO_PA21B_PWML0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
405 /*! PWMC PWM1 pin definition: Output High. */
\r
406 #define PIN_PWMC_PWMH1\
\r
407 {PIO_PB13B_PWMH1, PIOB, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT}
\r
408 /*! PWMC PWM1 pin definition: Output Low. */
\r
409 #define PIN_PWMC_PWML1\
\r
410 {PIO_PB17B_PWML1, PIOB, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT}
\r
411 /*! PWMC PWM2 pin definition: Output High. */
\r
412 #define PIN_PWMC_PWMH2\
\r
413 {PIO_PA13B_PWMH2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
414 /*! PWMC PWM2 pin definition: Output Low. */
\r
415 #define PIN_PWMC_PWML2\
\r
416 {PIO_PA20B_PWML2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
417 /*! PWMC PWM3 pin definition: Output High. */
\r
418 #define PIN_PWMC_PWMH3\
\r
419 {PIO_PA9B_PWMH3, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
420 /*! PWMC PWM3 pin definition: Output Low. */
\r
421 #define PIN_PWMC_PWML3\
\r
422 {PIO_PC8B_PWML3, PIOC, ID_PIOC, PIO_PERIPH_B, PIO_DEFAULT}
\r
423 /*! PWM pins definition for LED0 */
\r
424 #define PIN_PWM_LED0 PIN_PWMC_PWMH0, PIN_PWMC_PWML0
\r
425 /*! PWM pins definition for LED1 */
\r
426 #define PIN_PWM_LED1 PIN_PWMC_PWMH1, PIN_PWMC_PWML1
\r
427 /*! PWM pins definition for LED2 */
\r
428 #define PIN_PWM_LED2 PIN_PWMC_PWMH2, PIN_PWMC_PWML2
\r
429 /*! PWM channel for LED0 */
\r
430 #define CHANNEL_PWM_LED0 0
\r
431 /*! PWM channel for LED1 */
\r
432 #define CHANNEL_PWM_LED1 1
\r
433 /*! PWM channel for LED2 */
\r
434 #define CHANNEL_PWM_LED2 2
\r
436 /*! PWM LED0 pin definitions. */
\r
437 #define PIN_PWM_LED0_GPIO PIO_PB13_IDX
\r
438 #define PIN_PWM_LED0_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
439 #define PIN_PWM_LED0_CHANNEL PWM_CHANNEL_1
\r
441 /*! PWM LED1 pin definitions. */
\r
442 #define PIN_PWM_LED1_GPIO PIO_PB12_IDX
\r
443 #define PIN_PWM_LED1_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
444 #define PIN_PWM_LED1_CHANNEL PWM_CHANNEL_0
\r
446 /*! PWM LED2 pin definitions. */
\r
447 #define PIN_PWM_LED2_GPIO PIO_PA12_IDX
\r
448 #define PIN_PWM_LED2_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
453 * - \ref PIN_SPI_MISO
\r
454 * - \ref PIN_SPI_MOSI
\r
455 * - \ref PIN_SPI_SPCK
\r
457 * - \ref PIN_SPI_NPCS0
\r
458 * - \ref PIN_SPI1_MISO
\r
459 * - \ref PIN_SPI1_MOSI
\r
460 * - \ref PIN_SPI1_SPCK
\r
462 * - \ref PIN_SPI1_NPCS0
\r
466 /* ------------------------------------------------------------------------ */
\r
468 /* ------------------------------------------------------------------------ */
\r
469 /*! SPI MISO pin definition. */
\r
470 #define PIN_SPI0_MISO\
\r
471 {PIO_PA25A_SPI0_MISO, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
472 /*! SPI MOSI pin definition. */
\r
473 #define PIN_SPI0_MOSI\
\r
474 {PIO_PA26A_SPI0_MOSI, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
475 /*! SPI SPCK pin definition. */
\r
476 #define PIN_SPI0_SPCK\
\r
477 {PIO_PA27A_SPI0_SPCK, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
478 /*! SPI chip select pin definition. */
\r
479 #define PIN_SPI0_NPCS0\
\r
480 {PIO_PA28A_SPI0_NPCS0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
481 /*! List of SPI pin definitions (MISO, MOSI & SPCK). */
\r
482 #define PINS_SPI0 PIN_SPI0_MISO, PIN_SPI0_MOSI, PIN_SPI0_SPCK
\r
484 /*! SPI0 MISO pin definition. */
\r
485 #define SPI0_MISO_GPIO (PIO_PA25_IDX)
\r
486 #define SPI0_MISO_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
487 /*! SPI0 MOSI pin definition. */
\r
488 #define SPI0_MOSI_GPIO (PIO_PA26_IDX)
\r
489 #define SPI0_MOSI_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
490 /*! SPI0 SPCK pin definition. */
\r
491 #define SPI0_SPCK_GPIO (PIO_PA27_IDX)
\r
492 #define SPI0_SPCK_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
494 /*! SPI0 chip select 0 pin definition. (Only one configuration is possible) */
\r
495 #define SPI0_NPCS0_GPIO (PIO_PA28_IDX)
\r
496 #define SPI0_NPCS0_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
497 /*! SPI0 chip select 1 pin definition. (multiple configurations are possible) */
\r
498 #define SPI0_NPCS1_PA29_GPIO (PIO_PA29_IDX)
\r
499 #define SPI0_NPCS1_PA29_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
500 #define SPI0_NPCS1_PB20_GPIO (PIO_PB20_IDX)
\r
501 #define SPI0_NPCS1_PB20_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
502 /*! SPI0 chip select 2 pin definition. (multiple configurations are possible) */
\r
503 #define SPI0_NPCS2_PA30_GPIO (PIO_PA30_IDX)
\r
504 #define SPI0_NPCS2_PA30_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
505 #define SPI0_NPCS2_PB21_GPIO (PIO_PB21_IDX)
\r
506 #define SPI0_NPCS2_PB21_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
507 /*! SPI0 chip select 3 pin definition. (multiple configurations are possible) */
\r
508 #define SPI0_NPCS3_PA31_GPIO (PIO_PA31_IDX)
\r
509 #define SPI0_NPCS3_PA31_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
510 #define SPI0_NPCS3_PB23_GPIO (PIO_PB23_IDX)
\r
511 #define SPI0_NPCS3_PB23_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
513 /*! SPI1 MISO pin definition. */
\r
514 #define PIN_SPI1_MISO\
\r
515 {PIO_PE28A_SPI1_MISO, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}
\r
516 /*! SPI1 MOSI pin definition. */
\r
517 #define PIN_SPI1_MOSI\
\r
518 {PIO_PE29A_SPI1_MOSI, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}
\r
519 /*! SPI1 SPCK pin definition. */
\r
520 #define PIN_SPI1_SPCK\
\r
521 {PIO_PE30A_SPI1_SPCK, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}
\r
522 /*! SPI1 chip select pin definition. */
\r
523 #define PIN_SPI1_NPCS0\
\r
524 {PIO_PE31A_SPI1_NPCS0, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}
\r
525 /*! List of SPI1 pin definitions (MISO, MOSI & SPCK). */
\r
526 #define PINS_SPI1 PIN_SPI1_MISO, PIN_SPI1_MOSI, PIN_SPI1_SPCK
\r
528 /*! SPI1 MISO pin definition. */
\r
529 #define SPI1_MISO_GPIO (PIO_PE28_IDX)
\r
530 #define SPI1_MISO_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
531 /*! SPI1 MOSI pin definition. */
\r
532 #define SPI1_MOSI_GPIO (PIO_PE29_IDX)
\r
533 #define SPI1_MOSI_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
534 /*! SPI1 SPCK pin definition. */
\r
535 #define SPI1_SPCK_GPIO (PIO_PE30_IDX)
\r
536 #define SPI1_SPCK_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
537 /*! SPI1 chip select 0 pin definition. (Only one configuration is possible) */
\r
538 #define SPI1_NPCS0_GPIO (PIO_PE31_IDX)
\r
539 #define SPI1_NPCS0_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
540 /*! SPI1 chip select 1 pin definition. (Only one configuration is possible) */
\r
541 #define SPI1_NPCS1_GPIO (PIO_PF0_IDX)
\r
542 #define SPI1_NPCS1_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
543 /*! SPI1 chip select 2 pin definition. (Only one configuration is possible) */
\r
544 #define SPI1_NPCS2_GPIO (PIO_PF1_IDX)
\r
545 #define SPI1_NPCS2_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
546 /*! SPI1 chip select 3 pin definition. (Only one configuration is possible) */
\r
547 #define SPI1_NPCS3_GPIO (PIO_PF2_IDX)
\r
548 #define SPI1_NPCS3_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
553 * - \ref PIN_SSC_TD
\r
554 * - \ref PIN_SSC_TK
\r
555 * - \ref PIN_SSC_TF
\r
556 * - \ref PINS_SSC_CODEC
\r
560 /* ------------------------------------------------------------------------ */
\r
562 /* ------------------------------------------------------------------------ */
\r
563 /*! SSC pin Transmitter Data (TD) */
\r
564 #define PIN_SSC_TD {PIO_PA16B_TD, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
565 /*! SSC pin Transmitter Clock (TK) */
\r
566 #define PIN_SSC_TK {PIO_PA14B_TK, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
567 /*! SSC pin Transmitter FrameSync (TF) */
\r
568 #define PIN_SSC_TF {PIO_PA15B_TF, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
570 /*! SSC pin Receiver Data (RD) */
\r
571 #define PIN_SSC_RD {PIO_PB18A_RD, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
572 /*! SSC pin Receiver Clock (RK) */
\r
573 #define PIN_SSC_RK {PIO_PB19A_RK, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
574 /*! SSC pin Receiver FrameSync (RF) */
\r
575 #define PIN_SSC_RF {PIO_PB17A_RF, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
577 /*! SSC pins definition for codec. */
\r
578 #define PINS_SSC_CODEC PIN_SSC_TD, PIN_SSC_TK, PIN_SSC_TF,\
\r
579 PIN_SSC_RD, PIN_SSC_RK, PIN_SSC_RF
\r
588 /* ------------------------------------------------------------------------ */
\r
590 /* ------------------------------------------------------------------------ */
\r
592 #define PIN_PCK0 (PIO_PB22_IDX)
\r
593 #define PIN_PCK0_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
595 #define PIN_PCK_0_MASK PIO_PB22
\r
596 #define PIN_PCK_0_PIO PIOB
\r
597 #define PIN_PCK_0_ID ID_PIOB
\r
598 #define PIN_PCK_0_TYPE PIO_PERIPH_B
\r
599 #define PIN_PCK_0_ATTR PIO_DEFAULT
\r
604 * - \ref PINS_HSMCI
\r
608 /* ------------------------------------------------------------------------ */
\r
610 /* ------------------------------------------------------------------------ */
\r
611 /*! HSMCI pins definition. */
\r
612 #define PINS_HSMCI\
\r
613 { PIO_PA20A_MCCDA | PIO_PA19A_MCCK | PIO_PA21A_MCDA0 | PIO_PA22A_MCDA1\
\r
614 | PIO_PA23A_MCDA2 | PIO_PA24A_MCDA3,\
\r
615 PIOA, ID_PIOA, PIO_PERIPH_A, PIO_PULLUP },\
\r
616 { PIO_PD0B_MCDA4 | PIO_PD1B_MCDA5 | PIO_PD2B_MCDA6 | PIO_PD3B_MCDA7,\
\r
617 PIOD, ID_PIOD, PIO_PERIPH_B, PIO_PULLUP},\
\r
618 { PIO_PE20B_MCCDB | PIO_PE22B_MCDB0 | PIO_PE24B_MCDB1 | PIO_PE26B_MCDB2\
\r
619 | PIO_PE27B_MCDB3,\
\r
620 PIOE, ID_PIOE, PIO_PERIPH_B, PIO_PULLUP }
\r
621 /*! HSMCI pin Card Detect. */
\r
622 #define PIN_HSMCI_CD {PIO_PE6, PIOE, ID_PIOE, PIO_INPUT, PIO_PULLUP}
\r
631 /* ------------------------------------------------------------------------ */
\r
633 /* ------------------------------------------------------------------------ */
\r
634 /*! UART pins (UTXD0 and URXD0) definitions, PA8,9. */
\r
635 #define PINS_UART (PIO_PA8A_URXD | PIO_PA9A_UTXD)
\r
636 #define PINS_UART_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
638 #define PINS_UART_MASK (PIO_PA8A_URXD | PIO_PA9A_UTXD)
\r
639 #define PINS_UART_PIO PIOA
\r
640 #define PINS_UART_ID ID_PIOA
\r
641 #define PINS_UART_TYPE PIO_PERIPH_A
\r
642 #define PINS_UART_ATTR PIO_DEFAULT
\r
647 * - \ref PIN_USART0_RXD
\r
648 * - \ref PIN_USART0_TXD
\r
649 * - \ref PIN_USART0_CTS
\r
650 * - \ref PIN_USART0_RTS
\r
651 * - \ref PIN_USART0_SCK
\r
653 * - \ref PIN_USART0_EN
\r
656 /* ------------------------------------------------------------------------ */
\r
658 /* ------------------------------------------------------------------------ */
\r
659 /*! USART0 pin RX */
\r
660 #define PIN_USART0_RXD\
\r
661 {PIO_PA10A_RXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
662 #define PIN_USART0_RXD_IDX (PIO_PA10_IDX)
\r
663 #define PIN_USART0_RXD_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
664 /*! USART0 pin TX */
\r
665 #define PIN_USART0_TXD\
\r
666 {PIO_PA11A_TXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
667 #define PIN_USART0_TXD_IDX (PIO_PA11_IDX)
\r
668 #define PIN_USART0_TXD_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
669 /*! USART0 pin CTS */
\r
670 #define PIN_USART0_CTS\
\r
671 {PIO_PB26A_CTS0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
672 #define PIN_USART0_CTS_IDX (PIO_PB26_IDX)
\r
673 #define PIN_USART0_CTS_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
674 /*! USART0 pin RTS */
\r
675 #define PIN_USART0_RTS\
\r
676 {PIO_PB25A_RTS0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
677 #define PIN_USART0_RTS_IDX (PIO_PB25_IDX)
\r
678 #define PIN_USART0_RTS_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
679 /*! USART0 pin SCK */
\r
680 #define PIN_USART0_SCK\
\r
681 {PIO_PA17B_SCK0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
\r
682 #define PIN_USART0_SCK_IDX (PIO_PA17_IDX)
\r
683 #define PIN_USART0_SCK_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
685 /*! USART0 pin ENABLE */
\r
686 #define PIN_USART0_EN\
\r
687 {PIO_PE14, PIOE, ID_PIOE, PIO_OUTPUT_0, PIO_DEFAULT}
\r
688 #define PIN_USART0_EN_IDX (PIO_PE14_IDX)
\r
689 #define PIN_USART0_EN_FLAGS (PIO_OUTPUT_0 | PIO_DEFAULT)
\r
694 * - \ref PIN_USART1_RXD
\r
695 * - \ref PIN_USART1_TXD
\r
696 * - \ref PIN_USART1_CTS
\r
697 * - \ref PIN_USART1_RTS
\r
698 * - \ref PIN_USART1_SCK
\r
702 /* ------------------------------------------------------------------------ */
\r
704 /* ------------------------------------------------------------------------ */
\r
705 /*! USART1 pin RX */
\r
706 #define PIN_USART1_RXD\
\r
707 {PIO_PA12A_RXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
708 #define PIN_USART1_RXD_IDX (PIO_PA12_IDX)
\r
709 #define PIN_USART1_RXD_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
710 /*! USART1 pin TX */
\r
711 #define PIN_USART1_TXD\
\r
712 {PIO_PA13A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
713 #define PIN_USART1_TXD_IDX (PIO_PA13_IDX)
\r
714 #define PIN_USART1_TXD_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
715 /*! USART1 pin CTS */
\r
716 #define PIN_USART1_CTS\
\r
717 {PIO_PA15A_CTS1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
718 #define PIN_USART1_CTS_IDX (PIO_PA15_IDX)
\r
719 #define PIN_USART1_CTS_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
720 /*! USART1 pin RTS */
\r
721 #define PIN_USART1_RTS\
\r
722 {PIO_PA14A_RTS1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
723 #define PIN_USART1_RTS_IDX (PIO_PA14_IDX)
\r
724 #define PIN_USART1_RTS_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
725 /*! USART1 pin SCK */
\r
726 #define PIN_USART1_SCK\
\r
727 {PIO_PA16A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
728 #define PIN_USART1_SCK_IDX (PIO_PA16_IDX)
\r
729 #define PIN_USART1_SCK_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
734 * - \ref PIN_USART3_RXD
\r
735 * - \ref PIN_USART3_TXD
\r
736 * - \ref PIN_USART3_CTS
\r
737 * - \ref PIN_USART3_RTS
\r
738 * - \ref PIN_USART3_SCK
\r
742 /* ------------------------------------------------------------------------ */
\r
744 /* ------------------------------------------------------------------------ */
\r
745 /*! USART1 pin RX */
\r
746 #define PIN_USART3_RXD\
\r
747 {PIO_PD5B_RXD3, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
\r
748 #define PIN_USART3_RXD_IDX (PIO_PD5_IDX)
\r
749 #define PIN_USART3_RXD_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
750 /*! USART1 pin TX */
\r
751 #define PIN_USART3_TXD\
\r
752 {PIO_PD4B_TXD3, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
\r
753 #define PIN_USART3_TXD_IDX (PIO_PD4_IDX)
\r
754 #define PIN_USART3_TXD_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
755 /*! USART1 pin CTS */
\r
756 #define PIN_USART3_CTS\
\r
757 {PIO_PF4A_CTS3, PIOF, ID_PIOF, PIO_PERIPH_A, PIO_DEFAULT}
\r
758 #define PIN_USART3_CTS_IDX (PIO_PF4_IDX)
\r
759 #define PIN_USART3_CTS_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
760 /*! USART1 pin RTS */
\r
761 #define PIN_USART3_RTS\
\r
762 {PIO_PF5A_RTS3, PIOF, ID_PIOF, PIO_PERIPH_A, PIO_DEFAULT}
\r
763 #define PIN_USART3_RTS_IDX (PIO_PF5_IDX)
\r
764 #define PIN_USART3_RTS_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
765 /*! USART1 pin SCK */
\r
766 #define PIN_USART3_SCK\
\r
767 {PIO_PE16B_SCK3, PIOE, ID_PIOE, PIO_PERIPH_B, PIO_DEFAULT}
\r
768 #define PIN_USART3_SCK_IDX (PIO_PE16_IDX)
\r
769 #define PIN_USART3_SCK_FLAGS (PIO_PERIPH_B | PIO_DEFAULT)
\r
774 * - \ref PIN_USBOTG_VBOF
\r
775 * - \ref PIN_USB_FAULT
\r
779 /* ------------------------------------------------------------------------ */
\r
781 /* ------------------------------------------------------------------------ */
\r
782 /*! USB OTG VBus On/Off: Bus Power Control Port. */
\r
783 #define PIN_UOTGHS_VBOF { PIO_PB10, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_PULLUP }
\r
784 /*! USB OTG Identification: Mini Connector Identification Port. */
\r
785 #define PIN_UOTGHS_ID { PIO_PB11, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_PULLUP }
\r
786 /*! USB Fault monitoring pin definition. */
\r
787 #define PIN_UOTGHS_FAULT { PIO_PE5, PIOE, ID_PIOE, PIO_INPUT, PIO_PULLUP }
\r
789 /*! Multiplexed pin used for USB ID pin: */
\r
790 #define USB_ID_GPIO (PIO_PB11_IDX)
\r
791 #define USB_ID_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
792 /*! Multiplexed pin used for USB_VBOF: */
\r
793 #define USB_VBOF_GPIO (PIO_PB10_IDX)
\r
794 #define USB_VBOF_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
795 /*! Active level of the USB_VBOF output pin. */
\r
796 #define USB_VBOF_ACTIVE_LEVEL LOW
\r
797 /*! USB overcurrent detection pin. */
\r
798 #define USB_OVERCURRENT_DETECT_PIN PIO_PE5_IDX
\r
799 #define USB_OVERCURRENT_DETECT_GPIO (PIO_PE5_IDX)
\r
800 #define USB_OVERCURRENT_DETECT_FLAGS (PIO_INPUT | PIO_PULLUP)
\r
802 /* ------------------------------------------------------------------------ */
\r
805 * \page sam3x_ek_usb "SAM3X-EK - USB device"
\r
807 * \section Definitions
\r
808 * - \ref BOARD_USB_BMATTRIBUTES
\r
809 * - \ref CHIP_USB_UDP
\r
810 * - \ref CHIP_USB_PULLUP_INTERNAL
\r
811 * - \ref CHIP_USB_NUMENDPOINTS
\r
812 * - \ref CHIP_USB_ENDPOINTS_MAXPACKETSIZE
\r
813 * - \ref CHIP_USB_ENDPOINTS_BANKS
\r
816 /*! USB attributes configuration descriptor (bus or self powered, remote wakeup) */
\r
817 #define BOARD_USB_BMATTRIBUTES\
\r
818 USBConfigurationDescriptor_SELFPOWERED_RWAKEUP
\r
820 /*! Indicates chip has an internal pull-up. */
\r
821 #define CHIP_USB_PULLUP_INTERNAL
\r
823 /*! Number of USB endpoints */
\r
824 #define CHIP_USB_NUMENDPOINTS 10
\r
826 /*! Endpoints max packet size */
\r
827 #define CHIP_USB_ENDPOINTS_MAXPACKETSIZE(i)\
\r
828 ((i == 0) ? 64 : 1024)
\r
830 /*! Endpoints Number of Bank */
\r
831 #define CHIP_USB_ENDPOINTS_BANKS(i)\
\r
834 ((i == 2) ? 3 : 2)))
\r
839 * \ref PIN_CAN0_TRANSCEIVER_RXEN
\r
840 * \ref PIN_CAN0_TRANSCEIVER_RS
\r
841 * \ref PIN_CAN0_TXD
\r
842 * \ref PIN_CAN0_RXD
\r
845 * \ref PIN_CAN1_TRANSCEIVER_RXEN
\r
846 * \ref PIN_CAN1_TRANSCEIVER_RS
\r
847 * \ref PIN_CAN1_TXD
\r
848 * \ref PIN_CAN1_RXD
\r
852 /* ------------------------------------------------------------------------ */
\r
854 /* ------------------------------------------------------------------------ */
\r
856 /*! CAN0 RXEN: Select input for high speed mode or ultra low current sleep mode */
\r
857 #define PIN_CAN0_TRANSCEIVER_RXEN\
\r
858 { PIO_PB21, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT }
\r
860 /*! CAN0 RS: Select input for high speed mode or low-current standby mode */
\r
861 #define PIN_CAN0_TRANSCEIVER_RS\
\r
862 { PIO_PB20, PIOB, ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT }
\r
864 /*! CAN0 TXD: Transmit data input */
\r
865 #define PIN_CAN0_TXD\
\r
866 { PIO_PA0A_CANTX0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT }
\r
868 /*! CAN0 RXD: Receive data output */
\r
869 #define PIN_CAN0_RXD\
\r
870 { PIO_PA1A_CANRX0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT }
\r
872 /*! List of all CAN0 definitions. */
\r
873 #define PINS_CAN0 PIN_CAN0_TXD, PIN_CAN0_RXD
\r
875 /** CAN0 transceiver PIN RS. */
\r
876 #define PIN_CAN0_TR_RS_IDX PIO_PB20_IDX
\r
877 #define PIN_CAN0_TR_RS_FLAGS (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)
\r
879 /** CAN0 transceiver PIN EN. */
\r
880 #define PIN_CAN0_TR_EN_IDX PIO_PB21_IDX
\r
881 #define PIN_CAN0_TR_EN_FLAGS (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)
\r
883 /** CAN0 PIN RX. */
\r
884 #define PIN_CAN0_RX_IDX (PIO_PA1_IDX)
\r
885 #define PIN_CAN0_RX_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
887 /** CAN0 PIN TX. */
\r
888 #define PIN_CAN0_TX_IDX (PIO_PA0_IDX)
\r
889 #define PIN_CAN0_TX_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
891 /*! CAN1 RXEN: Select input for high speed mode or ultra low current sleep mode */
\r
892 #define PIN_CAN1_TRANSCEIVER_RXEN\
\r
893 { PIO_PE16, PIOE, ID_PIOE, PIO_OUTPUT_1, PIO_DEFAULT }
\r
895 /*! CAN1 RS: Select input for high speed mode or low-current standby mode */
\r
896 #define PIN_CAN1_TRANSCEIVER_RS\
\r
897 { PIO_PE15, PIOE, ID_PIOE, PIO_OUTPUT_0, PIO_DEFAULT }
\r
899 /*! CAN1 TXD: Transmit data input */
\r
900 #define PIN_CAN1_TXD\
\r
901 { PIO_PB14A_CANTX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT }
\r
903 /*! CAN1 RXD: Receive data output */
\r
904 #define PIN_CAN1_RXD\
\r
905 { PIO_PB15A_CANRX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT }
\r
907 /*! List of all CAN1 definitions. */
\r
908 #define PINS_CAN1 PIN_CAN1_TXD, PIN_CAN1_RXD
\r
910 /** CAN1 transceiver PIN RS. */
\r
911 #define PIN_CAN1_TR_RS_IDX PIO_PE15_IDX
\r
912 #define PIN_CAN1_TR_RS_FLAGS (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)
\r
914 /** CAN1 transceiver PIN EN. */
\r
915 #define PIN_CAN1_TR_EN_IDX PIO_PE16_IDX
\r
916 #define PIN_CAN1_TR_EN_FLAGS (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)
\r
918 /** CAN1 PIN RX. */
\r
919 #define PIN_CAN1_RX_IDX (PIO_PB15_IDX)
\r
920 #define PIN_CAN1_RX_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
922 /** CAN1 PIN TX. */
\r
923 #define PIN_CAN1_TX_IDX (PIO_PB14_IDX)
\r
924 #define PIN_CAN1_TX_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
929 * PIO definitions for Slider
\r
930 * \ref SLIDER_IOMASK_SNS
\r
931 * \ref SLIDER_IOMASK_SNSK
\r
932 * \ref PINS_SLIDER_SNS
\r
933 * \ref PINS_SLIDER_SNSK
\r
935 * PIO definitions for keys
\r
936 * \ref KEY_IOMASK_SNS
\r
937 * \ref KEY_IOMASK_SNSK
\r
938 * \ref PINS_KEY_SNS
\r
939 * \ref PINS_KEY_SNSK
\r
946 /* ------------------------------------------------------------------------ */
\r
948 /* ------------------------------------------------------------------------ */
\r
949 /*! PIO definitions for Slider */
\r
950 #define SLIDER_IOMASK_SNS (uint32_t)(PIO_PF0 | PIO_PF2 | PIO_PF4)
\r
951 #define SLIDER_IOMASK_SNSK (uint32_t)(PIO_PF1 | PIO_PF3 | PIO_PF5)
\r
952 #define PINS_SLIDER_SNS\
\r
953 {SLIDER_IOMASK_SNS, PIOF, ID_PIOF, PIO_INPUT, PIO_DEFAULT}
\r
954 #define PINS_SLIDER_SNSK\
\r
955 {SLIDER_IOMASK_SNSK, PIOF, ID_PIOF, PIO_INPUT, PIO_DEFAULT}
\r
957 /*! PIO definitions for keys */
\r
958 #define KEY_IOMASK_SNS\
\r
959 (uint32_t)(PIO_PE21 | PIO_PE27 | PIO_PE25 | PIO_PE19 | PIO_PE23)
\r
960 #define KEY_IOMASK_SNSK\
\r
961 (uint32_t)(PIO_PE20 | PIO_PE26 | PIO_PE24 | PIO_PE18 | PIO_PE22)
\r
962 #define PINS_KEY_SNS\
\r
963 {KEY_IOMASK_SNS, PIOE, ID_PIOE, PIO_INPUT, PIO_DEFAULT}
\r
964 #define PINS_KEY_SNSK\
\r
965 {KEY_IOMASK_SNSK, PIOE, ID_PIOE, PIO_INPUT, PIO_DEFAULT}
\r
967 /*! PIOS for QTouch */
\r
968 #define PINS_QTOUCH PINS_SLIDER_SNS, PINS_SLIDER_SNSK,\
\r
969 PINS_KEY_SNS, PINS_KEY_SNSK
\r
974 * - \ref PIN_TWI_TWD0
\r
975 * - \ref PIN_TWI_TWCK0
\r
977 * - \ref PIN_TWI_TWD1
\r
978 * - \ref PIN_TWI_TWCK1
\r
983 /* ------------------------------------------------------------------------ */
\r
985 /* ------------------------------------------------------------------------ */
\r
986 /*! TWI0 data pin */
\r
987 #define PIN_TWI_TWD0\
\r
988 {PIO_PA17A_TWD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
989 /*! TWI0 clock pin */
\r
990 #define PIN_TWI_TWCK0\
\r
991 {PIO_PA18A_TWCK0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
\r
993 #define PINS_TWI0 PIN_TWI_TWD0, PIN_TWI_TWCK0
\r
995 /*! TWI0 pins definition */
\r
996 #define TWI0_DATA_GPIO PIO_PA17_IDX
\r
997 #define TWI0_DATA_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
998 #define TWI0_CLK_GPIO PIO_PA18_IDX
\r
999 #define TWI0_CLK_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
1001 /*! TWI1 data pin */
\r
1002 #define PIN_TWI_TWD1\
\r
1003 {PIO_PB12A_TWD1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1004 /*! TWI1 clock pin */
\r
1005 #define PIN_TWI_TWCK1\
\r
1006 {PIO_PB13A_TWCK1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1008 #define PINS_TWI1 PIN_TWI_TWD1, PIN_TWI_TWCK1
\r
1010 /*! TWI1 pins definition */
\r
1011 #define TWI1_DATA_GPIO PIO_PB12_IDX
\r
1012 #define TWI1_DATA_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
1013 #define TWI1_CLK_GPIO PIO_PB13_IDX
\r
1014 #define TWI1_CLK_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
1016 /* ------------------------------------------------------------------------ */
\r
1019 * \page sam3x_ek_extcomp "SAM3X-EK - External components"
\r
1020 * This page lists the definitions related to external on-board components
\r
1021 * located in the board.h file for the SAM3X-EK.
\r
1029 * - \ref BOARD_LCD_PINS
\r
1030 * - \ref BOARD_BACKLIGHT_PIN
\r
1031 * - \ref BOARD_LCD_BASE
\r
1032 * - \ref BOARD_LCD_RS
\r
1036 /*! LCD Base Address */
\r
1037 #define BOARD_LCD_BASE 0x62000000
\r
1038 /*! LCD pins definition. */
\r
1039 #define BOARD_LCD_PINS PIN_EBI_DATA_BUS, PIN_EBI_NRD,\
\r
1040 PIN_EBI_NWE, PIN_EBI_NCS2, PIN_EBI_LCD_RS
\r
1041 /*! Board chip select */
\r
1042 #define BOARD_LCD_NCS 2
\r
1043 /*! Board LCD SMC setup timings */
\r
1044 #define BOARD_TIMING_NS(ns)\
\r
1045 (((uint32_t)((ns * (BOARD_MCK / 1000000)) / 1000)) + 1)
\r
1047 #define BOARD_LCD_SETUP\
\r
1048 SMC_SETUP_NWE_SETUP(BOARD_TIMING_NS(10)) |\
\r
1049 SMC_SETUP_NCS_WR_SETUP(BOARD_TIMING_NS(10)) |\
\r
1050 SMC_SETUP_NRD_SETUP(BOARD_TIMING_NS(90)) |\
\r
1051 SMC_SETUP_NCS_RD_SETUP(BOARD_TIMING_NS(90))
\r
1052 /*! Board LCD SMC pulse timings */
\r
1053 #define BOARD_LCD_PULSE\
\r
1054 SMC_PULSE_NWE_PULSE(BOARD_TIMING_NS(35)) |\
\r
1055 SMC_PULSE_NCS_WR_PULSE(BOARD_TIMING_NS(35)) |\
\r
1056 SMC_PULSE_NRD_PULSE(BOARD_TIMING_NS(355)) |\
\r
1057 SMC_PULSE_NCS_RD_PULSE(BOARD_TIMING_NS(355))
\r
1058 /*! Board LCD SMC cycle timings */
\r
1059 #define BOARD_LCD_CYCLE\
\r
1060 SMC_CYCLE_NWE_CYCLE(BOARD_TIMING_NS(100)) |\
\r
1061 SMC_CYCLE_NRD_CYCLE(BOARD_TIMING_NS(460))
\r
1062 /*! Board LCD SMC mode */
\r
1063 #define BOARD_LCD_MODE\
\r
1064 SMC_MODE_WRITE_MODE |\
\r
1065 SMC_MODE_READ_MODE |\
\r
1066 SMC_MODE_DBW_BIT_16
\r
1068 /*! Define HX8347A register select signal. */
\r
1069 #define BOARD_LCD_RS (1 << 1)
\r
1071 /*! Backlight pin definition. */
\r
1072 #define BOARD_BACKLIGHT PIO_PB27_IDX
\r
1073 #define BOARD_BACKLIGHT_FLAG PIO_OUTPUT_0 | PIO_DEFAULT
\r
1075 /** Definition of MMA7341L x,y,z axis channel number */
\r
1076 #define MMA7341L_ADC_CHANNEL_X 2
\r
1077 #define MMA7341L_ADC_CHANNEL_Y 6
\r
1078 #define MMA7341L_ADC_CHANNEL_Z 7
\r
1080 /** MMA7341L mode set pin definition. */
\r
1081 #define PIN_MMA7341L_MODE PIO_PC13_IDX
\r
1082 #define PIN_MMA7341L_MODE_FLAG PIO_OUTPUT_1 | PIO_DEFAULT
\r
1084 /** MMA7341L X,Y,Z axis pin definition. */
\r
1085 #define PIN_MMA7341L_X_AXIS PIO_PB3_IDX
\r
1086 #define PIN_MMA7341L_X_AXIS_FLAG PIO_INPUT | PIO_DEFAULT
\r
1087 #define PIN_MMA7341L_Y_AXIS PIO_PC17_IDX
\r
1088 #define PIN_MMA7341L_Y_AXIS_FLAG PIO_INPUT | PIO_DEFAULT
\r
1089 #define PIN_MMA7341L_Z_AXIS PIO_PC18_IDX
\r
1090 #define PIN_MMA7341L_Z_AXIS_FLAG PIO_INPUT | PIO_DEFAULT
\r
1096 * - \ref PIN_TSC_IRQ
\r
1097 * - \ref PIN_TSC_BUSY
\r
1098 * - \ref BOARD_TSC_SPI_BASE
\r
1099 * - \ref BOARD_TSC_SPI_ID
\r
1100 * - \ref BOARD_TSC_SPI_PINS
\r
1101 * - \ref BOARD_TSC_NPCS
\r
1102 * - \ref BOARD_TSC_NPCS_PIN
\r
1106 /* ------------------------------------------------------------------------ */
\r
1108 /* ------------------------------------------------------------------------ */
\r
1109 /*! Touchscreen controller IRQ pin definition. */
\r
1110 #define PIN_TSC_IRQ {PIO_PA31, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP}
\r
1111 /*! Touchscreen controller Busy pin definition. */
\r
1112 #define PIN_TSC_BUSY {PIO_PA30, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP}
\r
1114 /*! Base address of SPI peripheral connected to the touchscreen controller. */
\r
1115 #define BOARD_TSC_SPI_BASE SPI0
\r
1116 /*! Identifier of SPI peripheral connected to the touchscreen controller. */
\r
1117 #define BOARD_TSC_SPI_ID ID_SPI0
\r
1118 /*! Pins of the SPI peripheral connected to the touchscreen controller. */
\r
1119 #define BOARD_TSC_SPI_PINS PINS_SPI0
\r
1120 /*! Chip select connected to the touchscreen controller. */
\r
1121 #define BOARD_TSC_NPCS 0
\r
1122 /*! Chip select pin connected to the touchscreen controller. */
\r
1123 /* We use PIO mode for chip select to meet ADS7843's timing specification */
\r
1124 #define BOARD_TSC_NPCS_PIN\
\r
1125 {PIO_PA28A_SPI0_NPCS0, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_PULLUP}
\r
1131 * - BOARD_EMAC_EREFCK
\r
1132 * - BOARD_EMAC_ETXEN
\r
1133 * - BOARD_EMAC_ETX0
\r
1134 * - BOARD_EMAC_ETX1
\r
1135 * - BOARD_EMAC_ECRSDV
\r
1136 * - BOARD_EMAC_ERX0
\r
1137 * - BOARD_EMAC_ERX1
\r
1138 * - BOARD_EMAC_ERXER
\r
1139 * - BOARD_EMAC_EMDC
\r
1140 * - BOARD_EMAC_EMDIO
\r
1142 * - BOARD_EMAC_PINS: One single define for all MACB pins
\r
1143 * - BOARD_EMAC_PHY_ADDR: Phy MAC address
\r
1144 * - BOARD_EMAC_MODE_RMII: Enable RMII connection with the PHY
\r
1147 /*! EMAC pin EREFCK */
\r
1148 #define BOARD_EMAC_EREFCK {PIO_PB0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1149 /*! EMAC pin ETXEN */
\r
1150 #define BOARD_EMAC_ETXEN\
\r
1151 {PIO_PB1A_ETXEN, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1152 /*! EMAC pin ETX0 */
\r
1153 #define BOARD_EMAC_ETX0\
\r
1154 {PIO_PB2A_ETX0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1155 /*! EMAC pin ETX1 */
\r
1156 #define BOARD_EMAC_ETX1\
\r
1157 {PIO_PB3A_ETX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1158 /*! EMAC pin ECRSDV */
\r
1159 #define BOARD_EMAC_ECRSDV\
\r
1160 {PIO_PB4A_ECRSDV_ERXDV, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1161 /*! EMAC pin ERX0 */
\r
1162 #define BOARD_EMAC_ERX0\
\r
1163 {PIO_PB5A_ERX0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1164 /*! EMAC pin ERX1 */
\r
1165 #define BOARD_EMAC_ERX1\
\r
1166 {PIO_PB6A_ERX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1167 /*! EMAC pin ERXER */
\r
1168 #define BOARD_EMAC_ERXER\
\r
1169 {PIO_PB7A_ERXER, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1170 /*! EMAC pin EMDC */
\r
1171 #define BOARD_EMAC_EMDC\
\r
1172 {PIO_PB8A_EMDC, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1173 /*! EMAC pin EMDIO */
\r
1174 #define BOARD_EMAC_EMDIO\
\r
1175 {PIO_PB9A_EMDIO, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
\r
1178 #define BOARD_EMAC_PINS\
\r
1179 BOARD_EMAC_EREFCK,\
\r
1182 BOARD_EMAC_ETXEN,\
\r
1183 BOARD_EMAC_ECRSDV,\
\r
1186 BOARD_EMAC_ERXER,\
\r
1190 #define PIN_EEMAC_EREFCK PIO_PB0_IDX
\r
1191 #define PIN_EMAC_ETXEN PIO_PB1_IDX
\r
1192 #define PIN_EMAC_ETX0 PIO_PB2_IDX
\r
1193 #define PIN_EMAC_ETX1 PIO_PB3_IDX
\r
1194 #define PIN_EMAC_ECRSDV PIO_PB4_IDX
\r
1195 #define PIN_EMAC_ERX0 PIO_PB5_IDX
\r
1196 #define PIN_EMAC_ERX1 PIO_PB6_IDX
\r
1197 #define PIN_EMAC_ERXER PIO_PB7_IDX
\r
1198 #define PIN_EMAC_EMDC PIO_PB8_IDX
\r
1199 #define PIN_EMAC_EMDIO PIO_PB9_IDX
\r
1200 #define PIN_EMAC_FLAGS PIO_PERIPH_A | PIO_DEFAULT
\r
1202 /** EMAC PHY address */
\r
1203 #define BOARD_EMAC_PHY_ADDR 0
\r
1204 /*! EMAC RMII mode */
\r
1205 #define BOARD_EMAC_MODE_RMII 1
\r
1210 * - \ref BOARD_SD_PINS
\r
1211 * - \ref BOARD_SD_PIN_CD
\r
1215 /*! HSMCI pins that shall be configured to access the SD card. */
\r
1216 #define BOARD_SD_PINS PINS_HSMCI
\r
1217 /*! HSMCI Card Detect pin. */
\r
1218 #define BOARD_SD_PIN_CD PIN_HSMCI_CD
\r
1219 /*! Total number of HSMCI interface */
\r
1220 #define BOARD_NUM_HSMCI 1
\r
1225 * - \ref SMARTCARD_CONNECT_PIN
\r
1226 * - \ref PIN_ISO7816_RSTMC
\r
1227 * - \ref PINS_ISO7816
\r
1231 /* ------------------------------------------------------------------------ */
\r
1233 /* ------------------------------------------------------------------------ */
\r
1234 /* Smartcard detection pin */
\r
1235 /*#define SMARTCARD_CONNECT_PIN {1 << 13, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT} */
\r
1237 /*/ PIN used for reset the smartcard */
\r
1238 #define PIN_ISO7816_RSTMC {1 << 11, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
\r
1239 /*/ Pins used for connect the smartcard */
\r
1240 #define PINS_ISO7816 PIN_USART1_TXD, PIN_USART1_SCK, PIN_ISO7816_RSTMC
\r
1242 /* ------------------------------------------------------------------------ */
\r
1245 * \page sam3x_ek_mem "SAM3X-EK - Memories"
\r
1246 * This page lists definitions related to internal & external on-board memories.
\r
1254 * - \ref PIN_EBI_NANDOE
\r
1255 * - \ref PIN_EBI_NANDWE
\r
1256 * - \ref PIN_EBI_NANDCLE
\r
1257 * - \ref PIN_EBI_NANDALE
\r
1258 * - \ref PIN_EBI_NANDIO
\r
1259 * - \ref BOARD_NF_CE_PIN
\r
1260 * - \ref BOARD_NF_RB_PIN
\r
1261 * - \ref PINS_NANDFLASH
\r
1265 /* ------------------------------------------------------------------------ */
\r
1267 /* ------------------------------------------------------------------------ */
\r
1268 /** NandFlash pins definition: OE. */
\r
1269 #define PIN_EBI_NANDOE (PIO_PC19_IDX)
\r
1270 #define PIN_EBI_NANDOE_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1272 /** NandFlash pins definition: WE. */
\r
1273 #define PIN_EBI_NANDWE (PIO_PC20_IDX)
\r
1274 #define PIN_EBI_NANDWE_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1276 /** NandFlash pins definition: CLE. */
\r
1277 #define PIN_EBI_NANDCLE (PIO_PD9_IDX)
\r
1278 #define PIN_EBI_NANDCLE_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1280 /** NandFlash pins definition: ALE. */
\r
1281 #define PIN_EBI_NANDALE (PIO_PD8_IDX)
\r
1282 #define PIN_EBI_NANDALE_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1284 /** NandFlash pins definition: DATA. */
\r
1285 #define PIN_EBI_NANDIO_0 (PIO_PC2_IDX)
\r
1286 #define PIN_EBI_NANDIO_0_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1288 #define PIN_EBI_NANDIO_1 (PIO_PC3_IDX)
\r
1289 #define PIN_EBI_NANDIO_1_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1291 #define PIN_EBI_NANDIO_2 (PIO_PC4_IDX)
\r
1292 #define PIN_EBI_NANDIO_2_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1294 #define PIN_EBI_NANDIO_3 (PIO_PC5_IDX)
\r
1295 #define PIN_EBI_NANDIO_3_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1297 #define PIN_EBI_NANDIO_4 (PIO_PC6_IDX)
\r
1298 #define PIN_EBI_NANDIO_4_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1300 #define PIN_EBI_NANDIO_5 (PIO_PC7_IDX)
\r
1301 #define PIN_EBI_NANDIO_5_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1303 #define PIN_EBI_NANDIO_6 (PIO_PC8_IDX)
\r
1304 #define PIN_EBI_NANDIO_6_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1306 #define PIN_EBI_NANDIO_7 (PIO_PC9_IDX)
\r
1307 #define PIN_EBI_NANDIO_7_FLAGS (PIO_PERIPH_A | PIO_PULLUP)
\r
1309 /** Nandflash chip enable pin definition. */
\r
1310 #define PIN_NF_CE_IDX (PIO_PA6_IDX)
\r
1311 #define PIN_NF_CE_FLAGS (PIO_PERIPH_B | PIO_PULLUP)
\r
1313 /** Nandflash ready/busy pin definition. */
\r
1314 #define PIN_NF_RB_IDX (PIO_PA2_IDX)
\r
1315 #define PIN_NF_RB_FLAGS (PIO_PERIPH_B | PIO_PULLUP)
\r
1317 /* Chip select number for nand */
\r
1318 #define BOARD_NAND_CS 0
\r
1321 * \addtopage sam3x_ek_mem
\r
1322 * \section NandFlash
\r
1323 * - \ref BOARD_NF_COMMAND_ADDR
\r
1324 * - \ref BOARD_NF_ADDRESS_ADDR
\r
1325 * - \ref BOARD_NF_DATA_ADDR
\r
1329 /* ------------------------------------------------------------------------ */
\r
1331 /* ------------------------------------------------------------------------ */
\r
1332 /*! Address for transferring command bytes to the nandflash. */
\r
1333 #define BOARD_NF_COMMAND_ADDR 0x60400000
\r
1334 /*! Address for transferring address bytes to the nandflash. */
\r
1335 #define BOARD_NF_ADDRESS_ADDR 0x60200000
\r
1336 /*! Address for transferring data bytes to the nandflash. */
\r
1337 #define BOARD_NF_DATA_ADDR 0x60000000
\r
1338 /* Bus width for NAND */
\r
1339 #define CONF_NF_BUSWIDTH 8
\r
1340 /* SMC NFC using five address cycle */
\r
1341 #define CONF_NF_NEED_FIVE_ADDRESS_CYCLES 1
\r
1342 /* Access timing for NAND */
\r
1343 #define CONF_NF_SETUP_TIMING (SMC_SETUP_NWE_SETUP(0) \
\r
1344 | SMC_SETUP_NCS_WR_SETUP(0) \
\r
1345 | SMC_SETUP_NRD_SETUP(0) \
\r
1346 | SMC_SETUP_NCS_RD_SETUP(0))
\r
1347 #define CONF_NF_PULSE_TIMING (SMC_PULSE_NWE_PULSE(2) \
\r
1348 | SMC_PULSE_NCS_WR_PULSE(3) \
\r
1349 | SMC_PULSE_NRD_PULSE(2) \
\r
1350 | SMC_PULSE_NCS_RD_PULSE(3))
\r
1351 #define CONF_NF_CYCLE_TIMING (SMC_CYCLE_NWE_CYCLE(3) \
\r
1352 | SMC_CYCLE_NRD_CYCLE(3))
\r
1353 #define CONF_NF_TIMING (SMC_TIMINGS_TCLR(1) \
\r
1354 | SMC_TIMINGS_TADL(6) \
\r
1355 | SMC_TIMINGS_TAR(4) \
\r
1356 | SMC_TIMINGS_TRR(2) \
\r
1357 | SMC_TIMINGS_TWB(9) \
\r
1358 | SMC_TIMINGS_RBNSEL(7) \
\r
1359 | (SMC_TIMINGS_NFSEL))
\r
1361 #define CONF_NF_USE_DMA
\r
1362 #ifdef CONF_NF_USE_DMA
\r
1363 /* DMA channel used for NF */
\r
1364 #define CONF_NF_DMA_CHANNEL 0
\r
1370 * - \ref BOARD_SDRAM_SIZE
\r
1371 * - \ref PIN_SDRAM
\r
1372 * - \ref BOARD_SDRAM_BUSWIDTH
\r
1376 /* ------------------------------------------------------------------------ */
\r
1378 /* ------------------------------------------------------------------------ */
\r
1379 /*! Board SDRAM size for MT48LC16M16A2 */
\r
1380 #define BOARD_SDRAM_SIZE (32 * 1024 * 1024) /* 32 MB */
\r
1382 /** Address for transferring command bytes to the SDRAM. */
\r
1383 #define BOARD_SDRAM_ADDR 0x70000000
\r
1385 /** List of all SDRAM pins definitions */
\r
1386 #define PIO_SDRAM_SDCKE PIO_PD13
\r
1387 #define PIO_SDRAM_SDCS PIO_PD12
\r
1388 #define PIO_SDRAM_RAS PIO_PD15
\r
1389 #define PIO_SDRAM_CAS PIO_PD16
\r
1390 #define PIO_SDRAM_BA0 PIO_PD6
\r
1391 #define PIO_SDRAM_BA1 PIO_PD7
\r
1392 #define PIO_SDRAM_SDWE PIO_PD14
\r
1393 #define PIO_SDRAM_NBS0 PIO_PC21
\r
1394 #define PIO_SDRAM_NBS1 PIO_PD10
\r
1395 #define PIO_SDRAM_DATA (0xffff << 2) //PIO_PC2--PIO_PC17
\r
1396 #define PIO_SDRAM_SDA0_A7 (0xff << 23) //PIO_PC23--PIO_PC30
\r
1397 #define PIO_SDRAM_SDA8 PIO_PD22
\r
1398 #define PIO_SDRAM_SDA9 PIO_PD23
\r
1399 #define PIO_SDRAM_SDA11 PIO_PD25
\r
1400 #define PIO_SDRAM_SDA12 PIO_PD4
\r
1401 #define PIO_SDRAM_SDA10 PIO_PD11
\r
1403 #define PIN_SDRAM_SDCKE PIO_PD13_IDX
\r
1404 #define PIN_SDRAM_SDCS PIO_PD12_IDX
\r
1405 #define PIN_SDRAM_RAS PIO_PD15_IDX
\r
1406 #define PIN_SDRAM_CAS PIO_PD16_IDX
\r
1407 #define PIN_SDRAM_BA0 PIO_PD6_IDX
\r
1408 #define PIN_SDRAM_BA1 PIO_PD7_IDX
\r
1409 #define PIN_SDRAM_SDWE PIO_PD14_IDX
\r
1410 #define PIN_SDRAM_NBS0 PIO_PC21_IDX
\r
1411 #define PIN_SDRAM_NBS1 PIO_PD10_IDX
\r
1412 #define PIN_SDRAM_DATA0 PIO_PC2_IDX
\r
1413 #define PIN_SDRAM_DATA1 PIO_PC3_IDX
\r
1414 #define PIN_SDRAM_DATA2 PIO_PC4_IDX
\r
1415 #define PIN_SDRAM_DATA3 PIO_PC5_IDX
\r
1416 #define PIN_SDRAM_DATA4 PIO_PC6_IDX
\r
1417 #define PIN_SDRAM_DATA5 PIO_PC7_IDX
\r
1418 #define PIN_SDRAM_DATA6 PIO_PC8_IDX
\r
1419 #define PIN_SDRAM_DATA7 PIO_PC9_IDX
\r
1420 #define PIN_SDRAM_DATA8 PIO_PC10_IDX
\r
1421 #define PIN_SDRAM_DATA9 PIO_PC11_IDX
\r
1422 #define PIN_SDRAM_DATA10 PIO_PC12_IDX
\r
1423 #define PIN_SDRAM_DATA11 PIO_PC13_IDX
\r
1424 #define PIN_SDRAM_DATA12 PIO_PC14_IDX
\r
1425 #define PIN_SDRAM_DATA13 PIO_PC15_IDX
\r
1426 #define PIN_SDRAM_DATA14 PIO_PC16_IDX
\r
1427 #define PIN_SDRAM_DATA15 PIO_PC17_IDX
\r
1428 #define PIN_SDRAM_SDA1 PIO_PC23_IDX
\r
1429 #define PIN_SDRAM_SDA2 PIO_PC24_IDX
\r
1430 #define PIN_SDRAM_SDA3 PIO_PC25_IDX
\r
1431 #define PIN_SDRAM_SDA4 PIO_PC26_IDX
\r
1432 #define PIN_SDRAM_SDA5 PIO_PC27_IDX
\r
1433 #define PIN_SDRAM_SDA6 PIO_PC28_IDX
\r
1434 #define PIN_SDRAM_SDA7 PIO_PC29_IDX
\r
1435 #define PIN_SDRAM_SDA0 PIO_PC30_IDX
\r
1436 #define PIN_SDRAM_SDA8 PIO_PD22_IDX
\r
1437 #define PIN_SDRAM_SDA9 PIO_PD23_IDX
\r
1438 #define PIN_SDRAM_SDA11 PIO_PD25_IDX
\r
1439 #define PIN_SDRAM_SDA12 PIO_PD4_IDX
\r
1440 #define PIN_SDRAM_SDA10 PIO_PD11_IDX
\r
1442 #define PIN_SDRAM_FLAGS PIO_PERIPH_A | PIO_PULLUP
\r
1444 #define PIN_SDRAM_EN PIO_PD18_IDX
\r
1445 #define PIN_SDRAM_EN_FLAGS PIO_OUTPUT_1 | PIO_DEFAULT
\r
1447 /** List of all SDRAM pins definitions */
\r
1448 #define PINS_SDRAM_PIOC { PIO_SDRAM_DATA | PIO_SDRAM_NBS0 | PIO_SDRAM_SDA0_A7, \
\r
1449 PIOC, ID_PIOC, PIO_PERIPH_A, PIO_PULLUP }
\r
1451 #define PINS_SDRAM_PIOD\
\r
1452 { PIO_SDRAM_SDCKE | PIO_SDRAM_SDCS |\
\r
1453 PIO_SDRAM_RAS | PIO_SDRAM_CAS |\
\r
1454 PIO_SDRAM_BA0 | PIO_SDRAM_BA1 |\
\r
1455 PIO_SDRAM_SDWE | PIO_SDRAM_NBS1 |\
\r
1456 PIO_SDRAM_SDA10 |\
\r
1457 PIO_SDRAM_SDA8 | PIO_SDRAM_SDA9 |\
\r
1458 PIO_SDRAM_SDA11 | PIO_SDRAM_SDA12,\
\r
1459 PIOD, ID_PIOD, PIO_PERIPH_A, PIO_PULLUP }
\r
1461 /* PIO18 is used as SDRAM Enable on EK-REVB board */
\r
1462 #define PINS_SDRAM_EN\
\r
1463 { (1 << 18), PIOD, ID_PIOD, PIO_OUTPUT_1, PIO_DEFAULT }
\r
1465 #define PINS_SDRAM PINS_SDRAM_PIOC, PINS_SDRAM_PIOD, PINS_SDRAM_EN
\r
1467 /*! SDRAM bus width */
\r
1468 #define BOARD_SDRAM_BUSWIDTH 16
\r
1470 /* SDRAMC clock speed */
\r
1471 #define SDRAMC_CLK (BOARD_MCK)
\r
1475 * \section NorFlash
\r
1476 * - \ref BOARD_NORFLASH_ADDR
\r
1480 /* ------------------------------------------------------------------------ */
\r
1482 /* ------------------------------------------------------------------------ */
\r
1483 /*! Address for transferring command bytes to the norflash. */
\r
1484 #define BOARD_NORFLASH_ADDR 0x60000000
\r
1486 /* ------------------------------------------------------------------------ */
\r
1489 * \page sam3x_ek_chipdef "SAM3X-EK - Individual chip definition"
\r
1490 * This page lists the definitions related to different chip's definition
\r
1491 * located in the board.h file for the SAM3X-EK.
\r
1494 * - \ref BOARD_PIN_USART_RXD
\r
1495 * - \ref BOARD_PIN_USART_TXD
\r
1496 * - \ref BOARD_PIN_USART_CTS
\r
1497 * - \ref BOARD_PIN_USART_RTS
\r
1498 * - \ref BOARD_PIN_USART_EN
\r
1499 * - \ref BOARD_USART_BASE
\r
1500 * - \ref BOARD_ID_USART
\r
1504 #define BOARD_RTC_ID ID_RTC
\r
1506 /* AT24CXX device address */
\r
1507 #define BOARD_AT24C_ADDRESS 0x50
\r
1508 /** Define MCP980X TWI instance. */
\r
1509 #define BOARD_AT24C_TWI_INSTANCE (TWI0)
\r
1511 /*! TWI ID for EEPROM application to use */
\r
1512 #define BOARD_ID_TWI_EEPROM ID_TWI0
\r
1513 /*! TWI Base for TWI EEPROM application to use */
\r
1514 #define BOARD_BASE_TWI_EEPROM TWI0
\r
1515 /*! TWI pins for EEPROM application to use */
\r
1516 #define BOARD_PINS_TWI_EEPROM PINS_TWI0
\r
1518 /*! USART RX pin for application */
\r
1519 #define BOARD_PIN_USART_RXD PIN_USART0_RXD
\r
1520 /*! USART TX pin for application */
\r
1521 #define BOARD_PIN_USART_TXD PIN_USART0_TXD
\r
1522 /*! USART CTS pin for application */
\r
1523 #define BOARD_PIN_USART_CTS PIN_USART0_CTS
\r
1524 /*! USART RTS pin for application */
\r
1525 #define BOARD_PIN_USART_RTS PIN_USART0_RTS
\r
1526 /*! USART ENABLE pin for application */
\r
1527 #define BOARD_PIN_USART_EN PIN_USART0_EN
\r
1528 /*! USART Base for application */
\r
1529 #define BOARD_USART_BASE USART0
\r
1530 /*! USART ID for application */
\r
1531 #define BOARD_ID_USART ID_USART0
\r
1532 /*! USART1 Base for application */
\r
1533 #define BOARD_USART1_BASE USART1
\r
1534 /*! USART1 ID for application */
\r
1535 #define BOARD_ID_USART1 ID_USART1
\r
1536 /*! USART3 Base for application */
\r
1537 #define BOARD_USART3_BASE USART3
\r
1538 /*! USART3 ID for application */
\r
1539 #define BOARD_ID_USART3 ID_USART3
\r
1541 #define CONSOLE_UART UART
\r
1542 #define CONSOLE_UART_ID ID_UART
\r
1545 #define PIN_RE_IDX PIN_USART0_CTS_IDX
\r
1546 #define PIN_RE_FLAGS (PIO_OUTPUT_0 | PIO_DEFAULT)
\r
1548 /* IRDA SD pin. */
\r
1549 #define PIN_IRDA_SD_IDX PIN_USART0_CTS_IDX
\r
1550 #define PIN_IRDA_SD_FLAGS (PIO_OUTPUT_1 | PIO_DEFAULT)
\r
1552 /* TXD pin configuration. */
\r
1553 #define PIN_USART_TXD_IDX PIN_USART0_TXD_IDX
\r
1554 #define PIN_USART_TXD_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
\r
1555 #define PIN_USART_TXD_IO_FLAGS (PIO_OUTPUT_0 | PIO_DEFAULT)
\r
1557 /* ISO7816 example relate PIN definition. */
\r
1558 #define ISO7816_USART_ID ID_USART0
\r
1559 #define ISO7816_USART USART0
\r
1560 #define PIN_ISO7816_RST_IDX PIO_PA15_IDX
\r
1561 #define PIN_ISO7816_RST_FLAG (PIO_OUTPUT_0 | PIO_DEFAULT)
\r
1563 #endif /* _SAM3X_EK_H_ */
\r