<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TKJ Electronics &#187; overclocking</title>
	<atom:link href="http://elec.tkjweb.dk/blog/tag/overclocking/feed/" rel="self" type="application/rss+xml" />
	<link>http://elec.tkjweb.dk/blog</link>
	<description>The electronics-blog</description>
	<lastBuildDate>Mon, 06 Sep 2010 17:01:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>STM32 &#8211; Overclocking</title>
		<link>http://elec.tkjweb.dk/blog/2010/02/stm32-overclocking/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/02/stm32-overclocking/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:45:03 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[overclocking]]></category>
		<category><![CDATA[RCC]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=352</guid>
		<description><![CDATA[Have you ever wondered if it was possible to overclock the STM32? It is, with a simple change in code line! We only have to change the PLL setting, which is able to go up to 16 &#8211; so that means that we can overclock the STM32 up to 8MHz x 16 = 128 MHz [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wondered if it was possible to overclock the STM32? It is, with a simple change in code line!<br />
We only have to change the PLL setting, which is able to go up to 16 &#8211; so that means that we can overclock the STM32 up to 8MHz x 16 = 128 MHz<br />
Here is the RCC Initialization code for 128MHz &#8211; remember, you also have to comment the &#8220;SYSCLK_FREQ_72MHz&#8221;, uncomment the &#8220;SYSCLK_FREQ_HSE&#8221; and set it to 128MHz in the system_stm32f10x.c</p>
<pre>
/*******************************************************************************
* Function Name  : RCC_Configuration
* Description    : Configures the different system clocks.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void RCC_Configuration(void)
   {
   /* RCC system reset(for debug purpose) */
   RCC_DeInit();

   /* Enable HSE */
   RCC_HSEConfig(RCC_HSE_ON);

   /* Wait till HSE is ready */
   HSEStartUpStatus = RCC_WaitForHSEStartUp();

   if(HSEStartUpStatus == SUCCESS)
      {
      /* Enable Prefetch Buffer */
      FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

      /* Flash 2 wait state */
      FLASH_SetLatency(FLASH_Latency_2);

      /* HCLK = SYSCLK */
      RCC_HCLKConfig(RCC_SYSCLK_Div1); 

      /* PCLK2 = HCLK */
      RCC_PCLK2Config(RCC_HCLK_Div1); 

      /* PCLK1 = HCLK/2 */
      RCC_PCLK1Config(RCC_HCLK_Div2);

      /* PLLCLK = 8MHz * 9 = 72 MHz */
      //RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
      /* PLLCLK = 8MHz * 16 = 128 MHz */
      RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_16);
      // The frequency has also been changed in system_stm32f10x

      /* Enable PLL */
      RCC_PLLCmd(ENABLE);

      /* Wait till PLL is ready */
      while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
         {;}

      /* Select PLL as system clock source */
      RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

      /* Wait till PLL is used as system clock source */
      while(RCC_GetSYSCLKSource() != 0x08)
         {;}
      }

   /* Enable peripheral clocks --------------------------------------------------*/
   /* Enable GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC
         | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG
         | RCC_APB2Periph_AFIO, ENABLE);
   }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/02/stm32-overclocking/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
