Dmitry Kovalev
/
LG
n
Fork of LG by
Embed:
(wiki syntax)
Show/hide line numbers
LPC17xx.h
00001 /****************************************************************************** 00002 * @file: LPC17xx.h 00003 * @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File for 00004 * NXP LPC17xx Device Series 00005 * @version: V1.10 00006 * @date: 24. September 2010 00007 *---------------------------------------------------------------------------- 00008 * 00009 * @note 00010 * Copyright (C) 2010 ARM Limited. All rights reserved. 00011 * 00012 * @par 00013 * ARM Limited (ARM) is supplying this software for use with Cortex-M3 00014 * processor based microcontrollers. This file can be freely distributed 00015 * within development tools that are supporting such ARM based processors. 00016 * 00017 * @par 00018 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED 00019 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 00020 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. 00021 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR 00022 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. 00023 * 00024 ******************************************************************************/ 00025 00026 00027 #ifndef __LPC17xx_H__ 00028 #define __LPC17xx_H__ 00029 00030 /* 00031 * ========================================================================== 00032 * ---------- Interrupt Number Definition ----------------------------------- 00033 * ========================================================================== 00034 */ 00035 00036 /** @addtogroup LPC17xx_System 00037 * @{ 00038 */ 00039 #define rISER0 (*(volatile unsigned *)0xE000E100) 00040 #define rICER0 (*(volatile unsigned *)0xE000E180) 00041 #define rISPR0 (*(volatile unsigned *)0xE000E200) 00042 #define rICPR0 (*(volatile unsigned *)0xE000E280) 00043 #define rIABR0 (*(volatile unsigned *)0xE000E300) 00044 00045 00046 /** @brief IRQ interrupt source definition */ 00047 typedef enum IRQn 00048 { 00049 /****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ 00050 NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ 00051 MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ 00052 BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ 00053 UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ 00054 SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ 00055 DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ 00056 PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ 00057 SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ 00058 00059 /****** LPC17xx Specific Interrupt Numbers *******************************************************/ 00060 WDT_IRQn = 0, /*!< Watchdog Timer Interrupt */ 00061 TIMER0_IRQn = 1, /*!< Timer0 Interrupt */ 00062 TIMER1_IRQn = 2, /*!< Timer1 Interrupt */ 00063 TIMER2_IRQn = 3, /*!< Timer2 Interrupt */ 00064 TIMER3_IRQn = 4, /*!< Timer3 Interrupt */ 00065 UART0_IRQn = 5, /*!< UART0 Interrupt */ 00066 UART1_IRQn = 6, /*!< UART1 Interrupt */ 00067 UART2_IRQn = 7, /*!< UART2 Interrupt */ 00068 UART3_IRQn = 8, /*!< UART3 Interrupt */ 00069 PWM1_IRQn = 9, /*!< PWM1 Interrupt */ 00070 I2C0_IRQn = 10, /*!< I2C0 Interrupt */ 00071 I2C1_IRQn = 11, /*!< I2C1 Interrupt */ 00072 I2C2_IRQn = 12, /*!< I2C2 Interrupt */ 00073 SPI_IRQn = 13, /*!< SPI Interrupt */ 00074 SSP0_IRQn = 14, /*!< SSP0 Interrupt */ 00075 SSP1_IRQn = 15, /*!< SSP1 Interrupt */ 00076 PLL0_IRQn = 16, /*!< PLL0 Lock (Main PLL) Interrupt */ 00077 RTC_IRQn = 17, /*!< Real Time Clock Interrupt */ 00078 EINT0_IRQn = 18, /*!< External Interrupt 0 Interrupt */ 00079 EINT1_IRQn = 19, /*!< External Interrupt 1 Interrupt */ 00080 EINT2_IRQn = 20, /*!< External Interrupt 2 Interrupt */ 00081 EINT3_IRQn = 21, /*!< External Interrupt 3 Interrupt */ 00082 ADC_IRQn = 22, /*!< A/D Converter Interrupt */ 00083 BOD_IRQn = 23, /*!< Brown-Out Detect Interrupt */ 00084 USB_IRQn = 24, /*!< USB Interrupt */ 00085 CAN_IRQn = 25, /*!< CAN Interrupt */ 00086 DMA_IRQn = 26, /*!< General Purpose DMA Interrupt */ 00087 I2S_IRQn = 27, /*!< I2S Interrupt */ 00088 ENET_IRQn = 28, /*!< Ethernet Interrupt */ 00089 RIT_IRQn = 29, /*!< Repetitive Interrupt Timer Interrupt */ 00090 MCPWM_IRQn = 30, /*!< Motor Control PWM Interrupt */ 00091 QEI_IRQn = 31, /*!< Quadrature Encoder Interface Interrupt */ 00092 PLL1_IRQn = 32, /*!< PLL1 Lock (USB PLL) Interrupt */ 00093 USBActivity_IRQn = 33, /*!< USB Activity Interrupt(For wakeup only) */ 00094 CANActivity_IRQn = 34 /*!< CAN Activity Interrupt(For wakeup only) */ 00095 } IRQn_Type; 00096 00097 00098 /* 00099 * ========================================================================== 00100 * ----------- Processor and Core Peripheral Section ------------------------ 00101 * ========================================================================== 00102 */ 00103 00104 /* Configuration of the Cortex-M3 Processor and Core Peripherals */ 00105 #define __MPU_PRESENT 1 /*!< MPU present or not */ 00106 #define __NVIC_PRIO_BITS 5 /*!< Number of Bits used for Priority Levels */ 00107 #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ 00108 00109 00110 #include "core_cm3.h" /* Cortex-M3 processor and core peripherals */ 00111 #include "system_LPC17xx.h" /* System Header */ 00112 00113 00114 /******************************************************************************/ 00115 /* Device Specific Peripheral registers structures */ 00116 /******************************************************************************/ 00117 00118 #if defined ( __CC_ARM ) 00119 #pragma anon_unions 00120 #endif 00121 00122 /*------------- System Control (SC) ------------------------------------------*/ 00123 /** @brief System Control (SC) register structure definition */ 00124 typedef struct 00125 { 00126 __IO uint32_t FLASHCFG ; /*!< Offset: 0x000 (R/W) Flash Accelerator Configuration Register */ 00127 uint32_t RESERVED0[31]; 00128 __IO uint32_t PLL0CON ; /*!< Offset: 0x080 (R/W) PLL0 Control Register */ 00129 __IO uint32_t PLL0CFG ; /*!< Offset: 0x084 (R/W) PLL0 Configuration Register */ 00130 __I uint32_t PLL0STAT ; /*!< Offset: 0x088 (R/ ) PLL0 Status Register */ 00131 __O uint32_t PLL0FEED ; /*!< Offset: 0x08C ( /W) PLL0 Feed Register */ 00132 uint32_t RESERVED1[4]; 00133 __IO uint32_t PLL1CON ; /*!< Offset: 0x0A0 (R/W) PLL1 Control Register */ 00134 __IO uint32_t PLL1CFG ; /*!< Offset: 0x0A4 (R/W) PLL1 Configuration Register */ 00135 __I uint32_t PLL1STAT ; /*!< Offset: 0x0A8 (R/ ) PLL1 Status Register */ 00136 __O uint32_t PLL1FEED ; /*!< Offset: 0x0AC ( /W) PLL1 Feed Register */ 00137 uint32_t RESERVED2[4]; 00138 __IO uint32_t PCON ; /*!< Offset: 0x0C0 (R/W) Power Control Register */ 00139 __IO uint32_t PCONP ; /*!< Offset: 0x0C4 (R/W) Power Control for Peripherals Register */ 00140 uint32_t RESERVED3[15]; 00141 __IO uint32_t CCLKCFG ; /*!< Offset: 0x104 (R/W) CPU Clock Configure Register */ 00142 __IO uint32_t USBCLKCFG ; /*!< Offset: 0x108 (R/W) USB Clock Configure Register */ 00143 __IO uint32_t CLKSRCSEL ; /*!< Offset: 0x10C (R/W) Clock Source Select Register */ 00144 __IO uint32_t CANSLEEPCLR ; /*!< Offset: 0x110 (R/W) CAN Sleep Clear Register */ 00145 __IO uint32_t CANWAKEFLAGS ; /*!< Offset: 0x114 (R/W) CAN Wake-up Flags Register */ 00146 uint32_t RESERVED4[10]; 00147 __IO uint32_t EXTINT ; /*!< Offset: 0x140 (R/W) External Interrupt Flag Register */ 00148 uint32_t RESERVED5[1]; 00149 __IO uint32_t EXTMODE ; /*!< Offset: 0x148 (R/W) External Interrupt Mode Register */ 00150 __IO uint32_t EXTPOLAR ; /*!< Offset: 0x14C (R/W) External Interrupt Polarity Register */ 00151 uint32_t RESERVED6[12]; 00152 __IO uint32_t RSID ; /*!< Offset: 0x180 (R/W) Reset Source Identification Register */ 00153 uint32_t RESERVED7[7]; 00154 __IO uint32_t SCS ; /*!< Offset: 0x1A0 (R/W) System Controls and Status Register */ 00155 __IO uint32_t IRCTRIM; /* Clock Dividers */ 00156 __IO uint32_t PCLKSEL0 ; /*!< Offset: 0x1A8 (R/W) Peripheral Clock Select 0 Register */ 00157 __IO uint32_t PCLKSEL1 ; /*!< Offset: 0x1AC (R/W) Peripheral Clock Select 1 Register */ 00158 uint32_t RESERVED8[4]; 00159 __IO uint32_t USBIntSt ; /*!< Offset: 0x1C0 (R/W) USB Interrupt Status Register */ 00160 __IO uint32_t DMAREQSEL ; /*!< Offset: 0x1C4 (R/W) DMA Request Select Register */ 00161 __IO uint32_t CLKOUTCFG ; /*!< Offset: 0x1C8 (R/W) Clock Output Configuration Register */ 00162 00163 } LPC_SC_TypeDef; 00164 00165 00166 /*------------- Pin Connect Block (PINCON) -----------------------------------*/ 00167 /** @brief Pin Connect Block (PINCON) register structure definition */ 00168 typedef struct 00169 { 00170 __IO uint32_t PINSEL0; /* !< Offset: 0x000 PIN Select0 (R/W) */ 00171 __IO uint32_t PINSEL1; /* !< Offset: 0x004 PIN Select1 (R/W) */ 00172 __IO uint32_t PINSEL2; /* !< Offset: 0x008 PIN Select2 (R/W) */ 00173 __IO uint32_t PINSEL3; /* !< Offset: 0x00C PIN Select3 (R/W) */ 00174 __IO uint32_t PINSEL4; /* !< Offset: 0x010 PIN Select4 (R/W) */ 00175 __IO uint32_t PINSEL5; /* !< Offset: 0x014 PIN Select5 (R/W) */ 00176 __IO uint32_t PINSEL6; /* !< Offset: 0x018 PIN Select6 (R/W) */ 00177 __IO uint32_t PINSEL7; /* !< Offset: 0x01C PIN Select7 (R/W) */ 00178 __IO uint32_t PINSEL8; /* !< Offset: 0x020 PIN Select8 (R/W) */ 00179 __IO uint32_t PINSEL9; /* !< Offset: 0x024 PIN Select9 (R/W) */ 00180 __IO uint32_t PINSEL10; /* !< Offset: 0x028 PIN Select20 (R/W) */ 00181 uint32_t RESERVED0[5]; 00182 __IO uint32_t PINMODE0; /* !< Offset: 0x040 PIN Mode0 (R/W) */ 00183 __IO uint32_t PINMODE1; /* !< Offset: 0x044 PIN Mode1 (R/W) */ 00184 __IO uint32_t PINMODE2; /* !< Offset: 0x048 PIN Mode2 (R/W) */ 00185 __IO uint32_t PINMODE3; /* !< Offset: 0x04C PIN Mode3 (R/W) */ 00186 __IO uint32_t PINMODE4; /* !< Offset: 0x050 PIN Mode4 (R/W) */ 00187 __IO uint32_t PINMODE5; /* !< Offset: 0x054 PIN Mode5 (R/W) */ 00188 __IO uint32_t PINMODE6; /* !< Offset: 0x058 PIN Mode6 (R/W) */ 00189 __IO uint32_t PINMODE7; /* !< Offset: 0x05C PIN Mode7 (R/W) */ 00190 __IO uint32_t PINMODE8; /* !< Offset: 0x060 PIN Mode8 (R/W) */ 00191 __IO uint32_t PINMODE9; /* !< Offset: 0x064 PIN Mode9 (R/W) */ 00192 __IO uint32_t PINMODE_OD0; /* !< Offset: 0x068 Open Drain PIN Mode0 (R/W) */ 00193 __IO uint32_t PINMODE_OD1; /* !< Offset: 0x06C Open Drain PIN Mode1 (R/W) */ 00194 __IO uint32_t PINMODE_OD2; /* !< Offset: 0x070 Open Drain PIN Mode2 (R/W) */ 00195 __IO uint32_t PINMODE_OD3; /* !< Offset: 0x074 Open Drain PIN Mode3 (R/W) */ 00196 __IO uint32_t PINMODE_OD4; /* !< Offset: 0x078 Open Drain PIN Mode4 (R/W) */ 00197 __IO uint32_t I2CPADCFG; /* !< Offset: 0x07C I2C Pad Configure (R/W) */ 00198 } LPC_PINCON_TypeDef; 00199 00200 /*------------- General Purpose Input/Output (GPIO) --------------------------*/ 00201 /** @brief General Purpose Input/Output (GPIO) register structure definition */ 00202 typedef struct 00203 { 00204 union { 00205 __IO uint32_t FIODIR; /* !< Offset: 0x00 Port direction (R/W) */ 00206 struct { 00207 __IO uint16_t FIODIRL; 00208 __IO uint16_t FIODIRH; 00209 }; 00210 struct { 00211 __IO uint8_t FIODIR0; 00212 __IO uint8_t FIODIR1; 00213 __IO uint8_t FIODIR2; 00214 __IO uint8_t FIODIR3; 00215 }; 00216 }; 00217 uint32_t RESERVED0[3]; 00218 union { 00219 __IO uint32_t FIOMASK; /* !< Offset: 0x10 Port mask (R/W) */ 00220 struct { 00221 __IO uint16_t FIOMASKL; 00222 __IO uint16_t FIOMASKH; 00223 }; 00224 struct { 00225 __IO uint8_t FIOMASK0; 00226 __IO uint8_t FIOMASK1; 00227 __IO uint8_t FIOMASK2; 00228 __IO uint8_t FIOMASK3; 00229 }; 00230 }; 00231 union { 00232 __IO uint32_t FIOPIN; /* !< Offset: 0x14 Port value (R/W) */ 00233 struct { 00234 __IO uint16_t FIOPINL; 00235 __IO uint16_t FIOPINH; 00236 }; 00237 struct { 00238 __IO uint8_t FIOPIN0; 00239 __IO uint8_t FIOPIN1; 00240 __IO uint8_t FIOPIN2; 00241 __IO uint8_t FIOPIN3; 00242 }; 00243 }; 00244 union { 00245 __IO uint32_t FIOSET; /* !< Offset: 0x18 Port output set (R/W) */ 00246 struct { 00247 __IO uint16_t FIOSETL; 00248 __IO uint16_t FIOSETH; 00249 }; 00250 struct { 00251 __IO uint8_t FIOSET0; 00252 __IO uint8_t FIOSET1; 00253 __IO uint8_t FIOSET2; 00254 __IO uint8_t FIOSET3; 00255 }; 00256 }; 00257 union { 00258 __O uint32_t FIOCLR; /* !< Offset: 0x1C Port output clear (R/W) */ 00259 struct { 00260 __O uint16_t FIOCLRL; 00261 __O uint16_t FIOCLRH; 00262 }; 00263 struct { 00264 __O uint8_t FIOCLR0; 00265 __O uint8_t FIOCLR1; 00266 __O uint8_t FIOCLR2; 00267 __O uint8_t FIOCLR3; 00268 }; 00269 }; 00270 } LPC_GPIO_TypeDef; 00271 00272 /** @brief General Purpose Input/Output interrupt (GPIOINT) register structure definition */ 00273 typedef struct 00274 { 00275 __I uint32_t IntStatus ; /*!< Offset: 0x000 (R/ ) GPIO overall Interrupt Status Register */ 00276 __I uint32_t IO0IntStatR ; /*!< Offset: 0x004 (R/ ) GPIO Interrupt Status Register 0 for Rising edge */ 00277 __I uint32_t IO0IntStatF ; /*!< Offset: 0x008 (R/ ) GPIO Interrupt Status Register 0 for Falling edge */ 00278 __O uint32_t IO0IntClr ; /*!< Offset: 0x00C (R/W) GPIO Interrupt Clear Register 0 */ 00279 __IO uint32_t IO0IntEnR ; /*!< Offset: 0x010 ( /W) GPIO Interrupt Enable Register 0 for Rising edge */ 00280 __IO uint32_t IO0IntEnF ; /*!< Offset: 0x014 (R/W) GPIO Interrupt Enable Register 0 for Falling edge */ 00281 uint32_t RESERVED0[3]; 00282 __I uint32_t IO2IntStatR ; /*!< Offset: 0x000 (R/ ) GPIO Interrupt Status Register 2 for Rising edge */ 00283 __I uint32_t IO2IntStatF ; /*!< Offset: 0x000 (R/ ) GPIO Interrupt Status Register 2 for Falling edge */ 00284 __O uint32_t IO2IntClr ; /*!< Offset: 0x000 ( /W) GPIO Interrupt Clear Register 2 */ 00285 __IO uint32_t IO2IntEnR ; /*!< Offset: 0x000 (R/W) GPIO Interrupt Enable Register 2 for Rising edge */ 00286 __IO uint32_t IO2IntEnF ; /*!< Offset: 0x000 (R/W) GPIO Interrupt Enable Register 2 for Falling edge */ 00287 } LPC_GPIOINT_TypeDef; 00288 00289 /*------------- Timer (TIM) --------------------------------------------------*/ 00290 /** @brief Timer (TIM) register structure definition */ 00291 typedef struct 00292 { 00293 __IO uint32_t IR ; /*!< Offset: 0x000 (R/W) Interrupt Register */ 00294 __IO uint32_t TCR ; /*!< Offset: 0x004 (R/W) Timer Control Register */ 00295 __IO uint32_t TC ; /*!< Offset: 0x008 (R/W) Timer Counter Register */ 00296 __IO uint32_t PR ; /*!< Offset: 0x00C (R/W) Prescale Register */ 00297 __IO uint32_t PC ; /*!< Offset: 0x010 (R/W) Prescale Counter Register */ 00298 __IO uint32_t MCR ; /*!< Offset: 0x014 (R/W) Match Control Register */ 00299 __IO uint32_t MR0 ; /*!< Offset: 0x018 (R/W) Match Register 0 */ 00300 __IO uint32_t MR1 ; /*!< Offset: 0x01C (R/W) Match Register 1 */ 00301 __IO uint32_t MR2 ; /*!< Offset: 0x020 (R/W) Match Register 2 */ 00302 __IO uint32_t MR3 ; /*!< Offset: 0x024 (R/W) Match Register 3 */ 00303 __IO uint32_t CCR ; /*!< Offset: 0x028 (R/W) Capture Control Register */ 00304 __I uint32_t CR0 ; /*!< Offset: 0x02C (R/ ) Capture Register 0 */ 00305 __I uint32_t CR1 ; /*!< Offset: 0x030 (R/ ) Capture Register */ 00306 uint32_t RESERVED0[2]; 00307 __IO uint32_t EMR ; /*!< Offset: 0x03C (R/W) External Match Register */ 00308 uint32_t RESERVED1[12]; 00309 __IO uint32_t CTCR ; /*!< Offset: 0x070 (R/W) Count Control Register */ 00310 } LPC_TIM_TypeDef; 00311 00312 /*------------- Pulse-Width Modulation (PWM) ---------------------------------*/ 00313 /** @brief Pulse-Width Modulation (PWM) register structure definition */ 00314 typedef struct 00315 { 00316 __IO uint32_t IR ; /*!< Offset: 0x000 (R/W) Interrupt Register */ 00317 __IO uint32_t TCR ; /*!< Offset: 0x004 (R/W) Timer Control Register. Register */ 00318 __IO uint32_t TC ; /*!< Offset: 0x008 (R/W) Timer Counter Register */ 00319 __IO uint32_t PR ; /*!< Offset: 0x00C (R/W) Prescale Register */ 00320 __IO uint32_t PC ; /*!< Offset: 0x010 (R/W) Prescale Counter Register */ 00321 __IO uint32_t MCR ; /*!< Offset: 0x014 (R/W) Match Control Register */ 00322 __IO uint32_t MR0 ; /*!< Offset: 0x018 (R/W) Match Register 0 */ 00323 __IO uint32_t MR1 ; /*!< Offset: 0x01C (R/W) Match Register 1 */ 00324 __IO uint32_t MR2 ; /*!< Offset: 0x020 (R/W) Match Register 2 */ 00325 __IO uint32_t MR3 ; /*!< Offset: 0x024 (R/W) Match Register 3 */ 00326 __IO uint32_t CCR ; /*!< Offset: 0x028 (R/W) Capture Control Register */ 00327 __I uint32_t CR0 ; /*!< Offset: 0x02C (R/ ) Capture Register 0 */ 00328 __I uint32_t CR1 ; /*!< Offset: 0x030 (R/ ) Capture Register 1 */ 00329 __I uint32_t CR2 ; /*!< Offset: 0x034 (R/ ) Capture Register 2 */ 00330 __I uint32_t CR3 ; /*!< Offset: 0x038 (R/ ) Capture Register 3 */ 00331 uint32_t RESERVED0; 00332 __IO uint32_t MR4 ; /*!< Offset: 0x040 (R/W) Match Register 4 */ 00333 __IO uint32_t MR5 ; /*!< Offset: 0x044 (R/W) Match Register 5 */ 00334 __IO uint32_t MR6 ; /*!< Offset: 0x048 (R/W) Match Register 6 */ 00335 __IO uint32_t PCR ; /*!< Offset: 0x04C (R/W) PWM Control Register */ 00336 __IO uint32_t LER ; /*!< Offset: 0x050 (R/W) Load Enable Register */ 00337 uint32_t RESERVED1[7]; 00338 __IO uint32_t CTCR ; /*!< Offset: 0x070 (R/W) Count Control Register */ 00339 } LPC_PWM_TypeDef; 00340 00341 /*------------- Universal Asynchronous Receiver Transmitter (UART) -----------*/ 00342 /** @brief Universal Asynchronous Receiver Transmitter (UART) register structure definition */ 00343 typedef struct 00344 { 00345 union { 00346 __I uint32_t RBR ; /*!< Offset: 0x000 Receiver Buffer Register (R/ ) */ 00347 __O uint32_t THR ; /*!< Offset: 0x000 Transmit Holding Register ( /W) */ 00348 __IO uint32_t DLL ; /*!< Offset: 0x000 Divisor Latch LSB (R/W) */ 00349 }; 00350 union { 00351 __IO uint32_t DLM ; /*!< Offset: 0x004 Divisor Latch MSB (R/W) */ 00352 __IO uint32_t IER ; /*!< Offset: 0x004 Interrupt Enable Register (R/W) */ 00353 }; 00354 union { 00355 __I uint32_t IIR ; /*!< Offset: 0x008 Interrupt ID Register (R/ ) */ 00356 __O uint32_t FCR ; /*!< Offset: 0x008 FIFO Control Register ( /W) */ 00357 }; 00358 __IO uint32_t LCR ; /*!< Offset: 0x00C Line Control Register (R/W) */ 00359 uint32_t RESERVED0; 00360 __I uint32_t LSR ; /*!< Offset: 0x014 Line Status Register (R/ ) */ 00361 uint32_t RESERVED1; 00362 __IO uint32_t SCR ; /*!< Offset: 0x01C Scratch Pad Register (R/W) */ 00363 __IO uint32_t ACR ; /*!< Offset: 0x020 Auto-baud Control Register (R/W) */ 00364 __IO uint32_t ICR ; /*!< Offset: 0x024 IrDA Control Register (R/W) */ 00365 __IO uint32_t FDR ; /*!< Offset: 0x028 Fractional Divider Register (R/W) */ 00366 uint32_t RESERVED2; 00367 __IO uint32_t TER ; /*!< Offset: 0x030 Transmit Enable Register (R/W) */ 00368 } LPC_UART_TypeDef; 00369 00370 /** @brief Universal Asynchronous Receiver Transmitter 0 (UART0) register structure definition */ 00371 typedef struct 00372 { 00373 union { 00374 __I uint32_t RBR ; /*!< Offset: 0x000 Receiver Buffer Register (R/ ) */ 00375 __O uint32_t THR ; /*!< Offset: 0x000 Transmit Holding Register ( /W) */ 00376 __IO uint32_t DLL ; /*!< Offset: 0x000 Divisor Latch LSB (R/W) */ 00377 }; 00378 union { 00379 __IO uint32_t DLM ; /*!< Offset: 0x004 Divisor Latch MSB (R/W) */ 00380 __IO uint32_t IER ; /*!< Offset: 0x000 Interrupt Enable Register (R/W) */ 00381 }; 00382 union { 00383 __I uint32_t IIR ; /*!< Offset: 0x008 Interrupt ID Register (R/ ) */ 00384 __O uint32_t FCR ; /*!< Offset: 0x008 FIFO Control Register ( /W) */ 00385 }; 00386 __IO uint32_t LCR ; /*!< Offset: 0x00C Line Control Register (R/W) */ 00387 __IO uint32_t MCR ; /*!< Offset: 0x010 Modem control Register (R/W) */ 00388 __I uint32_t LSR ; /*!< Offset: 0x014 Line Status Register (R/ ) */ 00389 __I uint32_t MSR ; /*!< Offset: 0x018 Modem status Register (R/ ) */ 00390 __IO uint32_t SCR ; /*!< Offset: 0x01C Scratch Pad Register (R/W) */ 00391 __IO uint32_t ACR ; /*!< Offset: 0x020 Auto-baud Control Register (R/W) */ 00392 uint32_t RESERVED0; 00393 __IO uint32_t FDR ; /*!< Offset: 0x028 Fractional Divider Register (R/W) */ 00394 uint32_t RESERVED1; 00395 __IO uint32_t TER ; /*!< Offset: 0x030 Transmit Enable Register (R/W) */ 00396 uint32_t RESERVED2[6]; 00397 __IO uint32_t RS485CTRL ; /*!< Offset: 0x04C RS-485/EIA-485 Control Register (R/W) */ 00398 __IO uint32_t ADRMATCH ; /*!< Offset: 0x050 RS-485/EIA-485 address match Register (R/W) */ 00399 __IO uint32_t RS485DLY ; /*!< Offset: 0x054 RS-485/EIA-485 direction control delay Register (R/W) */ 00400 } LPC_UART1_TypeDef; 00401 00402 /*------------- Serial Peripheral Interface (SPI) ----------------------------*/ 00403 /** @brief Serial Peripheral Interface (SPI) register structure definition */ 00404 typedef struct 00405 { 00406 __IO uint32_t SPCR ; /*!< Offset: 0x000 SPI Control Register (R/W) */ 00407 __I uint32_t SPSR ; /*!< Offset: 0x004 SPI Status Register (R/) */ 00408 __IO uint32_t SPDR ; /*!< Offset: 0x008 SPI Data Register (R/W) */ 00409 __IO uint32_t SPCCR ; /*!< Offset: 0x00C SPI Clock Counter Register (R/W) */ 00410 uint32_t RESERVED0[3]; 00411 __IO uint32_t SPINT ; /*!< Offset: 0x01C SPI Interrupt Flag Register (R/W) */ 00412 } LPC_SPI_TypeDef; 00413 00414 /*------------- Synchronous Serial Communication (SSP) -----------------------*/ 00415 /** @brief Synchronous Serial Communication (SSP) register structure definition */ 00416 typedef struct 00417 { 00418 __IO uint32_t CR0 ; /*!< Offset: 0x000 (R/W) Control Register 0 */ 00419 __IO uint32_t CR1 ; /*!< Offset: 0x004 (R/W) Control Register 1 */ 00420 __IO uint32_t DR ; /*!< Offset: 0x008 (R/W) Data Register */ 00421 __I uint32_t SR ; /*!< Offset: 0x00C (R/ ) Status Register */ 00422 __IO uint32_t CPSR ; /*!< Offset: 0x010 (R/W) Clock Prescale Register */ 00423 __IO uint32_t IMSC ; /*!< Offset: 0x014 (R/W) Interrupt Mask Set and Clear Register */ 00424 __IO uint32_t RIS ; /*!< Offset: 0x018 (R/W) Raw Interrupt Status Register */ 00425 __IO uint32_t MIS ; /*!< Offset: 0x01C (R/W) Masked Interrupt Status Register */ 00426 __IO uint32_t ICR ; /*!< Offset: 0x020 (R/W) SSPICR Interrupt Clear Register */ 00427 __IO uint32_t DMACR ; /*!< Offset: 0x024 (R/W) DMA Control Register */ 00428 } LPC_SSP_TypeDef; 00429 00430 /*------------- Inter-Integrated Circuit (I2C) -------------------------------*/ 00431 /** @brief Inter-Integrated Circuit (I2C) register structure definition */ 00432 typedef struct 00433 { 00434 __IO uint32_t CONSET ; /*!< Offset: 0x000 (R/W) I2C Control Set Register */ 00435 __I uint32_t STAT ; /*!< Offset: 0x004 (R/ ) I2C Status Register */ 00436 __IO uint32_t DAT ; /*!< Offset: 0x008 (R/W) I2C Data Register */ 00437 __IO uint32_t ADR0 ; /*!< Offset: 0x00C (R/W) I2C Slave Address Register 0 */ 00438 __IO uint32_t SCLH ; /*!< Offset: 0x010 (R/W) SCH Duty Cycle Register High Half Word */ 00439 __IO uint32_t SCLL ; /*!< Offset: 0x014 (R/W) SCL Duty Cycle Register Low Half Word */ 00440 __O uint32_t CONCLR ; /*!< Offset: 0x018 (R/W) I2C Control Clear Register */ 00441 __IO uint32_t MMCTRL ; /*!< Offset: 0x01C (R/W) Monitor mode control register */ 00442 __IO uint32_t ADR1 ; /*!< Offset: 0x020 (R/W) I2C Slave Address Register 1 */ 00443 __IO uint32_t ADR2 ; /*!< Offset: 0x024 (R/W) I2C Slave Address Register 2 */ 00444 __IO uint32_t ADR3 ; /*!< Offset: 0x028 (R/W) I2C Slave Address Register 3 */ 00445 __I uint32_t DATA_BUFFER ; /*!< Offset: 0x02C (R/ ) Data buffer Register */ 00446 __IO uint32_t MASK0 ; /*!< Offset: 0x030 (R/W) I2C Slave address mask register 0 */ 00447 __IO uint32_t MASK1 ; /*!< Offset: 0x034 (R/W) I2C Slave address mask register 1 */ 00448 __IO uint32_t MASK2 ; /*!< Offset: 0x038 (R/W) I2C Slave address mask register 2 */ 00449 __IO uint32_t MASK3 ; /*!< Offset: 0x03C (R/W) I2C Slave address mask register 3 */ 00450 } LPC_I2C_TypeDef; 00451 00452 /*------------- Inter IC Sound (I2S) -----------------------------------------*/ 00453 /** @brief Inter IC Sound (I2S) register structure definition */ 00454 typedef struct 00455 { 00456 __IO uint32_t DAO ; /*!< Offset: 0x000 (R/W) Digital Audio Output Register */ 00457 __IO uint32_t DAI ; /*!< Offset: 0x004 (R/W) Digital Audio Input Register */ 00458 __O uint32_t TXFIFO ; /*!< Offset: 0x008 ( /W) Transmit FIFO */ 00459 __I uint32_t RXFIFO ; /*!< Offset: 0x00C (R/ ) Receive FIFO */ 00460 __I uint32_t STATE ; /*!< Offset: 0x010 (R/W) Status Feedback Register */ 00461 __IO uint32_t DMA1 ; /*!< Offset: 0x014 (R/W) DMA Configuration Register 1 */ 00462 __IO uint32_t DMA2 ; /*!< Offset: 0x018 (R/W) DMA Configuration Register 2 */ 00463 __IO uint32_t IRQ ; /*!< Offset: 0x01C (R/W) Interrupt Request Control Register */ 00464 __IO uint32_t TXRATE ; /*!< Offset: 0x020 (R/W) Transmit reference clock divider Register */ 00465 __IO uint32_t RXRATE ; /*!< Offset: 0x024 (R/W) Receive reference clock divider Register */ 00466 __IO uint32_t TXBITRATE ; /*!< Offset: 0x028 (R/W) Transmit bit rate divider Register */ 00467 __IO uint32_t RXBITRATE ; /*!< Offset: 0x02C (R/W) Receive bit rate divider Register */ 00468 __IO uint32_t TXMODE ; /*!< Offset: 0x030 (R/W) Transmit mode control Register */ 00469 __IO uint32_t RXMODE ; /*!< Offset: 0x034 (R/W) Receive mode control Register */ 00470 } LPC_I2S_TypeDef; 00471 00472 /*------------- Repetitive Interrupt Timer (RIT) -----------------------------*/ 00473 /** @brief Repetitive Interrupt Timer (RIT) register structure definition */ 00474 typedef struct 00475 { 00476 __IO uint32_t RICOMPVAL; 00477 __IO uint32_t RIMASK; 00478 __IO uint32_t RICTRL; 00479 __IO uint32_t RICOUNTER; 00480 } LPC_RIT_TypeDef; 00481 00482 /*------------- Real-Time Clock (RTC) ----------------------------------------*/ 00483 /** @brief Real-Time Clock (RTC) register structure definition */ 00484 typedef struct 00485 { 00486 __IO uint32_t ILR ; /*!< Offset: 0x000 (R/W) Interrupt Location Register */ 00487 uint32_t RESERVED0; 00488 __IO uint32_t CCR ; /*!< Offset: 0x008 (R/W) Clock Control Register */ 00489 __IO uint32_t CIIR ; /*!< Offset: 0x00C (R/W) Counter Increment Interrupt Register */ 00490 __IO uint32_t AMR ; /*!< Offset: 0x010 (R/W) Alarm Mask Register */ 00491 __I uint32_t CTIME0 ; /*!< Offset: 0x014 (R/ ) Consolidated Time Register 0 */ 00492 __I uint32_t CTIME1 ; /*!< Offset: 0x018 (R/ ) Consolidated Time Register 1 */ 00493 __I uint32_t CTIME2 ; /*!< Offset: 0x01C (R/ ) Consolidated Time Register 2 */ 00494 __IO uint32_t SEC ; /*!< Offset: 0x020 (R/W) Seconds Counter Register */ 00495 __IO uint32_t MIN ; /*!< Offset: 0x024 (R/W) Minutes Register */ 00496 __IO uint32_t HOUR ; /*!< Offset: 0x028 (R/W) Hours Register */ 00497 __IO uint32_t DOM ; /*!< Offset: 0x02C (R/W) Day of Month Register */ 00498 __IO uint32_t DOW ; /*!< Offset: 0x030 (R/W) Day of Week Register */ 00499 __IO uint32_t DOY ; /*!< Offset: 0x034 (R/W) Day of Year Register */ 00500 __IO uint32_t MONTH ; /*!< Offset: 0x038 (R/W) Months Register */ 00501 __IO uint32_t YEAR ; /*!< Offset: 0x03C (R/W) Years Register */ 00502 __IO uint32_t CALIBRATION ; /*!< Offset: 0x040 (R/W) Calibration Value Register */ 00503 __IO uint32_t GPREG0 ; /*!< Offset: 0x044 (R/W) General Purpose Register 0 */ 00504 __IO uint32_t GPREG1 ; /*!< Offset: 0x048 (R/W) General Purpose Register 1 */ 00505 __IO uint32_t GPREG2 ; /*!< Offset: 0x04C (R/W) General Purpose Register 2 */ 00506 __IO uint32_t GPREG3 ; /*!< Offset: 0x050 (R/W) General Purpose Register 3 */ 00507 __IO uint32_t GPREG4 ; /*!< Offset: 0x054 (R/W) General Purpose Register 4 */ 00508 __IO uint32_t RTC_AUXEN ; /*!< Offset: 0x058 (R/W) RTC Auxiliary Enable Register */ 00509 __IO uint32_t RTC_AUX ; /*!< Offset: 0x05C (R/W) RTC Auxiliary Control Register */ 00510 __IO uint32_t ALSEC ; /*!< Offset: 0x060 (R/W) Alarm value for Seconds */ 00511 __IO uint32_t ALMIN ; /*!< Offset: 0x064 (R/W) Alarm value for Minutes */ 00512 __IO uint32_t ALHOUR ; /*!< Offset: 0x068 (R/W) Alarm value for Hours */ 00513 __IO uint32_t ALDOM ; /*!< Offset: 0x06C (R/W) Alarm value for Day of Month */ 00514 __IO uint32_t ALDOW ; /*!< Offset: 0x070 (R/W) Alarm value for Day of Week */ 00515 __IO uint32_t ALDOY ; /*!< Offset: 0x074 (R/W) Alarm value for Day of Year */ 00516 __IO uint32_t ALMON ; /*!< Offset: 0x078 (R/W) Alarm value for Months */ 00517 __IO uint32_t ALYEAR ; /*!< Offset: 0x07C (R/W) Alarm value for Year */ 00518 } LPC_RTC_TypeDef; 00519 00520 /*------------- Watchdog Timer (WDT) -----------------------------------------*/ 00521 /** @brief Watchdog Timer (WDT) register structure definition */ 00522 typedef struct 00523 { 00524 __IO uint32_t MOD ; /*!< Offset: 0x000 (R/W) Watchdog mode Register */ 00525 __IO uint32_t TC ; /*!< Offset: 0x004 (R/W) Watchdog timer constant Register */ 00526 __O uint32_t FEED ; /*!< Offset: 0x008 ( /W) Watchdog feed sequence Register */ 00527 __I uint32_t TV ; /*!< Offset: 0x00C (R/ ) Watchdog timer value Register */ 00528 __IO uint32_t WDCLKSEL; 00529 } LPC_WDT_TypeDef; 00530 00531 /*------------- Analog-to-Digital Converter (ADC) ----------------------------*/ 00532 /** @brief Analog-to-Digital Converter (ADC) register structure definition */ 00533 typedef struct 00534 { 00535 __IO uint32_t CR ; /*!< Offset: 0x000 (R/W) A/D Control Register */ 00536 __IO uint32_t GDR ; /*!< Offset: 0x004 (R/W) A/D Global Data Register */ 00537 uint32_t RESERVED0; 00538 __IO uint32_t INTEN ; /*!< Offset: 0x00C (R/W) A/D Interrupt Enable Register */ 00539 __I uint32_t DR[8]; /*!< Offset: 0x010 (R/ ) A/D Channel # Data Register */ 00540 __I uint32_t STAT ; /*!< Offset: 0x030 (R/ ) A/D Status Register */ 00541 __IO uint32_t ADTRM ; /*!< Offset: 0x034 (R/W) ADC trim Register */ 00542 } LPC_ADC_TypeDef; 00543 00544 /*------------- Digital-to-Analog Converter (DAC) ----------------------------*/ 00545 /** @brief Digital-to-Analog Converter (DAC) register structure definition */ 00546 typedef struct 00547 { 00548 __IO uint32_t CR ; /*!< Offset: 0x000 (R/W) D/A Converter Register */ 00549 __IO uint32_t CTRL ; /*!< Offset: 0x004 (R/W) DAC Control register */ 00550 __IO uint32_t CNTVAL ; /*!< Offset: 0x008 (R/W) DAC Counter Value Register */ 00551 } LPC_DAC_TypeDef; 00552 00553 /*------------- Motor Control Pulse-Width Modulation (MCPWM) -----------------*/ 00554 /** @brief Motor Control Pulse-Width Modulation (MCPWM) register structure definition */ 00555 typedef struct 00556 { 00557 __I uint32_t CON ; /*!< Offset: 0x000 (R/ ) PWM Control read address Register */ 00558 __O uint32_t CON_SET ; /*!< Offset: 0x004 ( /W) PWM Control set address Register */ 00559 __O uint32_t CON_CLR ; /*!< Offset: 0x008 ( /W) PWM Control clear address Register */ 00560 __I uint32_t CAPCON ; /*!< Offset: 0x00C (R/ ) Capture Control read address Register */ 00561 __O uint32_t CAPCON_SET ; /*!< Offset: 0x010 ( /W) Capture Control set address Register */ 00562 __O uint32_t CAPCON_CLR ; /*!< Offset: 0x014 ( /W) Event Control clear address Register */ 00563 __IO uint32_t TC0 ; /*!< Offset: 0x018 (R/W) Timer Counter Register, channel 0 */ 00564 __IO uint32_t TC1 ; /*!< Offset: 0x01C (R/W) Timer Counter Register, channel 1 */ 00565 __IO uint32_t TC2 ; /*!< Offset: 0x020 (R/W) Timer Counter Register, channel 2 */ 00566 __IO uint32_t LIM0 ; /*!< Offset: 0x024 (R/W) Limit Register, channel 0 */ 00567 __IO uint32_t LIM1 ; /*!< Offset: 0x028 (R/W) Limit Register, channel 1 */ 00568 __IO uint32_t LIM2 ; /*!< Offset: 0x02C (R/W) Limit Register, channel 2 */ 00569 __IO uint32_t MAT0 ; /*!< Offset: 0x030 (R/W) Match Register, channel 0 */ 00570 __IO uint32_t MAT1 ; /*!< Offset: 0x034 (R/W) Match Register, channel 1 */ 00571 __IO uint32_t MAT2 ; /*!< Offset: 0x038 (R/W) Match Register, channel 2 */ 00572 __IO uint32_t DT ; /*!< Offset: 0x03C (R/W) Dead time Register */ 00573 __IO uint32_t CP ; /*!< Offset: 0x040 (R/W) Commutation Pattern Register */ 00574 __IO uint32_t CAP0 ; /*!< Offset: 0x044 (R/W) Capture Register, channel 0 */ 00575 __IO uint32_t CAP1 ; /*!< Offset: 0x048 (R/W) Capture Register, channel 1 */ 00576 __IO uint32_t CAP2 ; /*!< Offset: 0x04C (R/W) Capture Register, channel 2 */ 00577 __I uint32_t INTEN ; /*!< Offset: 0x050 (R/ ) Interrupt Enable read Register */ 00578 __O uint32_t INTEN_SET ; /*!< Offset: 0x054 ( /W) Interrupt Enable set address Register */ 00579 __O uint32_t INTEN_CLR ; /*!< Offset: 0x058 ( /W) Interrupt Enable clear address Register */ 00580 __I uint32_t CNTCON ; /*!< Offset: 0x05C (R/ ) Count Control read address Register */ 00581 __O uint32_t CNTCON_SET ; /*!< Offset: 0x060 ( /W) Count Control set address Register */ 00582 __O uint32_t CNTCON_CLR ; /*!< Offset: 0x064 ( /W) Count Control clear address Register */ 00583 __I uint32_t INTF ; /*!< Offset: 0x068 (R/ ) Interrupt flags read address Register */ 00584 __O uint32_t INTF_SET ; /*!< Offset: 0x06C ( /W) Interrupt flags set address Register */ 00585 __O uint32_t INTF_CLR ; /*!< Offset: 0x070 ( /W) Interrupt flags clear address Register */ 00586 __O uint32_t CAP_CLR ; /*!< Offset: 0x074 ( /W) Capture clear address Register */ 00587 } LPC_MCPWM_TypeDef; 00588 00589 /*------------- Quadrature Encoder Interface (QEI) ---------------------------*/ 00590 /** @brief Quadrature Encoder Interface (QEI) register structure definition */ 00591 typedef struct 00592 { 00593 __O uint32_t CON ; /*!< Offset: 0x000 ( /W) Control Register */ 00594 __I uint32_t STAT ; /*!< Offset: 0x004 (R/ ) Encoder Status Register */ 00595 __IO uint32_t CONF ; /*!< Offset: 0x008 (R/W) Configuration Register */ 00596 __I uint32_t POS ; /*!< Offset: 0x00C (R/ ) Position Register */ 00597 __IO uint32_t MAXPOS ; /*!< Offset: 0x010 (R/W) Maximum position Register */ 00598 __IO uint32_t CMPOS0 ; /*!< Offset: 0x014 (R/W) Position compare Register 0 */ 00599 __IO uint32_t CMPOS1 ; /*!< Offset: 0x018 (R/W) Position compare Register 1 */ 00600 __IO uint32_t CMPOS2 ; /*!< Offset: 0x01C (R/W) Position compare Register 2 */ 00601 __I uint32_t INXCNT ; /*!< Offset: 0x020 (R/ ) Index count Register */ 00602 __IO uint32_t INXCMP0 ; /*!< Offset: 0x024 (R/W) Index compare Register 0 */ 00603 __IO uint32_t LOAD ; /*!< Offset: 0x028 (R/W) Velocity timer reload Register */ 00604 __I uint32_t TIME ; /*!< Offset: 0x02C (R/ ) Velocity timer Register */ 00605 __I uint32_t VEL ; /*!< Offset: 0x030 (R/ ) Velocity counter Register */ 00606 __I uint32_t CAP ; /*!< Offset: 0x034 (R/ ) Velocity capture Register */ 00607 __IO uint32_t VELCOMP ; /*!< Offset: 0x038 (R/W) Velocity compare Register */ 00608 __IO uint32_t FILTER; 00609 uint32_t RESERVED0[998]; 00610 __O uint32_t IEC ; /*!< Offset: 0xFD8 ( /W) Interrupt enable clear Register */ 00611 __O uint32_t IES ; /*!< Offset: 0xFDC ( /W) Interrupt enable set Register */ 00612 __I uint32_t INTSTAT ; /*!< Offset: 0xFE0 (R/ ) Interrupt status Register */ 00613 __I uint32_t IE ; /*!< Offset: 0xFE4 (R/ ) Interrupt enable Register */ 00614 __O uint32_t CLR ; /*!< Offset: 0xFE8 ( /W) Interrupt status clear Register */ 00615 __O uint32_t SET ; /*!< Offset: 0xFEC ( /W) Interrupt status set Register */ 00616 } LPC_QEI_TypeDef; 00617 00618 /*------------- Controller Area Network (CAN) --------------------------------*/ 00619 /** @brief Controller Area Network Acceptance Filter RAM (CANAF_RAM)structure definition */ 00620 typedef struct 00621 { 00622 __IO uint32_t mask[512]; /*!< Offset: 0x000 (R/W) Acceptance Filter RAM */ 00623 } LPC_CANAF_RAM_TypeDef; 00624 00625 /** @brief Controller Area Network Acceptance Filter(CANAF) register structure definition */ 00626 typedef struct /* Acceptance Filter Registers */ 00627 { 00628 __IO uint32_t AFMR ; /*!< Offset: 0x000 (R/W) Acceptance Filter Register */ 00629 __IO uint32_t SFF_sa ; /*!< Offset: 0x004 (R/W) Standard Frame Individual Start Address Register */ 00630 __IO uint32_t SFF_GRP_sa ; /*!< Offset: 0x008 (R/W) Standard Frame Group Start Address Register */ 00631 __IO uint32_t EFF_sa ; /*!< Offset: 0x00C (R/W) Extended Frame Start Address Register */ 00632 __IO uint32_t EFF_GRP_sa ; /*!< Offset: 0x010 (R/W) Extended Frame Group Start Address Register */ 00633 __IO uint32_t ENDofTable ; /*!< Offset: 0x014 (R/W) End of AF Tables Register */ 00634 __I uint32_t LUTerrAd ; /*!< Offset: 0x018 (R/ ) LUT Error Address Register */ 00635 __I uint32_t LUTerr ; /*!< Offset: 0x01C (R/ ) LUT Error Register */ 00636 __IO uint32_t FCANIE ; /*!< Offset: 0x020 (R/W) Global FullCANInterrupt Enable Register */ 00637 __IO uint32_t FCANIC0 ; /*!< Offset: 0x024 (R/W) FullCAN Interrupt and Capture Register 0 */ 00638 __IO uint32_t FCANIC1 ; /*!< Offset: 0x028 (R/W) FullCAN Interrupt and Capture Register 1 */ 00639 } LPC_CANAF_TypeDef; 00640 00641 /** @brief Controller Area Network Central (CANCR) register structure definition */ 00642 typedef struct /* Central Registers */ 00643 { 00644 __I uint32_t TxSR ; /*!< Offset: 0x000 (R/ ) CAN Central Transmit Status Register */ 00645 __I uint32_t RxSR ; /*!< Offset: 0x004 (R/ ) CAN Central Receive Status Register */ 00646 __I uint32_t MSR ; /*!< Offset: 0x008 (R/ ) CAN Central Miscellaneous Register */ 00647 } LPC_CANCR_TypeDef; 00648 00649 /** @brief Controller Area Network Controller (CAN) register structure definition */ 00650 typedef struct /* Controller Registers */ 00651 { 00652 __IO uint32_t MOD ; /*!< Offset: 0x000 (R/W) CAN Mode Register */ 00653 __O uint32_t CMR ; /*!< Offset: 0x004 ( /W) CAN Command Register */ 00654 __IO uint32_t GSR ; /*!< Offset: 0x008 (R/W) CAN Global Status Register */ 00655 __I uint32_t ICR ; /*!< Offset: 0x00C (R/ ) CAN Interrupt and Capture Register */ 00656 __IO uint32_t IER ; /*!< Offset: 0x010 (R/W) CAN Interrupt Enable Register */ 00657 __IO uint32_t BTR ; /*!< Offset: 0x014 (R/W) CAN Bus Timing Register */ 00658 __IO uint32_t EWL ; /*!< Offset: 0x018 (R/W) CAN Error Warning Limit Register */ 00659 __I uint32_t SR ; /*!< Offset: 0x01C (R/ ) CAN Status Register */ 00660 __IO uint32_t RFS ; /*!< Offset: 0x020 (R/W) CAN Receive Frame Status Register */ 00661 __IO uint32_t RID ; /*!< Offset: 0x024 (R/W) CAN Receive Identifier Register */ 00662 __IO uint32_t RDA ; /*!< Offset: 0x028 (R/W) CAN Receive Data Register A */ 00663 __IO uint32_t RDB ; /*!< Offset: 0x02C (R/W) CAN Receive Data Register B */ 00664 __IO uint32_t TFI1 ; /*!< Offset: 0x030 (R/W) CAN Transmit Frame Information Register 1 */ 00665 __IO uint32_t TID1 ; /*!< Offset: 0x034 (R/W) CAN Transmit Identifier Register 1 */ 00666 __IO uint32_t TDA1 ; /*!< Offset: 0x038 (R/W) CAN Transmit Data Register A 1 */ 00667 __IO uint32_t TDB1 ; /*!< Offset: 0x03C (R/W) CAN Transmit Data Register B 1 */ 00668 __IO uint32_t TFI2 ; /*!< Offset: 0x040 (R/W) CAN Transmit Frame Information Register 2 */ 00669 __IO uint32_t TID2 ; /*!< Offset: 0x044 (R/W) CAN Transmit Identifier Register 2 */ 00670 __IO uint32_t TDA2 ; /*!< Offset: 0x048 (R/W) CAN Transmit Data Register A 2 */ 00671 __IO uint32_t TDB2 ; /*!< Offset: 0x04C (R/W) CAN Transmit Data Register B 2 */ 00672 __IO uint32_t TFI3 ; /*!< Offset: 0x050 (R/W) CAN Transmit Frame Information Register 3 */ 00673 __IO uint32_t TID3 ; /*!< Offset: 0x054 (R/W) CAN Transmit Identifier Register 3 */ 00674 __IO uint32_t TDA3 ; /*!< Offset: 0x058 (R/W) CAN Transmit Data Register A 3 */ 00675 __IO uint32_t TDB3 ; /*!< Offset: 0x05C (R/W) CAN Transmit Data Register B 3 */ 00676 } LPC_CAN_TypeDef; 00677 00678 /*------------- General Purpose Direct Memory Access (GPDMA) -----------------*/ 00679 /** @brief General Purpose Direct Memory Access (GPDMA) register structure definition */ 00680 typedef struct /* Common Registers */ 00681 { 00682 __I uint32_t IntStat ; /*!< Offset: 0x000 (R/ ) DMA Interrupt Status Register */ 00683 __I uint32_t IntTCStat ; /*!< Offset: 0x004 (R/ ) DMA Interrupt Terminal Count Request Status Register */ 00684 __O uint32_t IntTCClear ; /*!< Offset: 0x008 ( /W) DMA Interrupt Terminal Count Request Clear Register */ 00685 __I uint32_t IntErrStat ; /*!< Offset: 0x00C (R/ ) DMA Interrupt Error Status Register */ 00686 __O uint32_t IntErrClr ; /*!< Offset: 0x010 ( /W) DMA Interrupt Error Clear Register */ 00687 __I uint32_t RawIntTCStat ; /*!< Offset: 0x014 (R/ ) DMA Raw Interrupt Terminal Count Status Register */ 00688 __I uint32_t RawIntErrStat ; /*!< Offset: 0x018 (R/ ) DMA Raw Error Interrupt Status Register */ 00689 __I uint32_t EnbldChns ; /*!< Offset: 0x01C (R/ ) DMA Enabled Channel Register */ 00690 __IO uint32_t SoftBReq ; /*!< Offset: 0x020 (R/W) DMA Software Burst Request Register */ 00691 __IO uint32_t SoftSReq ; /*!< Offset: 0x024 (R/W) DMA Software Single Request Register */ 00692 __IO uint32_t SoftLBReq ; /*!< Offset: 0x028 (R/W) DMA Software Last Burst Request Register */ 00693 __IO uint32_t SoftLSReq ; /*!< Offset: 0x02C (R/W) DMA Software Last Single Request Register */ 00694 __IO uint32_t Config ; /*!< Offset: 0x030 (R/W) DMA Configuration Register */ 00695 __IO uint32_t Sync ; /*!< Offset: 0x034 (R/W) DMA Synchronization Register */ 00696 } LPC_GPDMA_TypeDef; 00697 00698 /** @brief General Purpose Direct Memory Access Channel (GPDMACH) register structure definition */ 00699 typedef struct /* Channel Registers */ 00700 { 00701 __IO uint32_t CSrcAddr ; /*!< Offset: 0x000 (R/W) DMA Channel # Source Address Register */ 00702 __IO uint32_t CDestAddr ; /*!< Offset: 0x004 (R/W) DMA Channel # Destination Address Register */ 00703 __IO uint32_t CLLI ; /*!< Offset: 0x008 (R/W) DMA Channel # Linked List Item Register */ 00704 __IO uint32_t CControl ; /*!< Offset: 0x00C (R/W) DMA Channel # Control Register */ 00705 __IO uint32_t CConfig ; /*!< Offset: 0x010 (R/W) DMA Channel # Configuration Register */ 00706 } LPC_GPDMACH_TypeDef; 00707 00708 /*------------- Universal Serial Bus (USB) -----------------------------------*/ 00709 /** @brief Universal Serial Bus (USB) register structure definition */ 00710 typedef struct 00711 { 00712 __I uint32_t Revision ; /*!< Offset: 0x000 (R/ ) Revision Register */ 00713 __IO uint32_t Control ; /*!< Offset: 0x004 (R/W) Control Register */ 00714 __IO uint32_t CommandStatus ; /*!< Offset: 0x008 (R/W) Command / Status Register */ 00715 __IO uint32_t InterruptStatus ; /*!< Offset: 0x00C (R/W) Interrupt Status Register */ 00716 __IO uint32_t InterruptEnable ; /*!< Offset: 0x010 (R/W) Interrupt Enable Register */ 00717 __IO uint32_t InterruptDisable ; /*!< Offset: 0x014 (R/W) Interrupt Disable Register */ 00718 __IO uint32_t HCCA ; /*!< Offset: 0x018 (R/W) Host Controller communication Area Register */ 00719 __I uint32_t PeriodCurrentED ; /*!< Offset: 0x01C (R/ ) Register */ 00720 __IO uint32_t ControlHeadED ; /*!< Offset: 0x020 (R/W) Register */ 00721 __IO uint32_t ControlCurrentED ; /*!< Offset: 0x024 (R/W) Register */ 00722 __IO uint32_t BulkHeadED ; /*!< Offset: 0x028 (R/W) Register */ 00723 __IO uint32_t BulkCurrentED ; /*!< Offset: 0x02C (R/W) Register */ 00724 __I uint32_t DoneHead ; /*!< Offset: 0x030 (R/ ) Register */ 00725 __IO uint32_t FmInterval ; /*!< Offset: 0x034 (R/W) Register */ 00726 __I uint32_t FmRemaining ; /*!< Offset: 0x038 (R/ ) Register */ 00727 __I uint32_t FmNumber ; /*!< Offset: 0x03C (R/ ) Register */ 00728 __IO uint32_t PeriodicStart ; /*!< Offset: 0x040 (R/W) Register */ 00729 __IO uint32_t LSTreshold ; /*!< Offset: 0x044 (R/W) Register */ 00730 __IO uint32_t RhDescriptorA ; /*!< Offset: 0x048 (R/W) Register */ 00731 __IO uint32_t RhDescriptorB ; /*!< Offset: 0x04C (R/W) Register */ 00732 __IO uint32_t RhStatus ; /*!< Offset: 0x050 (R/W) Register */ 00733 __IO uint32_t RhPortStatus1 ; /*!< Offset: 0x054 (R/W) Register */ 00734 __IO uint32_t RhPortStatus2 ; /*!< Offset: 0x05C (R/W) Register */ 00735 uint32_t RESERVED0[40]; 00736 __I uint32_t Module_ID ; /*!< Offset: 0x0FC (R/ ) Module ID / Version Reverence ID Register */ 00737 /* USB On-The-Go Registers */ 00738 __I uint32_t IntSt ; /*!< Offset: 0x100 (R/ ) OTG Interrupt Status Register */ 00739 __IO uint32_t IntEn ; /*!< Offset: 0x104 (R/W) OTG Interrupt Enable Register */ 00740 __O uint32_t IntSet ; /*!< Offset: 0x108 ( /W) OTG Interrupt Set Register */ 00741 __O uint32_t IntClr ; /*!< Offset: 0x10C ( /W) OTG Interrupt Clear Register */ 00742 __IO uint32_t StCtrl ; /*!< Offset: 0x110 (R/W) OTG Status and Control Register */ 00743 __IO uint32_t Tmr ; /*!< Offset: 0x114 (R/W) OTG Timer Register */ 00744 uint32_t RESERVED1[58]; 00745 /* USB Device Interrupt Registers */ 00746 __I uint32_t DevIntSt ; /*!< Offset: 0x200 (R/ ) USB Device Interrupt Status Register */ 00747 __IO uint32_t DevIntEn ; /*!< Offset: 0x204 (R/W) USB Device Interrupt Enable Register */ 00748 __O uint32_t DevIntClr ; /*!< Offset: 0x208 ( /W) USB Device Interrupt Clear Register */ 00749 __O uint32_t DevIntSet ; /*!< Offset: 0x20C ( /W) USB Device Interrupt Set Register */ 00750 /* USB Device SIE Command Registers */ 00751 __O uint32_t CmdCode ; /*!< Offset: 0x210 (R/W) USB Command Code Register */ 00752 __I uint32_t CmdData ; /*!< Offset: 0x214 (R/W) USB Command Data Register */ 00753 /* USB Device Transfer Registers */ 00754 __I uint32_t RxData ; /*!< Offset: 0x218 (R/ ) USB Receive Data Register */ 00755 __O uint32_t TxData ; /*!< Offset: 0x21C ( /W) USB Transmit Data Register */ 00756 __I uint32_t RxPLen ; /*!< Offset: 0x220 (R/ ) USB Receive Packet Length Register */ 00757 __O uint32_t TxPLen ; /*!< Offset: 0x224 ( /W) USB Transmit Packet Length Register */ 00758 __IO uint32_t Ctrl ; /*!< Offset: 0x228 (R/W) USB Control Register */ 00759 __O uint32_t DevIntPri ; /*!< Offset: 0x22C (R/W) USB Device Interrupt Priority Register */ 00760 /* USB Device Endpoint Interrupt Regs */ 00761 __I uint32_t EpIntSt ; /*!< Offset: 0x230 (R/ ) USB Endpoint Interrupt Status Register */ 00762 __IO uint32_t EpIntEn ; /*!< Offset: 0x234 (R/W) USB Endpoint Interrupt Enable Register */ 00763 __O uint32_t EpIntClr ; /*!< Offset: 0x238 ( /W) USB Endpoint Interrupt Clear Register */ 00764 __O uint32_t EpIntSet ; /*!< Offset: 0x23C ( /W) USB Endpoint Interrupt Set Register */ 00765 __O uint32_t EpIntPri ; /*!< Offset: 0x240 ( /W) USB Endpoint Interrupt Priority Register */ 00766 /* USB Device Endpoint Realization Reg*/ 00767 __IO uint32_t ReEp ; /*!< Offset: 0x244 (R/W) USB Realize Endpoint Register */ 00768 __O uint32_t EpInd ; /*!< Offset: 0x248 ( /W) USB Endpoint Index Register */ 00769 __IO uint32_t MaxPSize ; /*!< Offset: 0x24C (R/W) USB MaxPacketSize Register */ 00770 /* USB Device DMA Registers */ 00771 __I uint32_t DMARSt ; /*!< Offset: 0x250 (R/ ) USB DMA Request Status Register */ 00772 __O uint32_t DMARClr ; /*!< Offset: 0x254 ( /W) USB DMA Request Clear Register */ 00773 __O uint32_t DMARSet ; /*!< Offset: 0x258 ( /W) USB DMA Request Set Register */ 00774 uint32_t RESERVED2[9]; 00775 __IO uint32_t UDCAH ; /*!< Offset: 0x280 (R/W) USB UDCA Head Register */ 00776 __I uint32_t EpDMASt ; /*!< Offset: 0x284 (R/ ) USB EP DMA Status Register */ 00777 __O uint32_t EpDMAEn ; /*!< Offset: 0x288 ( /W) USB EP DMA Enable Register */ 00778 __O uint32_t EpDMADis ; /*!< Offset: 0x28C ( /W) USB EP DMA Disable Register */ 00779 __I uint32_t DMAIntSt ; /*!< Offset: 0x290 (R/ ) USB DMA Interrupt Status Register */ 00780 __IO uint32_t DMAIntEn ; /*!< Offset: 0x294 (R/W) USB DMA Interrupt Enable Register */ 00781 uint32_t RESERVED3[2]; 00782 __I uint32_t EoTIntSt ; /*!< Offset: 0x2A0 (R/ ) USB End of Transfer Interrupt Status Register */ 00783 __O uint32_t EoTIntClr ; /*!< Offset: 0x2A4 ( /W) USB End of Transfer Interrupt Clear Register */ 00784 __O uint32_t EoTIntSet ; /*!< Offset: 0x2A8 ( /W) USB End of Transfer Interrupt Set Register */ 00785 __I uint32_t NDDRIntSt ; /*!< Offset: 0x2AC (R/ ) USB New DD Request Interrupt Status Register */ 00786 __O uint32_t NDDRIntClr ; /*!< Offset: 0x2B0 ( /W) USB New DD Request Interrupt Clear Register */ 00787 __O uint32_t NDDRIntSet ; /*!< Offset: 0x2B4 ( /W) USB New DD Request Interrupt Set Register */ 00788 __I uint32_t SysErrIntSt ; /*!< Offset: 0x2B8 (R/ ) USB System Error Interrupt Status Register */ 00789 __O uint32_t SysErrIntClr ; /*!< Offset: 0x2BC ( /W) USB System Error Interrupt Clear Register */ 00790 __O uint32_t SysErrIntSet ; /*!< Offset: 0x2C0 ( /W) USB System Error Interrupt Set Register */ 00791 uint32_t RESERVED4[15]; 00792 /* USB OTG I2C Registers */ 00793 union { 00794 __I uint32_t I2C_RX ; /*!< Offset: 0x300 (R/ ) OTG I2C Receive Register */ 00795 __O uint32_t I2C_TX ; /*!< Offset: 0x300 ( /W) OTG I2C Transmit Register */ 00796 }; 00797 __I uint32_t I2C_STS ; /*!< Offset: 0x304 (R/ ) OTG I2C Status Register */ 00798 __IO uint32_t I2C_CTL ; /*!< Offset: 0x308 (R/W) OTG I2C Control Register */ 00799 __IO uint32_t I2C_CLKHI ; /*!< Offset: 0x30C (R/W) OTG I2C Clock High Register */ 00800 __O uint32_t I2C_CLKLO ; /*!< Offset: 0x310 ( /W) OTG I2C Clock Low Register */ 00801 uint32_t RESERVED5[824]; 00802 /* USB Clock Control Registers */ 00803 union { 00804 __IO uint32_t USBClkCtrl ; /*!< Offset: 0xFF4 (R/W) OTG clock controller Register */ 00805 __IO uint32_t OTGClkCtrl ; /*!< Offset: 0xFF4 (R/W) USB clock controller Register */ 00806 }; 00807 union { 00808 __I uint32_t USBClkSt ; /*!< Offset: 0xFF8 (R/ ) OTG clock status Register */ 00809 __I uint32_t OTGClkSt ; /*!< Offset: 0xFF8 (R/ ) USB clock status Register */ 00810 }; 00811 } LPC_USB_TypeDef; 00812 00813 /*------------- Ethernet Media Access Controller (EMAC) ----------------------*/ 00814 /** @brief Ethernet Media Access Controller (EMAC) register structure definition */ 00815 typedef struct 00816 { 00817 __IO uint32_t MAC1 ; /*!< Offset: 0x000 (R/W) MAC Configuration Register 1 */ 00818 __IO uint32_t MAC2 ; /*!< Offset: 0x004 (R/W) MAC Configuration Register 2 */ 00819 __IO uint32_t IPGT ; /*!< Offset: 0x008 (R/W) Back-to-Back Inter-Packet-Gap Register */ 00820 __IO uint32_t IPGR ; /*!< Offset: 0x00C (R/W) Non Back-to-Back Inter-Packet-Gap Register */ 00821 __IO uint32_t CLRT ; /*!< Offset: 0x010 (R/W) Collision Window / Retry Register */ 00822 __IO uint32_t MAXF ; /*!< Offset: 0x014 (R/W) Maximum Frame Register */ 00823 __IO uint32_t SUPP ; /*!< Offset: 0x018 (R/W) PHY Support Register */ 00824 __IO uint32_t TEST ; /*!< Offset: 0x01C (R/W) Test Register */ 00825 __IO uint32_t MCFG ; /*!< Offset: 0x020 (R/W) MII Mgmt Configuration Register */ 00826 __IO uint32_t MCMD ; /*!< Offset: 0x024 (R/W) MII Mgmt Command Register */ 00827 __IO uint32_t MADR ; /*!< Offset: 0x028 (R/W) MII Mgmt Address Register */ 00828 __O uint32_t MWTD ; /*!< Offset: 0x02C ( /W) MII Mgmt Write Data Register */ 00829 __I uint32_t MRDD ; /*!< Offset: 0x030 (R/ ) MII Mgmt Read Data Register */ 00830 __I uint32_t MIND ; /*!< Offset: 0x034 (R/ ) MII Mgmt Indicators Register */ 00831 uint32_t RESERVED0[2]; 00832 __IO uint32_t SA0 ; /*!< Offset: 0x040 (R/W) Station Address 0 Register */ 00833 __IO uint32_t SA1 ; /*!< Offset: 0x044 (R/W) Station Address 1 Register */ 00834 __IO uint32_t SA2 ; /*!< Offset: 0x048 (R/W) Station Address 2 Register */ 00835 uint32_t RESERVED1[45]; 00836 __IO uint32_t Command ; /*!< Offset: 0x100 (R/W) Command Register */ 00837 __I uint32_t Status ; /*!< Offset: 0x104 (R/ ) Status Register */ 00838 __IO uint32_t RxDescriptor ; /*!< Offset: 0x108 (R/W) Receive Descriptor Base Address Register */ 00839 __IO uint32_t RxStatus ; /*!< Offset: 0x10C (R/W) Receive Status Base Address Register */ 00840 __IO uint32_t RxDescriptorNumber ; /*!< Offset: 0x110 (R/W) Receive Number of Descriptors Register */ 00841 __I uint32_t RxProduceIndex ; /*!< Offset: 0x114 (R/ ) Receive Produce Index Register */ 00842 __IO uint32_t RxConsumeIndex ; /*!< Offset: 0x118 (R/W) Receive Consume Index Register */ 00843 __IO uint32_t TxDescriptor ; /*!< Offset: 0x11C (R/W) Transmit Descriptor Base Address Register */ 00844 __IO uint32_t TxStatus ; /*!< Offset: 0x120 (R/W) Transmit Status Base Address Register */ 00845 __IO uint32_t TxDescriptorNumber ; /*!< Offset: 0x124 (R/W) Transmit Number of Descriptors Register */ 00846 __IO uint32_t TxProduceIndex ; /*!< Offset: 0x128 (R/W) Transmit Produce Index Register */ 00847 __I uint32_t TxConsumeIndex ; /*!< Offset: 0x12C (R/ ) Transmit Consume Index Register */ 00848 uint32_t RESERVED2[10]; 00849 __I uint32_t TSV0 ; /*!< Offset: 0x158 (R/ ) Transmit Status Vector 0 Register */ 00850 __I uint32_t TSV1 ; /*!< Offset: 0x15C (R/ ) Transmit Status Vector 1 Register */ 00851 __I uint32_t RSV ; /*!< Offset: 0x160 (R/ ) Receive Status Vector Register */ 00852 uint32_t RESERVED3[3]; 00853 __IO uint32_t FlowControlCounter ; /*!< Offset: 0x170 (R/W) Flow Control Counter Register */ 00854 __I uint32_t FlowControlStatus ; /*!< Offset: 0x174 (R/ ) Flow Control Status egister */ 00855 uint32_t RESERVED4[34]; 00856 __IO uint32_t RxFilterCtrl ; /*!< Offset: 0x200 (R/W) Receive Filter Control Register */ 00857 __I uint32_t RxFilterWoLStatus ; /*!< Offset: 0x204 (R/ ) Receive Filter WoL Status Register */ 00858 __O uint32_t RxFilterWoLClear ; /*!< Offset: 0x208 ( /W) Receive Filter WoL Clear Register */ 00859 uint32_t RESERVED5; 00860 __IO uint32_t HashFilterL ; /*!< Offset: 0x210 (R/W) Hash Filter Table LSBs Register */ 00861 __IO uint32_t HashFilterH ; /*!< Offset: 0x214 (R/W) Hash Filter Table MSBs Register */ 00862 uint32_t RESERVED6[882]; 00863 __I uint32_t IntStatus ; /*!< Offset: 0xFE0 (R/ ) Interrupt Status Register */ 00864 __IO uint32_t IntEnable ; /*!< Offset: 0xFE4 (R/W) Interrupt Enable Register */ 00865 __O uint32_t IntClear ; /*!< Offset: 0xFE8 ( /W) Interrupt Clear Register */ 00866 __O uint32_t IntSet ; /*!< Offset: 0xFEC ( /W) Interrupt Set Register */ 00867 uint32_t RESERVED7; 00868 __IO uint32_t PowerDown ; /*!< Offset: 0xFF4 (R/W) Power-Down Register */ 00869 } LPC_EMAC_TypeDef; 00870 00871 #if defined ( __CC_ARM ) 00872 #pragma no_anon_unions 00873 #endif 00874 00875 00876 /******************************************************************************/ 00877 /* Peripheral memory map */ 00878 /******************************************************************************/ 00879 /* Base addresses */ 00880 #define LPC_FLASH_BASE (0x00000000UL) 00881 #define LPC_RAM_BASE (0x10000000UL) 00882 #ifdef __LPC17XX_REV00 00883 #define LPC_AHBRAM0_BASE (0x20000000UL) 00884 #define LPC_AHBRAM1_BASE (0x20004000UL) 00885 #else 00886 #define LPC_AHBRAM0_BASE (0x2007C000UL) 00887 #define LPC_AHBRAM1_BASE (0x20080000UL) 00888 #endif 00889 #define LPC_GPIO_BASE (0x2009C000UL) 00890 #define LPC_APB0_BASE (0x40000000UL) 00891 #define LPC_APB1_BASE (0x40080000UL) 00892 #define LPC_AHB_BASE (0x50000000UL) 00893 #define LPC_CM3_BASE (0xE0000000UL) 00894 00895 /* APB0 peripherals */ 00896 #define LPC_WDT_BASE (LPC_APB0_BASE + 0x00000) 00897 #define LPC_TIM0_BASE (LPC_APB0_BASE + 0x04000) 00898 #define LPC_TIM1_BASE (LPC_APB0_BASE + 0x08000) 00899 #define LPC_UART0_BASE (LPC_APB0_BASE + 0x0C000) 00900 #define LPC_UART1_BASE (LPC_APB0_BASE + 0x10000) 00901 #define LPC_PWM1_BASE (LPC_APB0_BASE + 0x18000) 00902 #define LPC_I2C0_BASE (LPC_APB0_BASE + 0x1C000) 00903 #define LPC_SPI_BASE (LPC_APB0_BASE + 0x20000) 00904 #define LPC_RTC_BASE (LPC_APB0_BASE + 0x24000) 00905 #define LPC_GPIOINT_BASE (LPC_APB0_BASE + 0x28080) 00906 #define LPC_PINCON_BASE (LPC_APB0_BASE + 0x2C000) 00907 #define LPC_SSP1_BASE (LPC_APB0_BASE + 0x30000) 00908 #define LPC_ADC_BASE (LPC_APB0_BASE + 0x34000) 00909 #define LPC_CANAF_RAM_BASE (LPC_APB0_BASE + 0x38000) 00910 #define LPC_CANAF_BASE (LPC_APB0_BASE + 0x3C000) 00911 #define LPC_CANCR_BASE (LPC_APB0_BASE + 0x40000) 00912 #define LPC_CAN1_BASE (LPC_APB0_BASE + 0x44000) 00913 #define LPC_CAN2_BASE (LPC_APB0_BASE + 0x48000) 00914 #define LPC_I2C1_BASE (LPC_APB0_BASE + 0x5C000) 00915 00916 /* APB1 peripherals */ 00917 #define LPC_SSP0_BASE (LPC_APB1_BASE + 0x08000) 00918 #define LPC_DAC_BASE (LPC_APB1_BASE + 0x0C000) 00919 #define LPC_TIM2_BASE (LPC_APB1_BASE + 0x10000) 00920 #define LPC_TIM3_BASE (LPC_APB1_BASE + 0x14000) 00921 #define LPC_UART2_BASE (LPC_APB1_BASE + 0x18000) 00922 #define LPC_UART3_BASE (LPC_APB1_BASE + 0x1C000) 00923 #define LPC_I2C2_BASE (LPC_APB1_BASE + 0x20000) 00924 #define LPC_I2S_BASE (LPC_APB1_BASE + 0x28000) 00925 #define LPC_RIT_BASE (LPC_APB1_BASE + 0x30000) 00926 #define LPC_MCPWM_BASE (LPC_APB1_BASE + 0x38000) 00927 #define LPC_QEI_BASE (LPC_APB1_BASE + 0x3C000) 00928 #define LPC_SC_BASE (LPC_APB1_BASE + 0x7C000) 00929 00930 /* AHB peripherals */ 00931 #define LPC_EMAC_BASE (LPC_AHB_BASE + 0x00000) 00932 #define LPC_GPDMA_BASE (LPC_AHB_BASE + 0x04000) 00933 #define LPC_GPDMACH0_BASE (LPC_AHB_BASE + 0x04100) 00934 #define LPC_GPDMACH1_BASE (LPC_AHB_BASE + 0x04120) 00935 #define LPC_GPDMACH2_BASE (LPC_AHB_BASE + 0x04140) 00936 #define LPC_GPDMACH3_BASE (LPC_AHB_BASE + 0x04160) 00937 #define LPC_GPDMACH4_BASE (LPC_AHB_BASE + 0x04180) 00938 #define LPC_GPDMACH5_BASE (LPC_AHB_BASE + 0x041A0) 00939 #define LPC_GPDMACH6_BASE (LPC_AHB_BASE + 0x041C0) 00940 #define LPC_GPDMACH7_BASE (LPC_AHB_BASE + 0x041E0) 00941 #define LPC_USB_BASE (LPC_AHB_BASE + 0x0C000) 00942 00943 /* GPIOs */ 00944 #define LPC_GPIO0_BASE (LPC_GPIO_BASE + 0x00000) 00945 #define LPC_GPIO1_BASE (LPC_GPIO_BASE + 0x00020) 00946 #define LPC_GPIO2_BASE (LPC_GPIO_BASE + 0x00040) 00947 #define LPC_GPIO3_BASE (LPC_GPIO_BASE + 0x00060) 00948 #define LPC_GPIO4_BASE (LPC_GPIO_BASE + 0x00080) 00949 00950 00951 /******************************************************************************/ 00952 /* Peripheral declaration */ 00953 /******************************************************************************/ 00954 #define LPC_SC ((LPC_SC_TypeDef *) LPC_SC_BASE ) 00955 #define LPC_GPIO0 ((LPC_GPIO_TypeDef *) LPC_GPIO0_BASE ) 00956 #define LPC_GPIO1 ((LPC_GPIO_TypeDef *) LPC_GPIO1_BASE ) 00957 #define LPC_GPIO2 ((LPC_GPIO_TypeDef *) LPC_GPIO2_BASE ) 00958 #define LPC_GPIO3 ((LPC_GPIO_TypeDef *) LPC_GPIO3_BASE ) 00959 #define LPC_GPIO4 ((LPC_GPIO_TypeDef *) LPC_GPIO4_BASE ) 00960 #define LPC_WDT ((LPC_WDT_TypeDef *) LPC_WDT_BASE ) 00961 #define LPC_TIM0 ((LPC_TIM_TypeDef *) LPC_TIM0_BASE ) 00962 #define LPC_TIM1 ((LPC_TIM_TypeDef *) LPC_TIM1_BASE ) 00963 #define LPC_TIM2 ((LPC_TIM_TypeDef *) LPC_TIM2_BASE ) 00964 #define LPC_TIM3 ((LPC_TIM_TypeDef *) LPC_TIM3_BASE ) 00965 #define LPC_RIT ((LPC_RIT_TypeDef *) LPC_RIT_BASE ) 00966 #define LPC_UART0 ((LPC_UART_TypeDef *) LPC_UART0_BASE ) 00967 #define LPC_UART1 ((LPC_UART1_TypeDef *) LPC_UART1_BASE ) 00968 #define LPC_UART2 ((LPC_UART_TypeDef *) LPC_UART2_BASE ) 00969 #define LPC_UART3 ((LPC_UART_TypeDef *) LPC_UART3_BASE ) 00970 #define LPC_PWM1 ((LPC_PWM_TypeDef *) LPC_PWM1_BASE ) 00971 #define LPC_I2C0 ((LPC_I2C_TypeDef *) LPC_I2C0_BASE ) 00972 #define LPC_I2C1 ((LPC_I2C_TypeDef *) LPC_I2C1_BASE ) 00973 #define LPC_I2C2 ((LPC_I2C_TypeDef *) LPC_I2C2_BASE ) 00974 #define LPC_I2S ((LPC_I2S_TypeDef *) LPC_I2S_BASE ) 00975 #define LPC_SPI ((LPC_SPI_TypeDef *) LPC_SPI_BASE ) 00976 #define LPC_RTC ((LPC_RTC_TypeDef *) LPC_RTC_BASE ) 00977 #define LPC_GPIOINT ((LPC_GPIOINT_TypeDef *) LPC_GPIOINT_BASE ) 00978 #define LPC_PINCON ((LPC_PINCON_TypeDef *) LPC_PINCON_BASE ) 00979 #define LPC_SSP0 ((LPC_SSP_TypeDef *) LPC_SSP0_BASE ) 00980 #define LPC_SSP1 ((LPC_SSP_TypeDef *) LPC_SSP1_BASE ) 00981 #define LPC_ADC ((LPC_ADC_TypeDef *) LPC_ADC_BASE ) 00982 #define LPC_DAC ((LPC_DAC_TypeDef *) LPC_DAC_BASE ) 00983 #define LPC_CANAF_RAM ((LPC_CANAF_RAM_TypeDef *) LPC_CANAF_RAM_BASE) 00984 #define LPC_CANAF ((LPC_CANAF_TypeDef *) LPC_CANAF_BASE ) 00985 #define LPC_CANCR ((LPC_CANCR_TypeDef *) LPC_CANCR_BASE ) 00986 #define LPC_CAN1 ((LPC_CAN_TypeDef *) LPC_CAN1_BASE ) 00987 #define LPC_CAN2 ((LPC_CAN_TypeDef *) LPC_CAN2_BASE ) 00988 #define LPC_MCPWM ((LPC_MCPWM_TypeDef *) LPC_MCPWM_BASE ) 00989 #define LPC_QEI ((LPC_QEI_TypeDef *) LPC_QEI_BASE ) 00990 #define LPC_EMAC ((LPC_EMAC_TypeDef *) LPC_EMAC_BASE ) 00991 #define LPC_GPDMA ((LPC_GPDMA_TypeDef *) LPC_GPDMA_BASE ) 00992 #define LPC_GPDMACH0 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH0_BASE ) 00993 #define LPC_GPDMACH1 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH1_BASE ) 00994 #define LPC_GPDMACH2 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH2_BASE ) 00995 #define LPC_GPDMACH3 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH3_BASE ) 00996 #define LPC_GPDMACH4 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH4_BASE ) 00997 #define LPC_GPDMACH5 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH5_BASE ) 00998 #define LPC_GPDMACH6 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH6_BASE ) 00999 #define LPC_GPDMACH7 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH7_BASE ) 01000 #define LPC_USB ((LPC_USB_TypeDef *) LPC_USB_BASE ) 01001 01002 01003 /** 01004 * @} 01005 */ 01006 01007 #endif // __LPC17xx_H__ 01008
Generated on Tue Jul 12 2022 15:16:11 by 1.7.2