Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. void rcc_clock_setup_in_hse_25mhz_out_50mhz(void)
  2. {
  3. /* Enable internal high-speed oscillator. */
  4. rcc_osc_on(HSI);
  5. rcc_wait_for_osc_ready(HSI);
  6.  
  7. /* Select HSI as SYSCLK source. */
  8. rcc_set_sysclk_source(RCC_CFGR_SW_SYSCLKSEL_HSICLK);
  9.  
  10. /* Enable external high-speed oscillator 25MHz. */
  11. rcc_osc_on(HSE);
  12. rcc_wait_for_osc_ready(HSE);
  13. rcc_set_sysclk_source(RCC_CFGR_SW_SYSCLKSEL_HSECLK);
  14.  
  15. /*
  16. * Set prescalers for AHB, ADC, ABP1, ABP2.
  17. * Do this before touching the PLL (TODO: why?).
  18. */
  19. rcc_set_hpre(RCC_CFGR_HPRE_SYSCLK_NODIV); /* Set. 50MHz Max. 50MHz */
  20. rcc_set_adcpre(RCC_CFGR_ADCPRE_PCLK2_DIV2); /* Set. 12.5MHz Max. ?? */
  21. rcc_set_ppre1(RCC_CFGR_PPRE1_HCLK_DIV2); /* Set. 25MHz Max. 25MHz */
  22. rcc_set_ppre2(RCC_CFGR_PPRE2_HCLK_NODIV); /* Set. 50MHz Max. 50MHz */
  23.  
  24. /*
  25. * Sysclk runs with 72MHz -> 2 waitstates.
  26. * 0WS from 0-24MHz
  27. * 1WS from 24-48MHz
  28. * 2WS from 48-72MHz
  29. */
  30. flash_set_ws(FLASH_LATENCY_2WS);
  31.  
  32. /*
  33. * Set the PLL multiplication factor to 2.
  34. * 25MHz (external) * 2 (multiplier) / 1 (PLLXTPRE_HSE_CLK) = 50MHz
  35. */
  36. rcc_set_pll_multiplication_factor(RCC_CFGR_PLLMUL_PLL_CLK_MUL2);
  37.  
  38. /* Select HSI as PLL source. */
  39. rcc_set_pll_source(RCC_CFGR_PLLSRC_HSE_CLK);
  40.  
  41. /*
  42. * no divisor hse
  43. */
  44. rcc_set_pllxtpre(RCC_CFGR_PLLXTPRE_HSE_CLK);
  45.  
  46. /* Enable PLL oscillator and wait for it to stabilize. */
  47. rcc_osc_on(PLL);
  48. rcc_wait_for_osc_ready(PLL);
  49.  
  50. /* Select PLL as SYSCLK source. */
  51. rcc_set_sysclk_source(RCC_CFGR_SW_SYSCLKSEL_PLLCLK);
  52.  
  53. /* Set the peripheral clock frequencies used */
  54. rcc_ppre1_frequency = 25000000;
  55. rcc_ppre2_frequency = 50000000;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement