Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.94 KB | None | 0 0
  1.  
  2. #ifndef BOARD_H
  3. #define BOARD_H
  4.  
  5. //------------------------------------------------------------------------------
  6. //         Headers
  7. //------------------------------------------------------------------------------
  8.  
  9. #if defined(at91sam7s32)
  10.     #include "at91sam7s32/chip.h"
  11.     #include "at91sam7s32/AT91SAM7S32.h"
  12. #elif defined(at91sam7s321)
  13.     #include "at91sam7s321/chip.h"
  14.     #include "at91sam7s321/AT91SAM7S321.h"
  15. #elif defined(at91sam7s64)
  16.     #include "at91sam7s64/chip.h"
  17.     #include "at91sam7s64/AT91SAM7S64.h"
  18. #elif defined(at91sam7s128)
  19.     #include "at91sam7s128/chip.h"
  20.     #include "at91sam7s128/AT91SAM7S128.h"
  21. #elif defined(at91sam7s256)
  22.     #include "at91sam7s256/chip.h"
  23.     #include "at91sam7s256/AT91SAM7S256.h"
  24. #elif defined(at91sam7s512)
  25.     #include "at91sam7s512/chip.h"
  26.     #include "at91sam7s512/AT91SAM7S512.h"
  27. #else
  28.     #error Board does not support the specified chip.
  29. #endif
  30.  
  31. //------------------------------------------------------------------------------
  32. //         Global Definitions
  33. //------------------------------------------------------------------------------
  34.  
  35. //------------------------------------------------------------------------------
  36. // Board
  37. //------------------------------------------------------------------------------
  38. /// String containing the name of the board.
  39. #define BOARD_NAME      "AT91SAM7S-EK"
  40. /// Board definition.
  41. #define at91sam7sek
  42. //------------------------------------------------------------------------------
  43.  
  44. //------------------------------------------------------------------------------
  45. // Clocks
  46. //------------------------------------------------------------------------------
  47. /// Frequency of the board main oscillator, in Hz.
  48. #define BOARD_MAINOSC           18432000
  49.  
  50. /// Master clock frequency (when using board_lowlevel.c), in Hz.
  51. #define BOARD_MCK               48000000
  52. //------------------------------------------------------------------------------
  53.  
  54.  
  55. //------------------------------------------------------------------------------
  56. // USB
  57. //------------------------------------------------------------------------------
  58. /// Indicates the chip has a UDP controller.
  59. #define BOARD_USB_UDP
  60.  
  61. /// Indicates the D+ pull-up is externally controlled.
  62. #define BOARD_USB_PULLUP_EXTERNAL
  63.  
  64. /// Number of endpoints in the USB controller.
  65. #define BOARD_USB_NUMENDPOINTS                  4
  66.  
  67. /// Returns the maximum packet size of the given endpoint.
  68. /// \param i  Endpoint number.
  69. /// \return Maximum packet size in bytes of endpoint.
  70. #define BOARD_USB_ENDPOINTS_MAXPACKETSIZE(i)    ((i == 0) ? 8 : 64)
  71.  
  72. /// Returns the number of FIFO banks for the given endpoint.
  73. /// \param i  Endpoint number.
  74. /// \return Number of FIFO banks for the endpoint.
  75. #define BOARD_USB_ENDPOINTS_BANKS(i)            (((i == 0) || (i == 3)) ? 1 : 2)
  76.  
  77. /// USB attributes configuration descriptor (bus or self powered, remote wakeup)
  78. #define BOARD_USB_BMATTRIBUTES                  USBConfigurationDescriptor_SELFPOWERED_NORWAKEUP
  79. //#define BOARD_USB_BMATTRIBUTES                  USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP
  80. //#define BOARD_USB_BMATTRIBUTES                  USBConfigurationDescriptor_SELFPOWERED_RWAKEUP
  81. //------------------------------------------------------------------------------
  82.  
  83. //------------------------------------------------------------------------------
  84. // Pins
  85. //------------------------------------------------------------------------------
  86. /// DBGU pins definition. Contains DRXD (PA9) and DTXD (PA10).
  87. //#define PINS_DBGU  {0x00000600, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  88.  
  89. //----------------------------------LEDs----------------------------------------
  90. /// LED #0 pin definition (PA0).
  91. #define PIN_LED_S1   {1 << 0, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  92. /// LED #1 pin definition (PA1).
  93. #define PIN_LED_S2   {1 << 1, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  94. /// LED #2 pin definition (PA2).
  95. #define PIN_LED_S3   {1 << 2, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  96. /// LED #3 pin definition (PA3).
  97. //#define PIN_LED_DS4   {1 << 3, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
  98. /// List of the four LED pin definitions (PA0, PA1, PA2 & PA3)
  99. #define PINS_LEDS    PIN_LED_S1, PIN_LED_S2, PIN_LED_S3 //, PIN_LED_DS4
  100.  
  101. //---------------------------------Button---------------------------------------
  102. /// Push button #0 definition (PA28).
  103. #define PIN_PUSHBUTTON_UP      {1 << 31, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
  104. /// Push button #1 definition (PA29).
  105. #define PIN_PUSHBUTTON_DOWN    {1 << 30, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
  106. /// Push button #2 definition (PA30).
  107. #define PIN_PUSHBUTTON_OK      {1 << 29, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
  108. /// Push button #3 definition (PA31).
  109. #define PIN_PUSHBUTTON_DISCARD {1 << 28, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
  110. /// List of all push button definitions (PA28, PA29, PA30 & PA31).
  111. #define PINS_PUSHBUTTONS       PIN_PUSHBUTTON_UP, PIN_PUSHBUTTON_DOWN, PIN_PUSHBUTTON_OK, PIN_PUSHBUTTON_DISCARD
  112. /// Push button #1 index.
  113. #define PUSHBUTTON_UP      0
  114. /// Push button #2 index.
  115. #define PUSHBUTTON_DOWN    1
  116. /// Push button #1 index.
  117. #define PUSHBUTTON_OK      2
  118. /// Push button #2 index.
  119. #define PUSHBUTTON_CANCEL  3
  120.  
  121. //---------------------------------USART0---------------------------------------
  122. /// USART0 TXD pin definition (PA5).
  123. #define PIN_USART0_RXD  {1 << 5, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  124. /// USART0 RXD pin definition (PA6).
  125. #define PIN_USART0_TXD  {1 << 6, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  126.  
  127. #define PINS_USART0  PIN_USART0_RXD,PIN_USART0_TXD
  128.  
  129. #define USART0_ADDR     AT91C_BASE_US0
  130. #define ID_USART0       AT91C_ID_US0
  131. //---------------------------------USART1---------------------------------------
  132. /// USART1 TXD pin definition (PA21).
  133. #define PIN_USART1_RXD  {1 << 21, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  134. /// USART1 RXD pin definition (PA22).
  135. #define PIN_USART1_TXD  {1 << 22, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  136.  
  137. #define PINS_USART1  PIN_USART1_RXD,PIN_USART1_TXD
  138.  
  139. #define USART1_ADDR     AT91C_BASE_US1
  140. #define ID_USART1       AT91C_ID_US1
  141. //----------------------------------SPI-----------------------------------------
  142. /// SPI MISO pin definition (PA12).
  143. #define PIN_SPI_MISO   {1 << 12, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_PULLUP}
  144. /// SPI MOSI pin definition (PA13).
  145. #define PIN_SPI_MOSI   {1 << 13, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  146. /// SPI SPCK pin definition (PA14).
  147. #define PIN_SPI_SPCK   {1 << 14, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  148. /// SPI pins definition. Contains MISO, MOSI & SPCK (PA12, PA13 & PA14).
  149. #define PINS_SPI       PIN_SPI_MISO, PIN_SPI_MOSI, PIN_SPI_SPCK
  150. /// SPI chip select 0 pin definition (PA11).
  151. #define PIN_SPI_NPCS0  {1 << 11, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  152.  
  153. //---------------------------------TWI------------------------------------------
  154. /// TWI pins definition. Contains TWD (PA3) and TWCK (PA4).
  155. #define PINS_TWI  {0x00000018, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
  156.  
  157. //---------------------------------USB-----------------------------------------
  158. /// USB VBus monitoring pin definition (PA15).
  159. #define PIN_USB_VBUS    {1 << 15, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
  160. /// USB pull-up control pin definition (PA16).
  161. #define PIN_USB_PULLUP  {1 << 16, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  162.  
  163. #define PINS_USB        PIN_USB_VBUS,PIN_USB_PULLUP
  164.  
  165. //------------------------------------------------------------------------------
  166. //                            My defenitions
  167. //---------------------------------TR24P----------------------------------------
  168. /// TR24P TX_enable pin definition.
  169. #define PIN_TXV_ANT          {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  170. /// TR24P RX_enable pin definition
  171. #define PIN_RXV_ANT          {1 << 8, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  172. /// TR24P reset
  173. #define PIN_TR24P_RES        {1 << 10, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  174. #define PIN_TR24P_PKT_FLAG   {1 << 24, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  175. #define PIN_TR24P_FIFO_FLAG  {1 << 20, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  176.  
  177. #define PINS_TR24P           PIN_TXV_ANT, PIN_RXV_ANT, PIN_TR24P_RES, PIN_TR24P_PKT_FLAG, PIN_TR24P_FIFO_FLAG
  178. //----------------------------------LCD-----------------------------------------
  179. #define PIN_LCD_RXD     PIN_USART0_RXD
  180. #define PIN_LCD_TXD     PIN_USART0_TXD
  181. #define PIN_LCD_RES     {1 << 17, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  182. #define PINS_LCD        PIN_LCD_RXD,PIN_LCD_TXD,PIN_LCD_RES
  183.  
  184. #define LCD_UART_BASE   USART0_ADDR
  185. //----------------------------------GPS-----------------------------------------
  186. #define PIN_GPS_RXD     PIN_USART1_RXD
  187. #define PIN_GPS_TXD     PIN_USART1_TXD
  188. #define PINS_GPS        PIN_GPS_RXD,PIN_GPS_TXD
  189.  
  190. #define PIN_STBY        {1 << 18, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  191. #define PIN_GPS_RES     {1 << 23, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  192.  
  193.  
  194. //----------------------------------MMA4574-------------------------------------
  195. #define PIN_ACSEL_BIT0  {1 << 9 , AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  196. #define PIN_ACSEL_DRDY  {1 << 19, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  197. #define PIN_ACSEL_INT2  {1 << 25, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  198. #define PIN_ACSEL_EA    {1 << 27, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
  199.  
  200. #define PINS_ACSEL      PIN_ACSEL_BIT0, PIN_ACSEL_DRDY, PIN_ACSEL_INT2, PIN_ACSEL_EA
  201. //------------------------------------------------------------------------------
  202.  
  203. #endif //#ifndef BOARD_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement