Go to the documentation of this file.00001 #ifndef _LPC177X_8X_CLK_H_
00002 #define _LPC177X_8X_CLK_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #define XTAL (12000000UL)
00049 #define OSC_CLK ( XTAL)
00050 #define RTC_CLK ( 32768UL)
00051 #define IRC_OSC (12000000UL)
00052 #define WDT_OSC ( 500000UL)
00053
00054
00055
00056
00057
00058
00059 #define CLKPWR_PCONP_PCLCD 0
00060 #define CLKPWR_PCONP_PCTIM0 1
00061 #define CLKPWR_PCONP_PCTIM1 2
00062 #define CLKPWR_PCONP_PCUART0 3
00063 #define CLKPWR_PCONP_PCUART1 4
00064 #define CLKPWR_PCONP_PCPWM0 5
00065 #define CLKPWR_PCONP_PCPWM1 6
00066 #define CLKPWR_PCONP_PCI2C0 7
00067 #define CLKPWR_PCONP_PCUART4 8
00068 #define CLKPWR_PCONP_PCRTC 9
00069 #define CLKPWR_PCONP_PCSSP1 10
00070 #define CLKPWR_PCONP_PCEMC 11
00071 #define CLKPWR_PCONP_PCADC 12
00072 #define CLKPWR_PCONP_PCAN1 13
00073 #define CLKPWR_PCONP_PCAN2 14
00074 #define CLKPWR_PCONP_PCGPIO 15
00075
00076 #define CLKPWR_PCONP_PCMCPWM 17
00077 #define CLKPWR_PCONP_PCQEI 18
00078 #define CLKPWR_PCONP_PCI2C1 19
00079 #define CLKPWR_PCONP_PCSSP2 20
00080 #define CLKPWR_PCONP_PCSSP0 21
00081 #define CLKPWR_PCONP_PCTIM2 22
00082 #define CLKPWR_PCONP_PCTIM3 23
00083 #define CLKPWR_PCONP_PCUART2 24
00084 #define CLKPWR_PCONP_PCUART3 25
00085 #define CLKPWR_PCONP_PCI2C2 26
00086 #define CLKPWR_PCONP_PCI2S 27
00087 #define CLKPWR_PCONP_PCSDC 28
00088 #define CLKPWR_PCONP_PCGPDMA 29
00089 #define CLKPWR_PCONP_PCENET 30
00090 #define CLKPWR_PCONP_PCUSB 31
00091
00092
00093
00094
00095
00096
00097 #define CLKPWR_RSTCON0_LCD 0
00098 #define CLKPWR_RSTCON0_TIM0 1
00099 #define CLKPWR_RSTCON0_TIM1 2
00100 #define CLKPWR_RSTCON0_UART0 3
00101 #define CLKPWR_RSTCON0_UART1 4
00102 #define CLKPWR_RSTCON0_PWM0 5
00103 #define CLKPWR_RSTCON0_PWM1 6
00104 #define CLKPWR_RSTCON0_I2C0 7
00105 #define CLKPWR_RSTCON0_UART4 8
00106 #define CLKPWR_RSTCON0_RTC 9
00107 #define CLKPWR_RSTCON0_SSP1 10
00108 #define CLKPWR_RSTCON0_EMC 11
00109 #define CLKPWR_RSTCON0_ADC 12
00110 #define CLKPWR_RSTCON0_CAN1 13
00111 #define CLKPWR_RSTCON0_CAN2 14
00112 #define CLKPWR_RSTCON0_GPIO 15
00113
00114 #define CLKPWR_RSTCON0_MCPWM 17
00115 #define CLKPWR_RSTCON0_QEI 18
00116 #define CLKPWR_RSTCON0_I2C1 19
00117 #define CLKPWR_RSTCON0_SSP2 20
00118 #define CLKPWR_RSTCON0_SSP0 21
00119 #define CLKPWR_RSTCON0_TIM2 22
00120 #define CLKPWR_RSTCON0_TIM3 23
00121 #define CLKPWR_RSTCON0_UART2 24
00122 #define CLKPWR_RSTCON0_UART3 25
00123 #define CLKPWR_RSTCON0_I2C2 26
00124 #define CLKPWR_RSTCON0_I2S 27
00125 #define CLKPWR_RSTCON0_SDC 28
00126 #define CLKPWR_RSTCON0_GPDMA 29
00127 #define CLKPWR_RSTCON0_ENET 30
00128 #define CLKPWR_RSTCON0_USB 31
00129
00130 #define CLKPWR_RSTCON1_IOCON 32
00131 #define CLKPWR_RSTCON1_DAC 33
00132 #define CLKPWR_RSTCON1_CANACC 34
00133
00134
00135 #define SysCtlPeripheralClkEnable(bit) CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, PCONP, (bit)) = 1
00136 #define SysCtlPeripheralClkDisable(bit) CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, PCONP, (bit)) = 0
00137 #define SysCtlPeripheralClkGet(bit) CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, PCONP, (bit))
00138
00139 #define SysCtlPeripheralResetEnable(bit) if ((bit) < 32) \
00140 CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, RSTCON0, (bit)) = 1; else \
00141 CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, RSTCON1, (bit - 32)) = 1;
00142 #define SysCtlPeripheralResetDisable(bit) if ((bit) < 32) \
00143 CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, RSTCON0, (bit)) = 0; else \
00144 CM3BBREG(LPC_SC_BASE, LPC_SC_TypeDef, RSTCON1, (bit - 32)) = 0;
00145
00146 uint32_t Lpc17xx_ClockGet(int idx);
00147 uint32_t SysCtlClockGet(void);
00148 int SetSysClock(void);
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163 #define NS_2_CLKS(clock, ns) (((((((clock) >> 4)*69) >> 20)*(ns))>>12)+1)
00164
00165
00166 __attribute__( ( always_inline ) ) static inline void wait_clocks( unsigned int clocks)
00167 {
00168 clocks >>= 1;
00169 while(clocks--) {
00170 asm("":::"memory");
00171 }
00172 }
00173
00174 #endif