Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef BOARD_H
- #define BOARD_H
- //------------------------------------------------------------------------------
- // Headers
- //------------------------------------------------------------------------------
- #if defined(at91sam7s32)
- #include "at91sam7s32/chip.h"
- #include "at91sam7s32/AT91SAM7S32.h"
- #elif defined(at91sam7s321)
- #include "at91sam7s321/chip.h"
- #include "at91sam7s321/AT91SAM7S321.h"
- #elif defined(at91sam7s64)
- #include "at91sam7s64/chip.h"
- #include "at91sam7s64/AT91SAM7S64.h"
- #elif defined(at91sam7s128)
- #include "at91sam7s128/chip.h"
- #include "at91sam7s128/AT91SAM7S128.h"
- #elif defined(at91sam7s256)
- #include "at91sam7s256/chip.h"
- #include "at91sam7s256/AT91SAM7S256.h"
- #elif defined(at91sam7s512)
- #include "at91sam7s512/chip.h"
- #include "at91sam7s512/AT91SAM7S512.h"
- #else
- #error Board does not support the specified chip.
- #endif
- //------------------------------------------------------------------------------
- // Global Definitions
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- // Board
- //------------------------------------------------------------------------------
- /// String containing the name of the board.
- #define BOARD_NAME "AT91SAM7S-EK"
- /// Board definition.
- #define at91sam7sek
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- // Clocks
- //------------------------------------------------------------------------------
- /// Frequency of the board main oscillator, in Hz.
- #define BOARD_MAINOSC 18432000
- /// Master clock frequency (when using board_lowlevel.c), in Hz.
- #define BOARD_MCK 48000000
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- // USB
- //------------------------------------------------------------------------------
- /// Indicates the chip has a UDP controller.
- #define BOARD_USB_UDP
- /// Indicates the D+ pull-up is externally controlled.
- #define BOARD_USB_PULLUP_EXTERNAL
- /// Number of endpoints in the USB controller.
- #define BOARD_USB_NUMENDPOINTS 4
- /// Returns the maximum packet size of the given endpoint.
- /// \param i Endpoint number.
- /// \return Maximum packet size in bytes of endpoint.
- #define BOARD_USB_ENDPOINTS_MAXPACKETSIZE(i) ((i == 0) ? 8 : 64)
- /// Returns the number of FIFO banks for the given endpoint.
- /// \param i Endpoint number.
- /// \return Number of FIFO banks for the 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_SELFPOWERED_NORWAKEUP
- //#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP
- //#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_SELFPOWERED_RWAKEUP
- //------------------------------------------------------------------------------
- //------------------------------------------------------------------------------
- // Pins
- //------------------------------------------------------------------------------
- /// DBGU pins definition. Contains DRXD (PA9) and DTXD (PA10).
- //#define PINS_DBGU {0x00000600, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- //----------------------------------LEDs----------------------------------------
- /// LED #0 pin definition (PA0).
- #define PIN_LED_S1 {1 << 0, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- /// LED #1 pin definition (PA1).
- #define PIN_LED_S2 {1 << 1, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- /// LED #2 pin definition (PA2).
- #define PIN_LED_S3 {1 << 2, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- /// LED #3 pin definition (PA3).
- //#define PIN_LED_DS4 {1 << 3, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
- /// List of the four LED pin definitions (PA0, PA1, PA2 & PA3)
- #define PINS_LEDS PIN_LED_S1, PIN_LED_S2, PIN_LED_S3 //, PIN_LED_DS4
- //---------------------------------Button---------------------------------------
- /// Push button #0 definition (PA28).
- #define PIN_PUSHBUTTON_UP {1 << 31, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// Push button #1 definition (PA29).
- #define PIN_PUSHBUTTON_DOWN {1 << 30, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// Push button #2 definition (PA30).
- #define PIN_PUSHBUTTON_OK {1 << 29, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// Push button #3 definition (PA31).
- #define PIN_PUSHBUTTON_DISCARD {1 << 28, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
- /// List of all push button definitions (PA28, PA29, PA30 & PA31).
- #define PINS_PUSHBUTTONS PIN_PUSHBUTTON_UP, PIN_PUSHBUTTON_DOWN, PIN_PUSHBUTTON_OK, PIN_PUSHBUTTON_DISCARD
- /// Push button #1 index.
- #define PUSHBUTTON_UP 0
- /// Push button #2 index.
- #define PUSHBUTTON_DOWN 1
- /// Push button #1 index.
- #define PUSHBUTTON_OK 2
- /// Push button #2 index.
- #define PUSHBUTTON_CANCEL 3
- //---------------------------------USART0---------------------------------------
- /// USART0 TXD pin definition (PA5).
- #define PIN_USART0_RXD {1 << 5, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// USART0 RXD pin definition (PA6).
- #define PIN_USART0_TXD {1 << 6, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- #define PINS_USART0 PIN_USART0_RXD,PIN_USART0_TXD
- #define USART0_ADDR AT91C_BASE_US0
- #define ID_USART0 AT91C_ID_US0
- //---------------------------------USART1---------------------------------------
- /// USART1 TXD pin definition (PA21).
- #define PIN_USART1_RXD {1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// USART1 RXD pin definition (PA22).
- #define PIN_USART1_TXD {1 << 22, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- #define PINS_USART1 PIN_USART1_RXD,PIN_USART1_TXD
- #define USART1_ADDR AT91C_BASE_US1
- #define ID_USART1 AT91C_ID_US1
- //----------------------------------SPI-----------------------------------------
- /// SPI MISO pin definition (PA12).
- #define PIN_SPI_MISO {1 << 12, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}
- /// SPI MOSI pin definition (PA13).
- #define PIN_SPI_MOSI {1 << 13, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// SPI SPCK pin definition (PA14).
- #define PIN_SPI_SPCK {1 << 14, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- /// SPI pins definition. Contains MISO, MOSI & SPCK (PA12, PA13 & PA14).
- #define PINS_SPI PIN_SPI_MISO, PIN_SPI_MOSI, PIN_SPI_SPCK
- /// SPI chip select 0 pin definition (PA11).
- #define PIN_SPI_NPCS0 {1 << 11, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- //---------------------------------TWI------------------------------------------
- /// TWI pins definition. Contains TWD (PA3) and TWCK (PA4).
- #define PINS_TWI {0x00000018, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
- //---------------------------------USB-----------------------------------------
- /// USB VBus monitoring pin definition (PA15).
- #define PIN_USB_VBUS {1 << 15, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
- /// USB pull-up control pin definition (PA16).
- #define PIN_USB_PULLUP {1 << 16, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PINS_USB PIN_USB_VBUS,PIN_USB_PULLUP
- //------------------------------------------------------------------------------
- // My defenitions
- //---------------------------------TR24P----------------------------------------
- /// TR24P TX_enable pin definition.
- #define PIN_TXV_ANT {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- /// TR24P RX_enable pin definition
- #define PIN_RXV_ANT {1 << 8, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- /// TR24P reset
- #define PIN_TR24P_RES {1 << 10, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PIN_TR24P_PKT_FLAG {1 << 24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PIN_TR24P_FIFO_FLAG {1 << 20, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PINS_TR24P PIN_TXV_ANT, PIN_RXV_ANT, PIN_TR24P_RES, PIN_TR24P_PKT_FLAG, PIN_TR24P_FIFO_FLAG
- //----------------------------------LCD-----------------------------------------
- #define PIN_LCD_RXD PIN_USART0_RXD
- #define PIN_LCD_TXD PIN_USART0_TXD
- #define PIN_LCD_RES {1 << 17, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PINS_LCD PIN_LCD_RXD,PIN_LCD_TXD,PIN_LCD_RES
- #define LCD_UART_BASE USART0_ADDR
- //----------------------------------GPS-----------------------------------------
- #define PIN_GPS_RXD PIN_USART1_RXD
- #define PIN_GPS_TXD PIN_USART1_TXD
- #define PINS_GPS PIN_GPS_RXD,PIN_GPS_TXD
- #define PIN_STBY {1 << 18, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PIN_GPS_RES {1 << 23, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- //----------------------------------MMA4574-------------------------------------
- #define PIN_ACSEL_BIT0 {1 << 9 , AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PIN_ACSEL_DRDY {1 << 19, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PIN_ACSEL_INT2 {1 << 25, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PIN_ACSEL_EA {1 << 27, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
- #define PINS_ACSEL PIN_ACSEL_BIT0, PIN_ACSEL_DRDY, PIN_ACSEL_INT2, PIN_ACSEL_EA
- //------------------------------------------------------------------------------
- #endif //#ifndef BOARD_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement