?? board.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 + -