blob: 9f8629aeca50b9e489fff4aca0261b41f8580570 [file] [log] [blame]
/* ----------------------------------------------------------------------------
* ATMEL Microcontroller Software Support
* ----------------------------------------------------------------------------
* Copyright (c) 2009, Atmel Corporation
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
*
* Atmel's name may not be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ----------------------------------------------------------------------------
*/
/**
* \page sam3x_ek_board/board_desc SAM3X-EK - Board Description
*
* \section Purpose
*
* This file is dedicated to description of the SAM3X-EK board.
*
* \section Contents
*
* - For SAM3X-EK information, see \subpage sam3x_ek_board/board_info.
* - For operating frequency information, see \subpage sam3x_ek_opfreq.
* - For using portable PIO definitions, see \subpage sam3x_ek_piodef.
* - For on-board memories, see \subpage sam3x_ek_mem.
* - Several USB definitions are included here, see \subpage sam3x_ek_usb.
* - For External components, see \subpage sam3x_ek_extcomp.
* - For Individual chip definition, see \subpage sam3x_ek_chipdef.
*
* To get more software details and the full list of parameters related to the
* SAM3X-EK board configuration, please have a look at the source file:
* \ref board.h\n
*
* \section Usage
*
* - The code for booting the board is provided by board/board_cstartup_xxx.c and
* board/board_lowlevel.c.
* - For using board PIOs, board characteristics (clock, etc.) and external
* components, see board.h.
* - For manipulating memories, see board/board_memories.h.
*
* This file can be used as a template and modified to fit a custom board, with
* specific PIOs usage or memory connections.
*/
/**
* \file board.h
*
* Definition of SAM3X-EK characteristics, sam3x-dependant PIOs and
* external components interfacing.
*/
#ifndef _BOARD_
#define _BOARD_
/*----------------------------------------------------------------------------
* Headers
*----------------------------------------------------------------------------*/
#include "chip.h"
#include "include/ads7843.h"
#include "include/bitbanding.h"
#include "include/bmp.h"
#include "include/board_lowlevel.h"
#include "include/board_memories.h"
#include "include/dmad.h"
#include "include/dma_hardware_interface.h"
#include "include/spid_dma.h"
#include "include/usart_spi.h"
#include "include/at45d.h"
#include "include/at45_spi.h"
#include "include/hamming.h"
#include "include/hx8347.h"
#include "include/iso7816_4.h"
#include "include/lcdd.h"
#include "include/lcd_color.h"
#include "include/lcd_font.h"
#include "include/lcd_font10x14.h"
#include "include/lcd_gimp_image.h"
#include "include/led.h"
#include "include/emacd.h"
#include "include/macb.h"
#include "include/math.h"
#include "include/mii.h"
#include "include/sn65hvd234.h" // CAN Transceiver
#include "include/timetick.h"
#include "include/tsd.h"
#include "include/tsd_ads7843.h"
#include "include/tsd_com.h"
#include "include/uart_console.h"
#include "include/wav.h"
#include "include/xmodem.h"
#include "include/twid.h"
#include "include/wm8731.h"
/**
* Libc porting layers
*/
#if defined ( __CC_ARM ) /* Keil µVision 4 */
# include "include/rand.h"
#elif defined ( __ICCARM__ ) /* IAR Ewarm 5.41+ */
# include "include/rand.h"
#elif defined ( __GNUC__ ) /* GCC CS3 2009q3-68/2010q1-188 */
# include "include/syscalls.h" /** RedHat Newlib minimal stub */
#endif
/*----------------------------------------------------------------------------
* Definitions
*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/**
* \page sam3x_ek_board/board_info "SAM3X-EK - Board informations"
* This page lists several definition related to the board description.
*
* \section Definitions
* - \ref BOARD_NAME
*/
/** Name of the board */
#define BOARD_NAME "SAM3X-EK"
/** Board definition */
#define sam3xek
/** Family definition (already defined) */
#define sam3x
/** Core definition */
#define cortexm3
//#define BOARD_REV_A
#define BOARD_REV_B
/*----------------------------------------------------------------------------*/
/**
* \page sam3x_ek_opfreq "SAM3X-EK - Operating frequencies"
* This page lists several definition related to the board operating frequency
* (when using the initialization done by board/board_lowlevel.c).
*
* \section Definitions
* - \ref BOARD_MAINOSC
* - \ref BOARD_MCK
*/
/** Frequency of the board main oscillator */
#define BOARD_MAINOSC 12000000
/** Master clock frequency (when using board/board_lowlevel.c) */
#define BOARD_MCK 84000000
/*----------------------------------------------------------------------------*/
/**
* \page sam3x_ek_piodef "SAM3X-EK - PIO definitions"
* This pages lists all the pio definitions contained in board.h. The constants
* are named using the following convention: PIN_* for a constant which defines
* a single Pin instance (but may include several PIOs sharing the same
* controller), and PINS_* for a list of Pin instances.
*
*/
#include "board/board_adc.h"
#include "board/board_ebi.h"
#include "board/board_leds.h"
#include "board/board_buttons.h"
#include "board/board_pwm.h"
#include "board/board_spi.h"
#include "board/board_ssc.h"
#include "board/board_pck.h"
#include "board/board_mci.h"
#include "board/board_uart.h"
#include "board/board_usart0.h"
#include "board/board_usart1.h"
#include "board/board_usart3.h"
#include "board/board_usb.h"
#include "board/board_can.h"
#include "board/board_qtouch.h"
#include "board/board_twi.h"
/*----------------------------------------------------------------------------*/
/**
* \page sam3x_ek_extcomp "SAM3X-EK - External components"
* This page lists the definitions related to external on-board components
* located in the board.h file for the SAM3X-EK.
*
*/
#include "board/board_lcd.h"
#include "board/board_touchscreen.h"
#include "board/board_emac.h"
#include "board/board_sdcard.h"
#include "board/board_smartcard.h"
/*----------------------------------------------------------------------------*/
/**
* \page sam3x_ek_mem "SAM3X-EK - Memories"
* This page lists definitions related to internal & external on-board memories.
*
*
*/
#include "board/board_nandflash.h"
#include "board/board_sdram.h"
#include "board/board_norflash.h"
/*----------------------------------------------------------------------------*/
/**
* \page sam3x_ek_chipdef "SAM3X-EK - Individual chip definition"
* This page lists the definitions related to different chip's definition
* located in the board.h file for the SAM3X-EK.
*
* \section USART
* - \ref BOARD_PIN_USART_RXD
* - \ref BOARD_PIN_USART_TXD
* - \ref BOARD_PIN_USART_CTS
* - \ref BOARD_PIN_USART_RTS
* - \ref BOARD_PIN_USART_EN
* - \ref BOARD_USART_BASE
* - \ref BOARD_ID_USART
*/
/** Rtc */
#define BOARD_RTC_ID ID_RTC
/** TWI ID for EEPROM application to use */
#define BOARD_ID_TWI_EEPROM ID_TWI0
/** TWI ID for SLAVE application to use */
#define BOARD_ID_TWI_SLAVE ID_TWI0
/** TWI Base for TWI EEPROM application to use */
#define BOARD_BASE_TWI_EEPROM TWI0
/** TWI Base for TWI SLAVE application to use */
#define BOARD_BASE_TWI_SLAVE TWI0
/** TWI pins for EEPROM application to use */
#define BOARD_PINS_TWI_EEPROM PINS_TWI0
/** TWI pins for TWI SLAVE application to use */
#define BOARD_PINS_TWI_SLAVE PINS_TWI0
/** USART RX pin for application */
#define BOARD_PIN_USART_RXD PIN_USART0_RXD
/** USART TX pin for application */
#define BOARD_PIN_USART_TXD PIN_USART0_TXD
/** USART CTS pin for application */
#define BOARD_PIN_USART_CTS PIN_USART0_CTS
/** USART RTS pin for application */
#define BOARD_PIN_USART_RTS PIN_USART0_RTS
/** USART ENABLE pin for application */
#define BOARD_PIN_USART_EN PIN_USART0_EN
/** USART Base for application */
#define BOARD_USART_BASE USART0
/** USART ID for application */
#define BOARD_ID_USART ID_USART0
/** USART1 Base for application */
#define BOARD_USART1_BASE USART1
/** USART1 ID for application */
#define BOARD_ID_USART1 ID_USART1
/** USART3 Base for application */
#define BOARD_USART3_BASE USART3
/** USART3 ID for application */
#define BOARD_ID_USART3 ID_USART3
#endif /* #ifndef _BOARD_ */