⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 board.h

📁 ATMEL arm7 USB 模拟串口
💻 H
字号:
//  ----------------------------------------------------------------------------
//          ATMEL Microcontroller Software Support  -  ROUSSET  -
//  ----------------------------------------------------------------------------
//  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.
//  ----------------------------------------------------------------------------
//  File Name           : Board.h
//  Object              : AT91SAM7 Evaluation Board Features Definition File.
//  
//  Creation            : JPP   01/Mar/2005
//  ---------------------------------------------------------------------------

#ifndef Board_h
#define Board_h

#if defined(AT91SAM7S32) || defined(AT91SAM7S64) || defined(AT91SAM7S128) || defined(AT91SAM7S256)|| defined(AT91SAM9265) || defined(AT91SAM7A3) || defined(AT91SAM7X128) || defined(AT91SAM7X256) 
#else
#ERROR !!!!
#endif

#define true  (1==1)
#define false (0==1)


#ifndef ADS_COMPIL
  #define __inline inline
  #define __packed
#endif

#ifdef AT91SAM7X128
#include "AT91SAM7X128.h"
#include "lib_AT91SAM7X128.h"
#endif
#ifdef AT91SAM7X256
#include "AT91SAM7X256.h"
#include "lib_AT91SAM7X256.h"
#endif
#ifdef AT91SAM7A3
#include "AT91SAM7A3.h"
#include "lib_AT91SAM7A3.h"
#endif
#ifdef AT91SAM7S32
#include "AT91SAM7S32.h"
#include "lib_AT91SAM7S32.h"
#endif
#ifdef AT91SAM7S64
#include "AT91SAM7S64.h"
#include "lib_AT91SAM7S64.h"
#endif
#ifdef AT91SAM7S128
#include "AT91SAM7S128.h"
#include "lib_AT91SAM7S128.h"
#endif
#ifdef AT91SAM7S256
#include "AT91SAM7S256.h"
#include "lib_AT91SAM7S256.h"
#endif
#ifdef AT91SAM9261
#include "AT91SAM9261.h"
#include "lib_AT91SAM9261.h"
#endif
#ifdef AT91SAM9265
#include "AT91SAM9265.h"
#include "lib_AT91SAM9265.h"
#endif


#ifdef ADS_COMPIL
typedef unsigned char  u_char;
typedef unsigned char  uint8_t;
typedef unsigned short u_short;
typedef unsigned int   uint;
#endif


/*-----------------------*/
/* Flash size Definition */
/*-----------------------*/
#ifdef AT91SAM9265
  /* jcb test */
  #define  FLASH_PAGE_SIZE_BYTE  128
  #define  FLASH_PAGE_NB         512

  #define  FLASH_LOCK_BITS_SECTOR 16
  #define  FLASH_SECTOR_PAGE      64
  #define  FLASH_LOCK_BITS        16
#endif

#ifdef AT91SAM7S256
  /* 256 Kbytes of Internal High-speed Flash, Organized in 1024 Pages of 256 Bytes */
  #define  FLASH_PAGE_SIZE_BYTE  256
  #define  FLASH_PAGE_NB        1024

  #define  FLASH_LOCK_BITS_SECTOR 16
  #define  FLASH_SECTOR_PAGE      64
  #define  FLASH_LOCK_BITS        16    /* 16 lock bits, each protecting 16 sectors of 32 pages*/
#endif

#ifdef AT91SAM7S128
  /* 128 Kbytes of Internal High-speed Flash, Organized in 512 Pages of 256 Bytes */
  #define  FLASH_PAGE_SIZE_BYTE  256
  #define  FLASH_PAGE_NB         512

  #define  FLASH_LOCK_BITS_SECTOR 16
  #define  FLASH_SECTOR_PAGE      64
  #define  FLASH_LOCK_BITS         8    /* 16 lock bits, each protecting 16 sectors of 32 pages*/
#endif

