board.h
上传用户:jnhtjd
上传日期:2022-07-16
资源大小:403k
文件大小:21k
- /* ----------------------------------------------------------------------------
- * ATMEL Microcontroller Software Support
- * ----------------------------------------------------------------------------
- * Copyright (c) 2008, 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.
- * ----------------------------------------------------------------------------
- */
- //------------------------------------------------------------------------------
- /// dir
- /// !Purpose
- ///
- /// Definition and functions for using AT91SAM7X-related features, such
- /// has PIO pins, memories, etc.
- ///
- /// !Usage
- /// -# The code for booting the board is provided by board_cstartup.S and
- /// board_lowlevel.c.
- /// -# For using board PIOs, board characteristics (clock, etc.) and external
- /// components, see board.h.
- /// -# For manipulating memories (remapping, SDRAM, etc.), see board_memories.h.
- //------------------------------------------------------------------------------
-
- //------------------------------------------------------------------------------
- /// unit
- /// !Purpose
- ///
- /// Definition of AT91SAM7X-EK characteristics, AT91SAM7X-dependant PIOs and
- /// external components interfacing.
- ///
- /// !Usage
- /// -# For operating frequency information, see "SAM7X-EK - Operating frequencies".
- /// -# For using portable PIO definitions, see "SAM7X-EK - PIO definitions".
- /// -# Several USB definitions are included here (see "SAM7X-EK - USB device").
- //------------------------------------------------------------------------------
- #ifndef BOARD_H
- #define BOARD_H
- //------------------------------------------------------------------------------
- // Headers
- //------------------------------------------------------------------------------
- #if defined(at91sam7x128)
- #include "at91sam7x128/AT91SAM7X128.h"
- #elif defined(at91sam7x256)
- #include "at91sam7x256/AT91SAM7X256.h"
- #elif defined(at91sam7x512)
- #include "at91sam7x512/AT91SAM7X512.h"
- #else
- #error Board does not support the specified chip.
- #endif
- //------------------------------------------------------------------------------
- // Definitions
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- /// page "SAM7X-EK - Board Description"
- /// This page lists several definition related to the board description
- ///
- /// !Definitions
- /// - BOARD_NAME
- /// Name of the board.
- #define BOARD_NAME "AT91SAM7X-EK"
- /// Board definition.
- #define at91sam7xek
- /// Family definition.
- #define at91sam7x
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- /// page "SAM7X-EK - Operating frequencies"
- /// This page lists several definition related to the board operating frequency
- /// (when using the initialization done by board_lowlevel.c).
- ///
- /// !Definitions
- /// - BOARD_MAINOSC
- /// - BOARD_MCK
- /// Frequency of the board main oscillator.
- #define BOARD_MAINOSC 18432000
- /// Master clock frequency (when using board_lowlevel.c).
- #define BOARD_MCK 48000000
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- // ADC
- //------------------------------------------------------------------------------
- /// ADC clock frequency, at 10-bit resolution (in Hz)
- #define ADC_MAX_CK_10BIT 5000000
- /// ADC clock frequency, at 8-bit resolution (in Hz)
- #define ADC_MAX_CK_8BIT 8000000
- /// Startup time max, return from Idle mode (in 祍)
- #define ADC_STARTUP_TIME_MAX 20
- /// Track and hold Acquisition Time min (in ns)
- #define ADC_TRACK_HOLD_TIME_MIN 600
- //------------------------------------------------------------------------------
- /// page "SAM7X-EK - USB device"
- /// This page lists constants describing several characteristics (controller
- /// type, D+ pull-up type, etc.) of the USB device controller of the chip/board.
- ///
- /// !Constants
- /// - BOARD_USB_UDP
- /// - BOARD_USB_PULLUP_ALWAYSON
- /// - BOARD_USB_NUMENDPOINTS
- /// - BOARD_USB_ENDPOINTS_MAXPACKETSIZE
- /// - BOARD_USB_ENDPOINTS_BANKS
- /// - BOARD_USB_BMATTRIBUTES
- /// Chip has a UDP controller.
- #define BOARD_USB_UDP
- /// Indicates the D+ pull-up is always connected.
- #define BOARD_USB_PULLUP_ALWAYSON
- /// Number of endpoints in the USB controller.
- #define BOARD_USB_NUMENDPOINTS 6
- /// Returns the maximum packet size of the given endpoint.
- #define BOARD_USB_ENDPOINTS_MAXPACKETSIZE(i) ((((i) == 4) || ((i) == 5)) ? 256 : (((i) == 0) ? 8 : 64))
- /// Returns the number of FIFO banks for the given endpoint.
- #define BOARD_USB_ENDPOINTS_BANKS(i) ((((i) == 0) || ((i) == 3)) ? 1 : 2)
- /// USB attributes configuration descriptor (bus or self powered, remote wakeup)
- #define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- /// page "SAM7X-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.
- ///
- /// !DBGU
- /// - PINS_DBGU
- ///
- /// !LEDs
- /// - PIN_LED_0
- /// - PIN_LED_1
- /// - PIN_LED_2
- /// - PIN_LED_3
- /// - PINS_LEDS
- ///
- /// !Push buttons
- /// - PIN_PUSHBUTTON_1
- /// - PIN_PUSHBUTTON_2
- /// - PIN_PUSHBUTTON_3
- /// - PIN_PUSHBUTTON_4
- /// - PINS_PUSHBUTTONS
- /// - PUSHBUTTON_BP1
- /// - PUSHBUTTON_BP2
- /// - PUSHBUTTON_BP3
- /// - PUSHBUTTON_BP4
- /// - LED_DS1
- /// - LED_DS2
- /// - LED_DS3
- /// - LED_DS4
- ///
- /// !Joystick buttons
- /// - PIN_JOYSTICK_UP
- /// - PIN_JOYSTICK_DOWN
- /// - PIN_JOYSTICK_LEFT
- /// - PIN_JOYSTICK_RIGHT
- /// - PIN_JOYSTICK_LCLIC, PIN_JOYSTICK_PUSH
- /// - PINS_JOYSTICK_MOVE, PINS_JOYSTICK_CLIC, PINS_JOYSTICK
- /// - JOYSTICK_UP
- /// - JOYSTICK_DOWN
- /// - JOYSTICK_LEFT
- /// - JOYSTICK_RIGHT
- /// - JOYSTICK_LCLIC, JOYSTICK_PUSH
- ///
- /// !USART0
- /// - PIN_USART0_RXD
- /// - PIN_USART0_TXD
- /// - PIN_USART0_SCK
- ///
- /// !SPI0
- /// - PIN_SPI0_MISO
- /// - PIN_SPI0_MOSI
- /// - PIN_SPI0_SPCK
- /// - PINS_SPI0
- /// - PIN_SPI0_NPCS0
- /// - PIN_SPI0_NPCS1
- ///
- /// !PWMC
- /// - PIN_PWMC_PWM0
- /// - PIN_PWMC_PWM1
- /// - PIN_PWMC_PWM2
- /// - PIN_PWMC_PWM3
- /// - PIN_PWM_LED0
- /// - PIN_PWM_LED1
- /// - CHANNEL_PWM_LED0
- /// - CHANNEL_PWM_LED1
- ///
- /// !ADC
- /// - PIN_ADC_ADC0
- /// - PIN_ADC_ADC1
- /// - PIN_ADC_ADC2
- /// - PIN_ADC_ADC3
- /// - PINS_ADC
- ///
- /// !TWI
- /// - PINS_TWI
- ///
- /// !CAN
- /// - PIN_CAN_TRANSCEIVER_RS
- /// - PINS_CAN_TRANSCEIVER_TXD
- /// - PINS_CAN_TRANSCEIVER_RXD
- /// List of all DBGU pin definitions.
- #define PINS_DBGU {0x18000000, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// LED #0 pin definition.
- #define PIN_LED_0 {1 << 19, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- /// LED #1 pin definition.
- #define PIN_LED_1 {1 << 20, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- /// LED #2 pin definition.
- #define PIN_LED_2 {1 << 21, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- /// LED #3 pin definition.
- #define PIN_LED_3 {1 << 22, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- /// List of all LEDs pin definitions.
- #define PINS_LEDS PIN_LED_0, PIN_LED_1, PIN_LED_2, PIN_LED_3
- /// LED DS1 index.
- #define LED_DS1 0
- /// LED DS2 index.
- #define LED_DS2 1
- /// LED DS3 index.
- #define LED_DS3 2
- /// LED DS3 index.
- #define LED_DS4 3
- /// Push button #0 definition.
- #define PIN_PUSHBUTTON_1 {1 << 23, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// Push button #1 definition.
- #define PIN_PUSHBUTTON_2 {1 << 24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// Push button #2 definition
- #define PIN_PUSHBUTTON_3 {1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// Push button #3 definition.
- #define PIN_PUSHBUTTON_4 {1 << 22, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// List of all push button definitions.
- #define PINS_PUSHBUTTONS PIN_PUSHBUTTON_1, PIN_PUSHBUTTON_2, PIN_PUSHBUTTON_3, PIN_PUSHBUTTON_4
- /// Push button #1 index.
- #define PUSHBUTTON_BP1 0
- /// Push button #2 index.
- #define PUSHBUTTON_BP2 1
- /// Push button #3 index.
- #define PUSHBUTTON_BP3 2
- /// Push button #4 index.
- #define PUSHBUTTON_BP4 3
- // Joystick definition.
- /// Joystick UP.
- #define PIN_JOYSTICK_UP {1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
- /// Joystick DOWN.
- #define PIN_JOYSTICK_DOWN {1 << 22, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
- /// Joystick LEFT.
- #define PIN_JOYSTICK_LEFT {1 << 23, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
- /// Joystick RIGHT.
- #define PIN_JOYSTICK_RIGHT {1 << 24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
- /// Joystick LEFT clic.
- #define PIN_JOYSTICK_LCLIC {1 << 25, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_PULLUP}
- /// Joystick PUSH button.
- #define PIN_JOYSTICK_PUSH PIN_JOYSTICK_LCLIC
- /// List of all Joystick click definitions
- #define PINS_JOYSTICK_CLIC PIN_JOYSTICK_LCLIC
- /// List of all Joystick movement direction definitions
- #define PINS_JOYSTICK_MOVE PIN_JOYSTICK_UP, PIN_JOYSTICK_DOWN,
- PIN_JOYSTICK_LEFT, PIN_JOYSTICK_RIGHT
- /// List of all Joystick definitions
- #define PINS_JOYSTICK PINS_JOYSTICK_MOVE,
- PINS_JOYSTICK_CLIC
- /// Joystick UP index.
- #define JOYSTICK_UP 0
- /// Joystick DOWN index.
- #define JOYSTICK_DOWN 1
- /// Joystick LEFT index.
- #define JOYSTICK_LEFT 2
- /// Joystick RIGHT index.
- #define JOYSTICK_RIGHT 3
- /// Joystick LEFT CLICK index.
- #define JOYSTICK_LCLIC 4
- /// Joystick PUSH button index.
- #define JOYSTICK_PUSH 4
- /// USART0 RXD pin definition.
- #define PIN_USART0_RXD {1 << 0, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// USART0 TXD pin definition.
- #define PIN_USART0_TXD {1 << 1, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// USART0 SCK pin definition.
- #define PIN_USART0_SCK {1 << 2, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// USART0 RTS pin definition
- #define PIN_USART0_RTS {1 << 3, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// USART0 CTS pin definition
- #define PIN_USART0_CTS {1 << 4, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// SPI0 MISO pin definition.
- #define PIN_SPI0_MISO {1 << 16, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// SPI0 MOSI pin definition.
- #define PIN_SPI0_MOSI {1 << 17, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}
- /// SPI0 SPCK pin definition.
- #define PIN_SPI0_SPCK {1 << 18, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}
- /// List of SPI0 pin definitions (MISO, MOSI & SPCK).
- #define PINS_SPI0 PIN_SPI0_MISO, PIN_SPI0_MOSI, PIN_SPI0_SPCK
- /// SPI0 chip select 0 pin definition.
- #define PIN_SPI0_NPCS0 {1 << 12, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}
- /// SPI0 chip select 1 pin definition.
- #define PIN_SPI0_NPCS1 {1 << 13, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}
- /// PWMC PWM0 pin definition.
- #define PIN_PWMC_PWM0 {1 << 19, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
- /// PWMC PWM1 pin definition.
- #define PIN_PWMC_PWM1 {1 << 20, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
- /// PWMC PWM2 pin definition.
- #define PIN_PWMC_PWM2 {1 << 21, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
- /// PWMC PWM3 pin definition.
- #define PIN_PWMC_PWM3 {1 << 22, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
- /// ADC_AD0 pin definition.
- #define PIN_ADC0_ADC0 {1 << 27, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEFAULT}
- /// ADC_AD1 pin definition.
- #define PIN_ADC0_ADC1 {1 << 28, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEFAULT}
- /// ADC_AD2 pin definition.
- #define PIN_ADC0_ADC2 {1 << 29, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEFAULT}
- /// ADC_AD3 pin definition.
- #define PIN_ADC0_ADC3 {1 << 30, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEFAULT}
- /// Pins ADC
- #define PINS_ADC PIN_ADC0_ADC0, PIN_ADC0_ADC1, PIN_ADC0_ADC2, PIN_ADC0_ADC3
- /// PWM pin definition for LED0
- #define PIN_PWM_LED0 PIN_PWMC_PWM1
- /// PWM pin definition for LED1
- #define PIN_PWM_LED1 PIN_PWMC_PWM2
- /// PWM channel for LED0
- #define CHANNEL_PWM_LED0 1
- /// PWM channel for LED1
- #define CHANNEL_PWM_LED1 2
- /// TWI pins definition.
- #define PINS_TWI {0x00000C00, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// CAN Definition
- /// RS: Select input for high speed mode or silent mode
- #define PIN_CAN_TRANSCEIVER_RS {1<<2, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
- /// TXD: Transmit data input
- #define PINS_CAN_TRANSCEIVER_TXD {1<<20, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// RXD: Receive data output
- #define PINS_CAN_TRANSCEIVER_RXD {1<<19, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- /// page "SAM7X-EK - External components"
- /// This page lists definitions related to external on-board components.
- ///
- /// !AT45 Dataflash Card
- /// - BOARD_AT45_A_SPI_BASE
- /// - BOARD_AT45_A_SPI_ID
- /// - BOARD_AT45_A_SPI_PINS
- /// - BOARD_AT45_A_SPI
- /// - BOARD_AT45_A_NPCS
- /// - BOARD_AT45_A_NPCS_PIN
- ///
- /// !AT45 Dataflash (serial onboard DataFlash)
- /// - BOARD_AT45_B_SPI_BASE
- /// - BOARD_AT45_B_SPI_ID
- /// - BOARD_AT45_B_SPI_PINS
- /// - BOARD_AT45_B_SPI
- /// - BOARD_AT45_B_NPCS
- /// - BOARD_AT45_B_NPCS_PIN
- ///
- /// !AT26 Serial Flash
- /// - BOARD_AT26_A_SPI_BASE
- /// - BOARD_AT26_A_SPI_ID
- /// - BOARD_AT26_A_SPI_PINS
- /// - BOARD_AT26_A_SPI
- /// - BOARD_AT26_A_NPCS
- /// - BOARD_AT26_A_NPCS_PIN
- ///
- /// !SD SPI
- /// - BOARD_SD_SPI_BASE
- /// - BOARD_SD_SPI_ID
- /// - BOARD_SD_SPI_PINS
- /// - BOARD_SD_NPCS
- ///
- /// !EMAC
- /// - BOARD_EMAC_PIN_PWRDN
- /// - BOARD_EMAC_MODE_RMII
- /// - BOARD_EMAC_PINS
- /// - BOARD_EMAC_PIN_TEST
- /// - BOARD_EMAC_PIN_RMII
- /// - BOARD_EMAC_PINS_PHYAD
- /// - BOARD_EMAC_PIN_10BT
- /// - BOARD_EMAC_PIN_RPTR
- /// - BOARD_EMAC_RST_PINS
- /// - BOARD_EMAC_RUN_PINS
- /// Base address of SPI peripheral connected to the dataflash.
- #define BOARD_AT45_A_SPI_BASE AT91C_BASE_SPI0
- /// Identifier of SPI peripheral connected to the dataflash.
- #define BOARD_AT45_A_SPI_ID AT91C_ID_SPI0
- /// Pins of the SPI peripheral connected to the dataflash.
- #define BOARD_AT45_A_SPI_PINS PINS_SPI0
- /// Dataflahs SPI number.
- #define BOARD_AT45_A_SPI 0
- /// Chip select connected to the dataflash.
- #define BOARD_AT45_A_NPCS 1
- /// Chip select pin connected to the dataflash.
- #define BOARD_AT45_A_NPCS_PIN PIN_SPI0_NPCS1
- /// Base address of SPI peripheral connected to the dataflash.
- #define BOARD_AT45_B_SPI_BASE AT91C_BASE_SPI0
- /// Identifier of SPI peripheral connected to the dataflash.
- #define BOARD_AT45_B_SPI_ID AT91C_ID_SPI0
- /// Pins of the SPI peripheral connected to the dataflash.
- #define BOARD_AT45_B_SPI_PINS PINS_SPI0
- /// Dataflahs SPI number.
- #define BOARD_AT45_B_SPI 0
- /// Chip select connected to the dataflash.
- #define BOARD_AT45_B_NPCS 0
- /// Chip select pin connected to the dataflash.
- #define BOARD_AT45_B_NPCS_PIN PIN_SPI0_NPCS0
- /// Base address of SPI peripheral connected to the serialflash.
- #define BOARD_AT26_A_SPI_BASE AT91C_BASE_SPI0
- /// Identifier of SPI peripheral connected to the serialflash.
- #define BOARD_AT26_A_SPI_ID AT91C_ID_SPI0
- /// Pins of the SPI peripheral connected to the serialflash.
- #define BOARD_AT26_A_SPI_PINS PINS_SPI0
- /// Serialflash SPI number.
- #define BOARD_AT26_A_SPI 0
- /// Chip select connected to the serialflash.
- #define BOARD_AT26_A_NPCS 1
- /// Chip select pin connected to the serialflash.
- #define BOARD_AT26_A_NPCS_PIN PIN_SPI0_NPCS1
- /// Base address of the SPI peripheral connected to the SD card.
- #define BOARD_SD_SPI_BASE AT91C_BASE_SPI0
- /// Identifier of the SPI peripheral connected to the SD card.
- #define BOARD_SD_SPI_ID AT91C_ID_SPI0
- /// List of pins to configure to access the SD card
- #define BOARD_SD_SPI_PINS PINS_SPI0, PIN_SPI0_NPCS1
- /// NPCS number
- #define BOARD_SD_NPCS 1
- /// Board EMAC Power Down control pin
- #define BOARD_EMAC_PIN_PWRDN {(1<<18), AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- /// Board EMAC mode - RMII/MII ( 1/0 )
- #define BOARD_EMAC_MODE_RMII 0 // MII is the default mode
- /// The PIN list of PIO for EMAC
- #define BOARD_EMAC_PINS {0x3FFFF, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}
- /// The power up reset latch PIO for PHY
- #define BOARD_EMAC_PIN_TEST {(1<<15), AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- #define BOARD_EMAC_PIN_RMII {(1<<16), AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- // We force the address
- //(1<<5) PHY address 0, (1<<6) PHY address 1, (1<<13) PHY address 2,
- //(1<<14) PHY address 3, (1<<4) PHY address 4
- #define BOARD_EMAC_PINS_PHYAD {(1<<6)|(1<<13)|(1<<14)|(1<<4),
- AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT},
- {(1<<5), AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
- #define BOARD_EMAC_PIN_10BT {(1<<17), AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- #define BOARD_EMAC_PIN_RPTR {(1<< 7), AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT}
- /// The PIN Configure list for EMAC on power up reset (MII)
- #define BOARD_EMAC_RST_PINS BOARD_EMAC_PINS_PHYAD,
- BOARD_EMAC_PIN_TEST, BOARD_EMAC_PIN_RMII,
- BOARD_EMAC_PIN_10BT, BOARD_EMAC_PIN_RPTR
- /// The runtime pin configure list for EMAC
- #define BOARD_EMAC_RUN_PINS BOARD_EMAC_PINS
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- /// page "SAM7X-EK - Memories"
- /// This page lists definitions related to internal & external on-board memories.
- ///
- /// !Embedded Flash
- /// - BOARD_FLASH_EFC
- /// - BOARD_FLASH_IAP_ADDRESS
- /// Indicates chip has an EFC.
- #define BOARD_FLASH_EFC
- /// Address of the IAP function in ROM.
- #define BOARD_FLASH_IAP_ADDRESS 0x300008
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- /// page "SAM7X-EK - External components"
- /// This page lists the definitions related to external on-board components
- /// located in the board.h file for the SAM7X-EK.
- ///
- /// !ISO7816
- /// - PIN_SMARTCARD_CONNECT
- /// - PIN_ISO7816_RSTMC
- /// - PINS_ISO7816
- /// Smartcard detection pin
- #define PIN_SMARTCARD_CONNECT {1 << 5, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
- /// PIN used for reset the smartcard
- #define PIN_ISO7816_RSTMC {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- /// Pins used for connect the smartcard
- #define PINS_ISO7816 PIN_USART0_TXD, PIN_USART0_SCK, PIN_ISO7816_RSTMC
- //------------------------------------------------------------------------------
- #endif //#ifndef BOARD_H