add 16MHz resonator for stm32f4
This commit is contained in:
parent
8545d9d565
commit
a4b582f91d
@ -457,6 +457,7 @@ extern u32 rcc_ppre2_frequency;
|
||||
/* --- Function prototypes ------------------------------------------------- */
|
||||
|
||||
typedef enum {
|
||||
CLOCK_3V3_48MHZ,
|
||||
CLOCK_3V3_120MHZ,
|
||||
CLOCK_3V3_168MHZ,
|
||||
CLOCK_3V3_END
|
||||
@ -477,6 +478,8 @@ typedef struct {
|
||||
} clock_scale_t;
|
||||
|
||||
extern const clock_scale_t hse_8mhz_3v3[CLOCK_3V3_END];
|
||||
extern const clock_scale_t hse_12mhz_3v3[CLOCK_3V3_END];
|
||||
extern const clock_scale_t hse_16mhz_3v3[CLOCK_3V3_END];
|
||||
|
||||
typedef enum {
|
||||
PLL, HSE, HSI, LSE, LSI
|
||||
|
@ -30,6 +30,19 @@ u32 rcc_ppre2_frequency = 16000000;
|
||||
|
||||
const clock_scale_t hse_8mhz_3v3[CLOCK_3V3_END] =
|
||||
{
|
||||
{ /* 48MHz */
|
||||
.pllm = 8,
|
||||
.plln = 96,
|
||||
.pllp = 2,
|
||||
.pllq = 2,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.power_save = 1,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_3WS,
|
||||
.apb1_frequency = 12000000,
|
||||
.apb2_frequency = 24000000,
|
||||
},
|
||||
{ /* 120MHz */
|
||||
.pllm = 8,
|
||||
.plln = 240,
|
||||
@ -57,6 +70,90 @@ const clock_scale_t hse_8mhz_3v3[CLOCK_3V3_END] =
|
||||
},
|
||||
};
|
||||
|
||||
const clock_scale_t hse_12mhz_3v3[CLOCK_3V3_END] =
|
||||
{
|
||||
{ /* 48MHz */
|
||||
.pllm = 12,
|
||||
.plln = 96,
|
||||
.pllp = 2,
|
||||
.pllq = 2,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.power_save = 1,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_3WS,
|
||||
.apb1_frequency = 12000000,
|
||||
.apb2_frequency = 24000000,
|
||||
},
|
||||
{ /* 120MHz */
|
||||
.pllm = 12,
|
||||
.plln = 240,
|
||||
.pllp = 2,
|
||||
.pllq = 5,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.power_save = 1,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_3WS,
|
||||
.apb1_frequency = 30000000,
|
||||
.apb2_frequency = 60000000,
|
||||
},
|
||||
{ /* 168MHz */
|
||||
.pllm = 12,
|
||||
.plln = 336,
|
||||
.pllp = 2,
|
||||
.pllq = 7,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_5WS,
|
||||
.apb1_frequency = 42000000,
|
||||
.apb2_frequency = 84000000,
|
||||
},
|
||||
};
|
||||
|
||||
const clock_scale_t hse_16mhz_3v3[CLOCK_3V3_END] =
|
||||
{
|
||||
{ /* 48MHz */
|
||||
.pllm = 16,
|
||||
.plln = 96,
|
||||
.pllp = 2,
|
||||
.pllq = 2,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.power_save = 1,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_3WS,
|
||||
.apb1_frequency = 12000000,
|
||||
.apb2_frequency = 24000000,
|
||||
},
|
||||
{ /* 120MHz */
|
||||
.pllm = 16,
|
||||
.plln = 240,
|
||||
.pllp = 2,
|
||||
.pllq = 5,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.power_save = 1,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_3WS,
|
||||
.apb1_frequency = 30000000,
|
||||
.apb2_frequency = 60000000,
|
||||
},
|
||||
{ /* 168MHz */
|
||||
.pllm = 16,
|
||||
.plln = 336,
|
||||
.pllp = 2,
|
||||
.pllq = 7,
|
||||
.hpre = RCC_CFGR_HPRE_DIV_NONE,
|
||||
.ppre1 = RCC_CFGR_PPRE_DIV_4,
|
||||
.ppre2 = RCC_CFGR_PPRE_DIV_2,
|
||||
.flash_config = FLASH_ACR_ICE | FLASH_ACR_DCE | FLASH_ACR_LATENCY_5WS,
|
||||
.apb1_frequency = 42000000,
|
||||
.apb2_frequency = 84000000,
|
||||
},
|
||||
};
|
||||
|
||||
void rcc_osc_ready_int_clear(osc_t osc)
|
||||
{
|
||||
switch (osc) {
|
||||
@ -421,6 +518,9 @@ void rcc_clock_setup_hse_3v3(const clock_scale_t *clock)
|
||||
/* Set the peripheral clock frequencies used. */
|
||||
rcc_ppre1_frequency = clock->apb1_frequency;
|
||||
rcc_ppre2_frequency = clock->apb2_frequency;
|
||||
|
||||
/* Disable internal high-speed oscillator. */
|
||||
rcc_osc_off(HSI);
|
||||
}
|
||||
|
||||
void rcc_backupdomain_reset(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user