#ifndef __LPC_SYSCONTROL_H #define __LPC_SYSCONTROL_H /************************************************************************* * * Used with ICCARM and AARM. * * (c) Copyright IAR Systems 2003 * * File name : LPC_SysControl.h * Description : * * History : * 1. Data: August 17, 2004 * Author: Shawn Zhang * Description: Create the basic function * * 2. Data : Oct 7, 2004 * Author : Stanimir Bonev * Description : Modify some function and interface * * $Revision: 1.1 $ **************************************************************************/ #include /* Fosc range: 10MHz ~ 25MHz */ #define Fosc_MIN 10000000L #define Fosc_MAX 25000000L /* Fcclk range: 10MHz ~ MCU allowed frequency */ #define Fcclk_MIN 10000000L #define Fcclk_MAX 60000000L /* Fcco range: 156MHz ~ 320MHz */ #define Fcco_MIN 156000000L #define Fcco_MAX 320000000L #define PLLFEED_DATA1 0xAA #define PLLFEED_DATA2 0x55 /* PLL PLLCON register bit descriptions */ #define PLLCON_ENABLE_BIT 0 #define PLLCON_CONNECT_BIT 1 /* PLL PLLSTAT register bit descriptions */ #define PLLSTAT_ENABLE_BIT 8 #define PLLSTAT_CONNECT_BIT 9 #define PLLSTAT_LOCK_BIT 10 /* PM Peripheral Type */ #define PC_TIMER0 0x2 #define PC_TIMER1 0x4 #define PC_UART0 0x8 #define PC_UART1 0x10 #define PC_PWM0 0x20 #define PC_I2C 0x80 #define PC_SPI0 0x100 #define PC_RTC 0x200 // External interrupt typedef enum { EXTINT0 = 0, EXTINT1, EXTINT2 } LPC_SysControl_ExtInt_Chanel_t; // Memory Mapping Control Mode typedef enum { BOOT_LOADER = 0, USER_FLASH, USER_RAM } LPC_SysControl_RemapMode_t; // Memory Accelerator Module Operating Mode typedef enum { VPBDIV4 = 0, // Pclk = 1/4 Pcclk VPBDIV1, // Pclk = Pcclk VPBDIV2 // Pclk = 1/2 Pcclk } LPC_SysControl_VPBDiv_t; // Memory Accelerator Module Operating Mode typedef enum { MAM_PARTIALLY = 1, MAM_FULL } LPC_SysControl_MAMMode_t; // Power Manager Mode typedef enum { PM_STANDARD = 0, PM_IDLE, PM_POWERDOWN } LPC_SysControl_PMMode_t; // External interrupt trigger type typedef enum { LEVEL_LOW = 0, LEVEL_HIGH, EDGE_RISING, EDGE_FALLING } LPC_SysControl_EXTINTTriggerType_t; // MAM fetch cycles // SysClock<20MHz: MAMTIM can be 001 // 20MHz