OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [CORTEX_STM32F103_GCC_Rowley/] [ST Library/] [inc/] [stm32f10x_rcc.h] - Blame information for rev 582

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 582 jeremybenn
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2
* File Name          : stm32f10x_rcc.h
3
* Author             : MCD Application Team
4
* Version            : V2.0.1
5
* Date               : 06/13/2008
6
* Description        : This file contains all the functions prototypes for the
7
*                      RCC firmware library.
8
********************************************************************************
9
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
10
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
11
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
12
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
13
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
14
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
15
*******************************************************************************/
16
 
17
/* Define to prevent recursive inclusion -------------------------------------*/
18
#ifndef __STM32F10x_RCC_H
19
#define __STM32F10x_RCC_H
20
 
21
/* Includes ------------------------------------------------------------------*/
22
#include "stm32f10x_map.h"
23
 
24
/* Exported types ------------------------------------------------------------*/
25
typedef struct
26
{
27
  u32 SYSCLK_Frequency;
28
  u32 HCLK_Frequency;
29
  u32 PCLK1_Frequency;
30
  u32 PCLK2_Frequency;
31
  u32 ADCCLK_Frequency;
32
}RCC_ClocksTypeDef;
33
 
34
/* Exported constants --------------------------------------------------------*/
35
/* HSE configuration */
36
#define RCC_HSE_OFF                      ((u32)0x00000000)
37
#define RCC_HSE_ON                       ((u32)0x00010000)
38
#define RCC_HSE_Bypass                   ((u32)0x00040000)
39
 
40
#define IS_RCC_HSE(HSE) (((HSE) == RCC_HSE_OFF) || ((HSE) == RCC_HSE_ON) || \
41
                         ((HSE) == RCC_HSE_Bypass))
42
 
43
/* PLL entry clock source */
44
#define RCC_PLLSource_HSI_Div2           ((u32)0x00000000)
45
#define RCC_PLLSource_HSE_Div1           ((u32)0x00010000)
46
#define RCC_PLLSource_HSE_Div2           ((u32)0x00030000)
47
 
48
#define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \
49
                                   ((SOURCE) == RCC_PLLSource_HSE_Div1) || \
50
                                   ((SOURCE) == RCC_PLLSource_HSE_Div2))
51
 
52
/* PLL multiplication factor */
53
#define RCC_PLLMul_2                     ((u32)0x00000000)
54
#define RCC_PLLMul_3                     ((u32)0x00040000)
55
#define RCC_PLLMul_4                     ((u32)0x00080000)
56
#define RCC_PLLMul_5                     ((u32)0x000C0000)
57
#define RCC_PLLMul_6                     ((u32)0x00100000)
58
#define RCC_PLLMul_7                     ((u32)0x00140000)
59
#define RCC_PLLMul_8                     ((u32)0x00180000)
60
#define RCC_PLLMul_9                     ((u32)0x001C0000)
61
#define RCC_PLLMul_10                    ((u32)0x00200000)
62
#define RCC_PLLMul_11                    ((u32)0x00240000)
63
#define RCC_PLLMul_12                    ((u32)0x00280000)
64
#define RCC_PLLMul_13                    ((u32)0x002C0000)
65
#define RCC_PLLMul_14                    ((u32)0x00300000)
66
#define RCC_PLLMul_15                    ((u32)0x00340000)
67
#define RCC_PLLMul_16                    ((u32)0x00380000)
68
 
69
#define IS_RCC_PLL_MUL(MUL) (((MUL) == RCC_PLLMul_2) || ((MUL) == RCC_PLLMul_3)   || \
70
                             ((MUL) == RCC_PLLMul_4) || ((MUL) == RCC_PLLMul_5)   || \
71
                             ((MUL) == RCC_PLLMul_6) || ((MUL) == RCC_PLLMul_7)   || \
72
                             ((MUL) == RCC_PLLMul_8) || ((MUL) == RCC_PLLMul_9)   || \
73
                             ((MUL) == RCC_PLLMul_10) || ((MUL) == RCC_PLLMul_11) || \
74
                             ((MUL) == RCC_PLLMul_12) || ((MUL) == RCC_PLLMul_13) || \
75
                             ((MUL) == RCC_PLLMul_14) || ((MUL) == RCC_PLLMul_15) || \
76
                             ((MUL) == RCC_PLLMul_16))
77
 
78
/* System clock source */
79
#define RCC_SYSCLKSource_HSI             ((u32)0x00000000)
80
#define RCC_SYSCLKSource_HSE             ((u32)0x00000001)
81
#define RCC_SYSCLKSource_PLLCLK          ((u32)0x00000002)
82
 
83
#define IS_RCC_SYSCLK_SOURCE(SOURCE) (((SOURCE) == RCC_SYSCLKSource_HSI) || \
84
                                      ((SOURCE) == RCC_SYSCLKSource_HSE) || \
85
                                      ((SOURCE) == RCC_SYSCLKSource_PLLCLK))
86
 
87
/* AHB clock source */
88
#define RCC_SYSCLK_Div1                  ((u32)0x00000000)
89
#define RCC_SYSCLK_Div2                  ((u32)0x00000080)
90
#define RCC_SYSCLK_Div4                  ((u32)0x00000090)
91
#define RCC_SYSCLK_Div8                  ((u32)0x000000A0)
92
#define RCC_SYSCLK_Div16                 ((u32)0x000000B0)
93
#define RCC_SYSCLK_Div64                 ((u32)0x000000C0)
94
#define RCC_SYSCLK_Div128                ((u32)0x000000D0)
95
#define RCC_SYSCLK_Div256                ((u32)0x000000E0)
96
#define RCC_SYSCLK_Div512                ((u32)0x000000F0)
97
 
98
#define IS_RCC_HCLK(HCLK) (((HCLK) == RCC_SYSCLK_Div1) || ((HCLK) == RCC_SYSCLK_Div2) || \
99
                           ((HCLK) == RCC_SYSCLK_Div4) || ((HCLK) == RCC_SYSCLK_Div8) || \
100
                           ((HCLK) == RCC_SYSCLK_Div16) || ((HCLK) == RCC_SYSCLK_Div64) || \
101
                           ((HCLK) == RCC_SYSCLK_Div128) || ((HCLK) == RCC_SYSCLK_Div256) || \
102
                           ((HCLK) == RCC_SYSCLK_Div512))
103
 
104
/* APB1/APB2 clock source */
105
#define RCC_HCLK_Div1                    ((u32)0x00000000)
106
#define RCC_HCLK_Div2                    ((u32)0x00000400)
107
#define RCC_HCLK_Div4                    ((u32)0x00000500)
108
#define RCC_HCLK_Div8                    ((u32)0x00000600)
109
#define RCC_HCLK_Div16                   ((u32)0x00000700)
110
 
111
#define IS_RCC_PCLK(PCLK) (((PCLK) == RCC_HCLK_Div1) || ((PCLK) == RCC_HCLK_Div2) || \
112
                           ((PCLK) == RCC_HCLK_Div4) || ((PCLK) == RCC_HCLK_Div8) || \
113
                           ((PCLK) == RCC_HCLK_Div16))
114
 
115
/* RCC Interrupt source */
116
#define RCC_IT_LSIRDY                    ((u8)0x01)
117
#define RCC_IT_LSERDY                    ((u8)0x02)
118
#define RCC_IT_HSIRDY                    ((u8)0x04)
119
#define RCC_IT_HSERDY                    ((u8)0x08)
120
#define RCC_IT_PLLRDY                    ((u8)0x10)
121
#define RCC_IT_CSS                       ((u8)0x80)
122
 
123
#define IS_RCC_IT(IT) ((((IT) & (u8)0xE0) == 0x00) && ((IT) != 0x00))
124
#define IS_RCC_GET_IT(IT) (((IT) == RCC_IT_LSIRDY) || ((IT) == RCC_IT_LSERDY) || \
125
                           ((IT) == RCC_IT_HSIRDY) || ((IT) == RCC_IT_HSERDY) || \
126
                           ((IT) == RCC_IT_PLLRDY) || ((IT) == RCC_IT_CSS))
127
#define IS_RCC_CLEAR_IT(IT) ((((IT) & (u8)0x60) == 0x00) && ((IT) != 0x00))
128
 
129
/* USB clock source */
130
#define RCC_USBCLKSource_PLLCLK_1Div5    ((u8)0x00)
131
#define RCC_USBCLKSource_PLLCLK_Div1     ((u8)0x01)
132
 
133
#define IS_RCC_USBCLK_SOURCE(SOURCE) (((SOURCE) == RCC_USBCLKSource_PLLCLK_1Div5) || \
134
                                      ((SOURCE) == RCC_USBCLKSource_PLLCLK_Div1))
135
 
136
/* ADC clock source */
137
#define RCC_PCLK2_Div2                   ((u32)0x00000000)
138
#define RCC_PCLK2_Div4                   ((u32)0x00004000)
139
#define RCC_PCLK2_Div6                   ((u32)0x00008000)
140
#define RCC_PCLK2_Div8                   ((u32)0x0000C000)
141
 
142
#define IS_RCC_ADCCLK(ADCCLK) (((ADCCLK) == RCC_PCLK2_Div2) || ((ADCCLK) == RCC_PCLK2_Div4) || \
143
                               ((ADCCLK) == RCC_PCLK2_Div6) || ((ADCCLK) == RCC_PCLK2_Div8))
144
 
145
/* LSE configuration */
146
#define RCC_LSE_OFF                      ((u8)0x00)
147
#define RCC_LSE_ON                       ((u8)0x01)
148
#define RCC_LSE_Bypass                   ((u8)0x04)
149
 
150
#define IS_RCC_LSE(LSE) (((LSE) == RCC_LSE_OFF) || ((LSE) == RCC_LSE_ON) || \
151
                         ((LSE) == RCC_LSE_Bypass))
152
 
153
/* RTC clock source */
154
#define RCC_RTCCLKSource_LSE             ((u32)0x00000100)
155
#define RCC_RTCCLKSource_LSI             ((u32)0x00000200)
156
#define RCC_RTCCLKSource_HSE_Div128      ((u32)0x00000300)
157
 
158
#define IS_RCC_RTCCLK_SOURCE(SOURCE) (((SOURCE) == RCC_RTCCLKSource_LSE) || \
159
                                      ((SOURCE) == RCC_RTCCLKSource_LSI) || \
160
                                      ((SOURCE) == RCC_RTCCLKSource_HSE_Div128))
161
 
162
/* AHB peripheral */
163
#define RCC_AHBPeriph_DMA1               ((u32)0x00000001)
164
#define RCC_AHBPeriph_DMA2               ((u32)0x00000002)
165
#define RCC_AHBPeriph_SRAM               ((u32)0x00000004)
166
#define RCC_AHBPeriph_FLITF              ((u32)0x00000010)
167
#define RCC_AHBPeriph_CRC                ((u32)0x00000040)
168
#define RCC_AHBPeriph_FSMC               ((u32)0x00000100)
169
#define RCC_AHBPeriph_SDIO               ((u32)0x00000400)
170
 
171
#define IS_RCC_AHB_PERIPH(PERIPH) ((((PERIPH) & 0xFFFFFAA8) == 0x00) && ((PERIPH) != 0x00))
172
 
173
/* APB2 peripheral */
174
#define RCC_APB2Periph_AFIO              ((u32)0x00000001)
175
#define RCC_APB2Periph_GPIOA             ((u32)0x00000004)
176
#define RCC_APB2Periph_GPIOB             ((u32)0x00000008)
177
#define RCC_APB2Periph_GPIOC             ((u32)0x00000010)
178
#define RCC_APB2Periph_GPIOD             ((u32)0x00000020)
179
#define RCC_APB2Periph_GPIOE             ((u32)0x00000040)
180
#define RCC_APB2Periph_GPIOF             ((u32)0x00000080)
181
#define RCC_APB2Periph_GPIOG             ((u32)0x00000100)
182
#define RCC_APB2Periph_ADC1              ((u32)0x00000200)
183
#define RCC_APB2Periph_ADC2              ((u32)0x00000400)
184
#define RCC_APB2Periph_TIM1              ((u32)0x00000800)
185
#define RCC_APB2Periph_SPI1              ((u32)0x00001000)
186
#define RCC_APB2Periph_TIM8              ((u32)0x00002000)
187
#define RCC_APB2Periph_USART1            ((u32)0x00004000)
188
#define RCC_APB2Periph_ADC3              ((u32)0x00008000)
189
#define RCC_APB2Periph_ALL               ((u32)0x0000FFFD)
190
 
191
#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFFF0002) == 0x00) && ((PERIPH) != 0x00))
192
 
193
/* APB1 peripheral */
194
#define RCC_APB1Periph_TIM2              ((u32)0x00000001)
195
#define RCC_APB1Periph_TIM3              ((u32)0x00000002)
196
#define RCC_APB1Periph_TIM4              ((u32)0x00000004)
197
#define RCC_APB1Periph_TIM5              ((u32)0x00000008)
198
#define RCC_APB1Periph_TIM6              ((u32)0x00000010)
199
#define RCC_APB1Periph_TIM7              ((u32)0x00000020)
200
#define RCC_APB1Periph_WWDG              ((u32)0x00000800)
201
#define RCC_APB1Periph_SPI2              ((u32)0x00004000)
202
#define RCC_APB1Periph_SPI3              ((u32)0x00008000)
203
#define RCC_APB1Periph_USART2            ((u32)0x00020000)
204
#define RCC_APB1Periph_USART3            ((u32)0x00040000)
205
#define RCC_APB1Periph_UART4             ((u32)0x00080000)
206
#define RCC_APB1Periph_UART5             ((u32)0x00100000)
207
#define RCC_APB1Periph_I2C1              ((u32)0x00200000)
208
#define RCC_APB1Periph_I2C2              ((u32)0x00400000)
209
#define RCC_APB1Periph_USB               ((u32)0x00800000)
210
#define RCC_APB1Periph_CAN               ((u32)0x02000000)
211
#define RCC_APB1Periph_BKP               ((u32)0x08000000)
212
#define RCC_APB1Periph_PWR               ((u32)0x10000000)
213
#define RCC_APB1Periph_DAC               ((u32)0x20000000)
214
#define RCC_APB1Periph_ALL               ((u32)0x3AFEC83F)
215
 
216
#define IS_RCC_APB1_PERIPH(PERIPH) ((((PERIPH) & 0xC50137C0) == 0x00) && ((PERIPH) != 0x00))
217
 
218
/* Clock source to output on MCO pin */
219
#define RCC_MCO_NoClock                  ((u8)0x00)
220
#define RCC_MCO_SYSCLK                   ((u8)0x04)
221
#define RCC_MCO_HSI                      ((u8)0x05)
222
#define RCC_MCO_HSE                      ((u8)0x06)
223
#define RCC_MCO_PLLCLK_Div2              ((u8)0x07)
224
 
225
#define IS_RCC_MCO(MCO) (((MCO) == RCC_MCO_NoClock) || ((MCO) == RCC_MCO_HSI) || \
226
                         ((MCO) == RCC_MCO_SYSCLK)  || ((MCO) == RCC_MCO_HSE) || \
227
                         ((MCO) == RCC_MCO_PLLCLK_Div2))
228
 
229
/* RCC Flag */
230
#define RCC_FLAG_HSIRDY                  ((u8)0x20)
231
#define RCC_FLAG_HSERDY                  ((u8)0x31)
232
#define RCC_FLAG_PLLRDY                  ((u8)0x39)
233
#define RCC_FLAG_LSERDY                  ((u8)0x41)
234
#define RCC_FLAG_LSIRDY                  ((u8)0x61)
235
#define RCC_FLAG_PINRST                  ((u8)0x7A)
236
#define RCC_FLAG_PORRST                  ((u8)0x7B)
237
#define RCC_FLAG_SFTRST                  ((u8)0x7C)
238
#define RCC_FLAG_IWDGRST                 ((u8)0x7D)
239
#define RCC_FLAG_WWDGRST                 ((u8)0x7E)
240
#define RCC_FLAG_LPWRRST                 ((u8)0x7F)
241
 