#ifdef AT91SAM7S64
  /* 64 Kbytes of Internal High-speed Flash, Organized in 512 Pages of 128 Bytes */
  #define  FLASH_PAGE_SIZE_BYTE  128
  #define  FLASH_PAGE_NB         512

  #define  FLASH_LOCK_BITS_SECTOR 16
  #define  FLASH_SECTOR_PAGE      32
  #define  FLASH_LOCK_BITS        16    /* 16 lock bits, each protecting 16 sectors of 32 pages*/
#endif

#ifdef AT91SAM7S32
  #define  FLASH_PAGE_SIZE_BYTE  128
  #define  FLASH_PAGE_NB         256

  #define  FLASH_LOCK_BITS_SECTOR 16
  #define  FLASH_SECTOR_PAGE      32
  #define  FLASH_LOCK_BITS        16    /* 16 lock bits, each protecting 16 sectors of 32 pages*/
#endif

#ifdef AT91SAM7A3
  #define  FLASH_PAGE_SIZE_BYTE    256
  #define  FLASH_PAGE_NB          1024
#endif

#ifdef AT91SAM7X256
  #define  FLASH_PAGE_SIZE_BYTE    256
  #define  FLASH_PAGE_NB          1024
#endif

#ifdef AT91SAM7X128
  #define  FLASH_PAGE_SIZE_BYTE    256
  #define  FLASH_PAGE_NB           512
#endif

#define  FLASH_PAGE_SIZE_LONG FLASH_PAGE_SIZE_BYTE/4        /* FLASH_PAGE_SIZE_BYTE / 4 */
#define  FLASH_BASE_ADDRESS   0x00100000

#ifndef AT91SAM9265
/*-------------------------------*/
/* SAM7Board Memories Definition */
/*-------------------------------*/
// The AT91SAM7S64 embeds a 16-Kbyte SRAM bank, and 64 K-Byte Flash

#define  INT_SARM         0x00200000
#define  INT_SARM_REMAP   0x00000000
#define  INT_FLASH        0x00000000
#if defined(AT91SAM7S32) || defined(AT91SAM7S64) || defined(AT91SAM7S128) || defined(AT91SAM7S256)
#define  INT_FLASH_REMAP  0x01000000
#endif
#ifdef AT91SAM7A3
#define  INT_FLASH_REMAP  0x00100000
#endif
#endif

/*-----------------*/
/* Leds Definition */
/*-----------------*/
/*                                 PIO   Flash    PA    PB   PIN */
#ifdef AT91SAM7A3
#define LED1            (1<<20) /* PA20 */
#define LED2            (1<<21) /* PA21 */
#define LED3            (1<<24) /* PA24 */
#define LED4            (1<<25) /* PA25 */
#else
#if defined(AT91SAM7X128) || defined(AT91SAM7X256)
#define LED1            (1<<19) /* PB19 */
#define LED2            (1<<20) /* PB20 */
#define LED3            (1<<21) /* PB21 */
#define LED4            (1<<22) /* PB22 */
#else
#define LED1            (1<<0)  /* PA0 / PGMEN0 & PWM0 TIOA0  48 */
#define LED2            (1<<1)  /* PA1 / PGMEN1 & PWM1 TIOB0  47 */
#define LED3            (1<<2)  /* PA2          & PWM2 SCK0   44 */
#define LED4            (1<<3)  /* PA3          & TWD  NPCS3  43 */
#endif
#endif
#define NB_LEB          4

#define LED_MASK        (LED1|LED2|LED3|LED4)

/*-------------------------*/
/* Push Buttons Definition */
/*-------------------------*/
/*                                 PIO    Flash    PA    PB   PIN  */
#ifdef AT91SAM7A3
#define SW1_MASK        (1<<12) /* */
#define SW2_MASK        (1<<13) /* */
#define SW3_MASK        (1<<8)  /* */
#define SW4_MASK        (1<<9)  /* */
#define SW5_MASK        (1<<14) /* */
#define SW_MASK         (SW1_MASK|SW2_MASK|SW3_MASK|SW4_MASK|SW5_MASK)
#else
#if defined(AT91SAM7X128) || defined(AT91SAM7X256)
#define SW1_MASK        (1<<21) /* PA21 */
#define SW2_MASK        (1<<22) /* PA22 */
#define SW3_MASK        (1<<23) /* PA23 */
#define SW4_MASK        (1<<24) /* PA24 */
#define SW_MASK         (SW1_MASK|SW2_MASK|SW3_MASK|SW4_MASK)
#else
#define SW1_MASK        (1<<19) /* PA19 / PGMD7  & RK   FIQ     13 */
#define SW2_MASK        (1<<20) /* PA20 / PGMD8  & RF   IRQ0    16 */
#define SW3_MASK        (1<<15) /* PA15 / PGM3   & TF   TIOA1   20 */
#define SW4_MASK        (1<<14) /* PA14 / PGMD2  & SPCK PWM3    21 */
#define SW_MASK         ( SW1_MASK | SW2_MASK | SW3_MASK | SW4_MASK )
#endif
#endif


