lpc2194def.h

00001 #ifndef LPC2194DEF_H
00002 #define LPC2194DEF_H
00003 
00004 #define IDLE PCON = 1;
00005 
00006 /* Processor specific defines for the LPC2194 cpu */
00007 
00008 
00009 /******************************************/
00010 // LPC2194/01 reserved bit mask macros.
00011 // Use & with these to get rid of reserved bits.
00012 /******************************************/
00013 #define PCONP_RBM 0x21FFBE
00014 
00015 
00016 /******************************************/
00017 // LPC2194/01 Registers missing from Keil header file
00018 /******************************************/
00019 //Timer 0/1 Count Control Register
00020 #define T0CTCR  (*((volatile unsigned long *) 0xE0004070))
00021 #define T1CTCR  (*((volatile unsigned long *) 0xE0008070))
00022 
00023 //UART 0/1 Fractional Divider Register
00024 #define U0FDR   (*((volatile unsigned long *) 0xE000C028))
00025 #define U1FDR   (*((volatile unsigned long *) 0xE0010028))
00026 
00027 //UART 0/1 Autobaud Register
00028 #define U0ACR   (*((volatile unsigned long *) 0xE000C020))
00029 #define U1ACR   (*((volatile unsigned long *) 0xE0010020))
00030 
00031 //UART 0/1 Transmitter Enable Register
00032 #define U0TER   (*((volatile unsigned long *) 0xE000C030))
00033 #define U1TER   (*((volatile unsigned long *) 0xE0010030))
00034 
00035 //UART 0/1 Interrupt Enable Register
00036 //Keil's version of this is a char, but should be a 16-bit word.
00037 #define U0IER_01          (*((volatile unsigned short int *) 0xE000C004))
00038 #define U1IER_01          (*((volatile unsigned short int *) 0xE0010004))
00039 
00040 //System control and status flags register (used for enabling fast GPIO)
00041 #define SCS     (*((volatile unsigned long *)  0xE01FC1A0))
00042 
00043 //Fast GPIO registers
00044 
00045   //32-bit (word) fast GPIO direction control registers
00046 #define FIO0DIR     (*((volatile unsigned long *)  0x3FFFC000))
00047 #define FIO1DIR     (*((volatile unsigned long *)  0x3FFFC020))
00048 
00049   //16-bit (half-word) fast GPIO direction control registers
00050 #define FIO0DIRL     (*((volatile unsigned short *)  0x3FFFC000))
00051 #define FIO0DIRU     (*((volatile unsigned short *)  0x3FFFC002))
00052 
00053 #define FIO1DIRL     (*((volatile unsigned short *)  0x3FFFC020))
00054 #define FIO1DIRU     (*((volatile unsigned short *)  0x3FFFC022))
00055 
00056   //8-bit (byte) fast GPIO direction control registers
00057 #define FIO0DIR0     (*((volatile unsigned char *)  0x3FFFC000))
00058 #define FIO0DIR1    (*((volatile unsigned char *)  0x3FFFC001))
00059 #define FIO0DIR2     (*((volatile unsigned char *)  0x3FFFC002))
00060 #define FIO0DIR3    (*((volatile unsigned char *)  0x3FFFC003))
00061 
00062 #define FIO1DIR0     (*((volatile unsigned char *)  0x3FFFC020))
00063 #define FIO1DIR1    (*((volatile unsigned char *)  0x3FFFC021))
00064 #define FIO1DIR2     (*((volatile unsigned char *)  0x3FFFC022))
00065 #define FIO1DIR3    (*((volatile unsigned char *)  0x3FFFC023))
00066 
00067   //32-bit (word) fast GPIO mask registers
00068 #define FIO0MASK     (*((volatile unsigned long *)  0x3FFFC010))
00069 #define FIO1MASK     (*((volatile unsigned long *)  0x3FFFC030))
00070 
00071   //16-bit (half-word) fast GPIO mask registers
00072 #define FIO0MASKL     (*((volatile unsigned short *)  0x3FFFC010))
00073 #define FIO0MASKU     (*((volatile unsigned short *)  0x3FFFC012))
00074 
00075 #define FIO1MASKL     (*((volatile unsigned short *)  0x3FFFC030))
00076 #define FIO1MASKU     (*((volatile unsigned short *)  0x3FFFC032))
00077 
00078   //8-bit (byte) fast GPIO mask registers
00079 #define FIO0MASK0     (*((volatile unsigned char *)  0x3FFFC010))
00080 #define FIO0MASK1     (*((volatile unsigned char *)  0x3FFFC011))
00081 #define FIO0MASK2     (*((volatile unsigned char *)  0x3FFFC012))
00082 #define FIO0MASK3     (*((volatile unsigned char *)  0x3FFFC013))
00083 
00084 #define FIO1MASK0     (*((volatile unsigned char *)  0x3FFFC030))
00085 #define FIO1MASK1     (*((volatile unsigned char *)  0x3FFFC031))
00086 #define FIO1MASK2     (*((volatile unsigned char *)  0x3FFFC032))
00087 #define FIO1MASK3     (*((volatile unsigned char *)  0x3FFFC033))
00088 
00089   //32-bit (word) fast GPIO pin value registers
00090 #define FIO0PIN     (*((volatile unsigned long *)  0x3FFFC014))
00091 #define FIO1PIN     (*((volatile unsigned long *)  0x3FFFC034))
00092 
00093   //16-bit (half-word) fast GPIO pin value registers
00094 #define FIO0PINL     (*((volatile unsigned short *)  0x3FFFC014))
00095 #define FIO0PINU     (*((volatile unsigned short *)  0x3FFFC016))
00096 
00097 #define FIO1PINL     (*((volatile unsigned short *)  0x3FFFC034))
00098 #define FIO1PINU     (*((volatile unsigned short *)  0x3FFFC036))
00099 
00100   //8-bit (byte) fast GPIO pin value registers
00101 #define FIO0PIN0     (*((volatile unsigned char *)  0x3FFFC014))
00102 #define FIO0PIN1     (*((volatile unsigned char *)  0x3FFFC015))
00103 #define FIO0PIN2     (*((volatile unsigned char *)  0x3FFFC016))
00104 #define FIO0PIN3     (*((volatile unsigned char *)  0x3FFFC017))
00105 
00106 #define FIO1PIN0     (*((volatile unsigned char *)  0x3FFFC034))
00107 #define FIO1PIN1     (*((volatile unsigned char *)  0x3FFFC035))
00108 #define FIO1PIN2     (*((volatile unsigned char *)  0x3FFFC036))
00109 #define FIO1PIN3     (*((volatile unsigned char *)  0x3FFFC037))
00110 
00111   //32-bit (word) fast GPIO pin set registers
00112 #define FIO0SET     (*((volatile unsigned long *)  0x3FFFC018))
00113 #define FIO1SET     (*((volatile unsigned long *)  0x3FFFC038))
00114 
00115   //16-bit (half-word) fast GPIO pin set registers
00116 #define FIO0SETL     (*((volatile unsigned short *)  0x3FFFC018))
00117 #define FIO0SETU     (*((volatile unsigned short *)  0x3FFFC01A))
00118 
00119 #define FIO1SETL     (*((volatile unsigned short *)  0x3FFFC038))
00120 #define FIO1SETU     (*((volatile unsigned short *)  0x3FFFC03A))
00121 
00122   //8-bit (byte) fast GPIO pin set registers
00123 #define FIO0SET0     (*((volatile unsigned char *)  0x3FFFC018))
00124 #define FIO0SET1     (*((volatile unsigned char *)  0x3FFFC019))
00125 #define FIO0SET2     (*((volatile unsigned char *)  0x3FFFC01A))
00126 #define FIO0SET3     (*((volatile unsigned char *)  0x3FFFC01B))
00127 
00128 #define FIO1SET0     (*((volatile unsigned char *)  0x3FFFC038))
00129 #define FIO1SET1     (*((volatile unsigned char *)  0x3FFFC039))
00130 #define FIO1SET2     (*((volatile unsigned char *)  0x3FFFC03A))
00131 #define FIO1SET3     (*((volatile unsigned char *)  0x3FFFC03B))
00132 
00133   //32-bit (word) fast GPIO pin clear registers
00134 #define FIO0CLR     (*((volatile unsigned long *)  0x3FFFC01C))
00135 #define FIO1CLR     (*((volatile unsigned long *)  0x3FFFC03C))
00136 
00137   //16-bit (half-word) fast GPIO pin clear registers
00138 #define FIO0CLRL     (*((volatile unsigned short *)  0x3FFFC01C))
00139 #define FIO0CLRU     (*((volatile unsigned short *)  0x3FFFC01E))
00140 
00141 #define FIO1CLRL     (*((volatile unsigned short *)  0x3FFFC03C))
00142 #define FIO1CLRU    (*((volatile unsigned short *)  0x3FFFC03E))
00143 
00144   //8-bit (byte) fast GPIO pin clear registers
00145 #define FIO0CLR0     (*((volatile unsigned char *)  0x3FFFC01C))
00146 #define FIO0CLR1     (*((volatile unsigned char *)  0x3FFFC01D))
00147 #define FIO0CLR2     (*((volatile unsigned char *)  0x3FFFC01E))
00148 #define FIO0CLR3     (*((volatile unsigned char *)  0x3FFFC01F))
00149 
00150 #define FIO1CLR0     (*((volatile unsigned char *)  0x3FFFC03C))
00151 #define FIO1CLR1     (*((volatile unsigned char *)  0x3FFFC03D))
00152 #define FIO1CLR2     (*((volatile unsigned char *)  0x3FFFC03E))
00153 #define FIO1CLR3     (*((volatile unsigned char *)  0x3FFFC03F))
00154 
00155   //Analog to Digital Converter (ADC)
00156 #define ADINTEN       (*((volatile unsigned long *)  0xE003400C))
00157 #define ADGDR         (*((volatile unsigned long *)  0xE0034004))
00158 #define ADDR0         (*((volatile unsigned long *)  0xE0034010))
00159 #define ADDR1         (*((volatile unsigned long *)  0xE0034014))
00160 #define ADDR2         (*((volatile unsigned long *)  0xE0034018))
00161 #define ADDR3         (*((volatile unsigned long *)  0xE003401C))
00162 
00163 
00164 
00165 
00166 
00167 /* SSP Controller (SPI1) */
00168 
00169 #define SSPCR0         (*((volatile unsigned long *) 0xE005C000))
00170 #define SSPCR1         (*((volatile unsigned long *) 0xE005C004))
00171 #define SSPDR          (*((volatile unsigned long *) 0xE005C008))
00172 #define SSPSR          (*((volatile unsigned long *) 0xE005C00C))
00173 #define SSPCPSR        (*((volatile unsigned long *) 0xE005C010))
00174 #define SSPIMSC        (*((volatile unsigned long *) 0xE005C014))
00175 #define SSPRIS         (*((volatile unsigned long *) 0xE005C018))
00176 #define SSPMIS         (*((volatile unsigned long *) 0xE005C01C))
00177 #define SSPICR         (*((volatile unsigned long *) 0xE005C020))
00178 
00179 /***************************************************************************
00180  **
00181  **  VIC Interrupt channels ----  Copied from EWARM iolpc2194.h
00182  **
00183  ***************************************************************************/
00184 #define VIC_WDT          0  /* Watchdog                           */
00185 #define VIC_SW           1  /* Software interrupts                */
00186 #define VIC_DEBUGRX      2  /* Embedded ICE, DbgCommRx            */
00187 #define VIC_DEBUGTX      3  /* Embedded ICE, DbgCommTx            */
00188 #define VIC_TIMER0       4  /* Timer 0 (Match 0-3 Capture 0-3)    */
00189 #define VIC_TIMER1       5  /* Timer 1 (Match 0-3 Capture 0-3)    */
00190 #define VIC_UART0        6  /* UART 0  (RLS, THRE, RDA, CTI)      */
00191 #define VIC_UART1        7  /* UART 1  (RLS, THRE, RDA, CTI, MSI) */
00192 #define VIC_PWM0         8  /* PWM 0   (Match 0-6 Capture 0-3)    */
00193 #define VIC_I2C          9  /* I2C     (SI)                       */
00194 #define VIC_SPI0        10  /* SPI0    (SPIF, MODF)               */
00195 #define VIC_SPI1        11  /* SPI1    (SPIF, MODF)               */
00196 #define VIC_PLL         12  /* PLL lock (PLOCK)                   */
00197 #define VIC_RTC         13  /* RTC     (RTCCIF, RTCALF)           */
00198 #define VIC_EINT0       14  /* External interrupt 0 (EINT0)       */
00199 #define VIC_EINT1       15  /* External interrupt 1 (EINT1)       */
00200 #define VIC_EINT2       16  /* External interrupt 2 (EINT2)       */
00201 #define VIC_EINT3       17  /* External interrupt 3 (EINT3)       */
00202 #define VIC_AD          18  /* Analog to digital converter        */
00203 #define VIC_CAN_AF      19  /* CAN and Acceptance Filter          */
00204 #define VIC_CAN1TX      20  /* CAN1 Tx                            */
00205 #define VIC_CAN2TX      21  /* CAN2 Tx                            */
00206 #define VIC_CAN3TX      22  /* CAN3 Tx                            */
00207 #define VIC_CAN4TX      23  /* CAN4 Tx                            */
00208 //#define VIC_RES       24  /* Reserved                           */
00209 //#define VIC_RES       25  /* Reserved                           */
00210 #define VIC_CAN1RX      26  /* CAN1 Rx                            */
00211 #define VIC_CAN2RX      27  /* CAN2 Rx                            */
00212 #define VIC_CAN3RX      28  /* CAN3 Rx                            */
00213 #define VIC_CAN4RX      29  /* CAN4 Rx                            */
00214 //#define VIC_RES       30  /* Reserved                           */
00215 //#define VIC_RES       31  /* Reserved                           */
00216 
00217 /***************************************************************************
00218  **
00219  **  Reserved Bits of registers, used to mask out undefined bits
00220  **
00221  ***************************************************************************/
00222  
00223 #define PCONP_RB (unsigned int)((1<<0)|(1<<6)|(63<<17)|(0xFF000000))
00224 #define EXTMODE_RB (unsigned int)(15<<4)
00225 #define PWMMCR_RB (unsigned int)(0xFFE00000)
00226 #define PWMTCR_RB (unsigned int)((1<<2)|(15<<4))
00227 #define PWMPCR_RB (unsigned int)((3<<0)|(3<<7)|(1<<15))
00228 #define PWMLER_RB (unsigned int)(1<<7)
00229 #define ADCR_RB (unsigned int)((1<<20)|(3<<22)|(0xF0000000))
00230 #define ADINTEN_RB (unsigned int)(0xFFFFFE00)
00231 #define C1MOD_RB (unsigned int)(1<<6)
00232 #define C1GSR_RB (unsigned int)(255<<8)
00233 #define C1IER_RB (unsigned int)(0xFFF80000)
00234 #define C1BTR_RB (unsigned int)((15<<10)|(0xFF000000))
00235 
00236 #endif // LPC2194DEF_H
00237 
Generated on Tue Jun 29 16:36:14 2010 by  doxygen 1.6.3