242
#define IS_RCC_FLAG(FLAG) (((FLAG) == RCC_FLAG_HSIRDY) || ((FLAG) == RCC_FLAG_HSERDY) || \
243
                           ((FLAG) == RCC_FLAG_PLLRDY) || ((FLAG) == RCC_FLAG_LSERDY) || \
244
                           ((FLAG) == RCC_FLAG_LSIRDY) || ((FLAG) == RCC_FLAG_PINRST) || \
245
                           ((FLAG) == RCC_FLAG_PORRST) || ((FLAG) == RCC_FLAG_SFTRST) || \
246
                           ((FLAG) == RCC_FLAG_IWDGRST)|| ((FLAG) == RCC_FLAG_WWDGRST)|| \
247
                           ((FLAG) == RCC_FLAG_LPWRRST))
248
 
249
#define IS_RCC_CALIBRATION_VALUE(VALUE) ((VALUE) <= 0x1F)
250
 
251
/* Exported macro ------------------------------------------------------------*/
252
/* Exported functions ------------------------------------------------------- */
253
void RCC_DeInit(void);
254
void RCC_HSEConfig(u32 RCC_HSE);
255
ErrorStatus RCC_WaitForHSEStartUp(void);
256
void RCC_AdjustHSICalibrationValue(u8 HSICalibrationValue);
257
void RCC_HSICmd(FunctionalState NewState);
258
void RCC_PLLConfig(u32 RCC_PLLSource, u32 RCC_PLLMul);
259
void RCC_PLLCmd(FunctionalState NewState);
260
void RCC_SYSCLKConfig(u32 RCC_SYSCLKSource);
261
u8 RCC_GetSYSCLKSource(void);
262
void RCC_HCLKConfig(u32 RCC_SYSCLK);
263
void RCC_PCLK1Config(u32 RCC_HCLK);
264
void RCC_PCLK2Config(u32 RCC_HCLK);
265
void RCC_ITConfig(u8 RCC_IT, FunctionalState NewState);
266
void RCC_USBCLKConfig(u32 RCC_USBCLKSource);
267
void RCC_ADCCLKConfig(u32 RCC_PCLK2);
268
void RCC_LSEConfig(u8 RCC_LSE);
269
void RCC_LSICmd(FunctionalState NewState);
270
void RCC_RTCCLKConfig(u32 RCC_RTCCLKSource);
271
void RCC_RTCCLKCmd(FunctionalState NewState);
272
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks);
273
void RCC_AHBPeriphClockCmd(u32 RCC_AHBPeriph, FunctionalState NewState);
274
void RCC_APB2PeriphClockCmd(u32 RCC_APB2Periph, FunctionalState NewState);
275
void RCC_APB1PeriphClockCmd(u32 RCC_APB1Periph, FunctionalState NewState);
276
void RCC_APB2PeriphResetCmd(u32 RCC_APB2Periph, FunctionalState NewState);
277
void RCC_APB1PeriphResetCmd(u32 RCC_APB1Periph, FunctionalState NewState);
278
void RCC_BackupResetCmd(FunctionalState NewState);
279
void RCC_ClockSecuritySystemCmd(FunctionalState NewState);
280
void RCC_MCOConfig(u8 RCC_MCO);
281
FlagStatus RCC_GetFlagStatus(u8 RCC_FLAG);
282
void RCC_ClearFlag(void);
283
ITStatus RCC_GetITStatus(u8 RCC_IT);
284
void RCC_ClearITPendingBit(u8 RCC_IT);
285
 
286
#endif /* __STM32F10x_RCC_H */
287
 
288
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.