#ifdef AT91SAM7A3
#define SW1   (1<<12) // PB12 Left Button
#define SW2   (1<<13) // PB13 Rigth Button
#define SW3   (1<<8)  // PB8  Up Button
#define SW4   (1<<9)  // PB9  Down Button
#define SW5   (1<<14) // PB14 Push Button
#else
#if defined(AT91SAM7X128) || defined(AT91SAM7X256)
#define SW1 	(1<<21)	// PA21
#define SW2 	(1<<22)	// PA22
#define SW3 	(1<<23)	// PA23
#define SW4 	(1<<24)	// PA24  
#else
#define SW1   (1<<19) // PA19
#define SW2   (1<<20) // PA20
#define SW3   (1<<15) // PA15
#define SW4   (1<<14) // PA14
#endif
#endif

/*------------------*/
/* USART Definition */
/*------------------*/
/* SUB-D 9 points J3 DBGU*/
#ifndef AT91SAM7A3
#define DBGU_RXD      AT91C_PA9_DRXD    /* JP11 must be close */
#define DBGU_TXD      AT91C_PA10_DTXD   /* JP12 must be close */

#define US_RXD_PIN    AT91C_PA5_RXD0    /* JP9 must be close */
#define US_TXD_PIN    AT91C_PA6_TXD0    /* JP7 must be close */
#define US_RTS_PIN    AT91C_PA7_RTS0    /* JP8 must be close */
#define US_CTS_PIN    AT91C_PA8_CTS0    /* JP6 must be close */
#else
#define DBGU_RXD      AT91C_PA30_DRXD   /*  */
#define DBGU_TXD      AT91C_PA29_DTXD   /*  */

#define US_RXD_PIN    AT91C_PA2_RXD0    /* */
#define US_TXD_PIN    AT91C_PA3_TXD0    /* */
#define US_RTS_PIN    AT91C_PA5_RTS0    /* */
#define US_CTS_PIN    AT91C_PA6_CTS0    /* */
#endif

#ifdef AT91SAM7A3
/*------------------*/
/* CAN Definition */
/*------------------*/
#define AT91B_CAN_TRANSCEIVER_RS  (1<<23)    /* PA23 */

/*------------------*/
/* LIN Definition */
/*------------------*/
#define AT91B_LIN_BAUDRATE  1200

/*------------------*/
/* ADC Definition */
/*------------------*/
#define AT91B_ADC_ADVREF  3000 // in mV : 3 Volts
#define AT91B_ADC_TIME_RC 4000000
#endif

/*--------------*/
/* Master Clock */
/*--------------*/

#define EXT_OC          18432000   // Exetrnal ocilator MAINCK

#ifdef AT91SAM9265
#define AT91C_MASTER_CLOCK    33000000
#endif
#if defined(AT91SAM7S32) || defined(AT91SAM7S64) || defined(AT91SAM7S128) || defined(AT91SAM7S256) || defined(AT91SAM7X128) || defined(AT91SAM7X256)
#define AT91C_MASTER_CLOCK    47923200   // MCK (PLLRC div by 2)
#endif
#ifdef AT91SAM7A3
#define AT91C_MASTER_CLOCK    48000000   // MCK (PLLRC div by 2)
#endif

#define MCKKHz          (AT91C_MASTER_CLOCK/1000)

#endif /* Board_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -