<?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; ARM Projects</title>
	<atom:link href="http://elec.tkjweb.dk/blog/category/arm-projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://elec.tkjweb.dk/blog</link>
	<description>The electronics-blog</description>
	<lastBuildDate>Sun, 20 Jun 2010 11:51:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>STM32 Library for Eagle</title>
		<link>http://elec.tkjweb.dk/blog/2010/06/stm32-library-for-eagle/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/06/stm32-library-for-eagle/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 09:16:47 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=542</guid>
		<description><![CDATA[Many has sent me mails or PM&#8217;s about the STM32 library for Eagle, so now I&#8217;ve uploaded it here.
stm32.lbr &#8211; ST Cortex-M3 STM32F101/103 processor family  in LQFP100, 64, 48 and VFQPFN36
stm32_lqfp144.lbr &#8211; STM32F101Zx and STM32F103Zx. LQFP 144 package.
I hope you guys can use them&#8230; Please keep me updated with your projects  
]]></description>
			<content:encoded><![CDATA[<p>Many has sent me mails or PM&#8217;s about the STM32 library for Eagle, so now I&#8217;ve uploaded it here.</p>
<p><a href="http://elec.tkjweb.dk/stm32.lbr">stm32.lbr</a> &#8211; ST Cortex-M3 STM32F101/103 processor family  in LQFP100, 64, 48 and VFQPFN36<br />
<a href="http://elec.tkjweb.dk/stm32_lqfp144.lbr">stm32_lqfp144.lbr</a> &#8211; STM32F101Zx and STM32F103Zx. LQFP 144 package.</p>
<p>I hope you guys can use them&#8230; Please keep me updated with your projects <img src='http://elec.tkjweb.dk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/06/stm32-library-for-eagle/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>STM32 and 7&#8243; Display</title>
		<link>http://elec.tkjweb.dk/blog/2010/05/stm32-and-7-display/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/05/stm32-and-7-display/#comments</comments>
		<pubDate>Sat, 29 May 2010 13:25:35 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=505</guid>
		<description><![CDATA[A couple of weeks ago I recieved an SSD1963 evaluation board and a 7&#8243; display.
The SSD1963 chip makes it possible to control a 7&#8243; display with a regular microcontroller or microprocessor, which haven&#8217;t got enough memory and power to control it itself, as it&#8217;s a normal display with vSync and hSync and so on.
So after [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I recieved an SSD1963 evaluation board and a 7&#8243; display.</p>
<p>The SSD1963 chip makes it possible to control a 7&#8243; display with a regular microcontroller or microprocessor, which haven&#8217;t got enough memory and power to control it itself, as it&#8217;s a normal display with vSync and hSync and so on.<br />
So after a couple of hours I got it running with my STM32 board and a touch screen controller.</p>
<p>Please take a look at the video below to see some of the things I can show/do.<br />
<span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/IT3UxD70nkg&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/IT3UxD70nkg&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=IT3UxD70nkg">www.youtube.com/watch?v=IT3UxD70nkg</a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/05/stm32-and-7-display/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>STM32 Mini Computer</title>
		<link>http://elec.tkjweb.dk/blog/2010/03/stm32-mini-computer/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/03/stm32-mini-computer/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 20:25:23 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[Display]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[mini computer]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=449</guid>
		<description><![CDATA[Hi again.
Today I&#8217;m going to talk about my mini computer I started making with the STM32.
It&#8217;s powered by the STM32F103RET6 stamp board from Futurlec, and it is clocked at 72MHz. Right now there isn&#8217;t any &#8220;real&#8221; applications or games in it, but theese are under development.
You can see some pictures about it here, but I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Hi again.<br />
Today I&#8217;m going to talk about my mini computer I started making with the STM32.<br />
It&#8217;s powered by the STM32F103RET6 stamp board from Futurlec, and it is clocked at 72MHz. Right now there isn&#8217;t any &#8220;real&#8221; applications or games in it, but theese are under development.</p>
<p>You can see some pictures about it here, but I&#8217;ve also made a video where you can see it in use.</p>
<p><div id="attachment_453" class="wp-caption aligncenter" style="width: 310px"><a href="http://elec.tkjweb.dk/blog/wp-content/uploads/Mini-Computer_menu.jpg"><img src="http://elec.tkjweb.dk/blog/wp-content/uploads/Mini-Computer_menu-300x225.jpg" alt="" title="Mini Computer - Menu" width="300" height="225" class="size-medium wp-image-453" /></a><p class="wp-caption-text">Mini Computer - The Menu</p></div><br />
The buttons on the right side of the menu is from Microchip&#8217;s Graphics Library, which I ported to the STM32.</p>
<p><span class="youtube">
<object width="480" height="360">
<param name="movie" value="http://www.youtube.com/v/v3PYSW7yE4k&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;hd=1" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/v3PYSW7yE4k&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;hd=1" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="360"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=v3PYSW7yE4k&fmt=18">www.youtube.com/watch?v=v3PYSW7yE4k</a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/03/stm32-mini-computer/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>STM32 Oscilloscope</title>
		<link>http://elec.tkjweb.dk/blog/2010/02/stm32-oscilloscope/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/02/stm32-oscilloscope/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 21:48:29 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[Oscilloscope]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=389</guid>
		<description><![CDATA[This week I got some inspiration from the ST DSP library, so I made my own oscilloscope with the STM32 and my 320x240 pixels QTFT screen. I made the code from scratch, both the sampling and screen updating code -- but I used the ST DSP library for the FFT calculations of course
You can see [...]]]></description>
			<content:encoded><![CDATA[<p>This week I got some inspiration from the ST DSP library, so I made my own oscilloscope with the STM32 and my 320x240 pixels QTFT screen. I made the code from scratch, both the sampling and screen updating code -- but I used the ST DSP library for the FFT calculations of course</p>
<p>You can see the video of the project here&#8230;<br />
<span class="youtube">
<object width="480" height="360">
<param name="movie" value="http://www.youtube.com/v/llDmjxUtoRA&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;hd=1" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/llDmjxUtoRA&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;hd=1" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="360"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=llDmjxUtoRA&fmt=18">www.youtube.com/watch?v=llDmjxUtoRA</a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/02/stm32-oscilloscope/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<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
Here is [...]]]></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>
		<item>
		<title>STM32 &#8211; Internal 8MHz Clock Setup Routine</title>
		<link>http://elec.tkjweb.dk/blog/2010/02/stm32-internal-8mhz-clock-setup-routine/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/02/stm32-internal-8mhz-clock-setup-routine/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:42:06 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=349</guid>
		<description><![CDATA[Here is the setup code to use the internal 8MHz clock &#8211; but with the internal clock, we are only able to get a max frequency of 36MHz.

void clock_init(){
  /*Configure all clocks to max for best performance.
   * If there are EMI, power, or noise problems, try slowing the clocks*/   [...]]]></description>
			<content:encoded><![CDATA[<p>Here is the setup code to use the internal 8MHz clock &#8211; but with the internal clock, we are only able to get a max frequency of 36MHz.</p>
<pre>
void clock_init(){
  /*Configure all clocks to max for best performance.
   * If there are EMI, power, or noise problems, try slowing the clocks*/                     

  /* First set the flash latency to work with our clock*/
  /*000 Zero wait state, if 0  MHz < SYSCLK <= 24 MHz
    001 One wait state, if  24 MHz < SYSCLK <= 48 MHz
    010 Two wait states, if 48 MHz < SYSCLK <= 72 MHz */
  FLASH_SetLatency(FLASH_Latency_1);                                                         

  /* Start with HSI clock (internal 8mhz), divide by 2 and multiply by 9 to
   * get maximum allowed frequency: 36Mhz
   * Enable PLL, wait till it's stable, then select it as system clock*/
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_9);
  RCC_PLLCmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {}
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);                                                 

  /* Set HCLK, PCLK1, and PCLK2 to SCLK (these are default */
  RCC_HCLKConfig(RCC_SYSCLK_Div1);
  RCC_PCLK1Config(RCC_HCLK_Div1);
  RCC_PCLK2Config(RCC_HCLK_Div1);                                                             

  /* Set ADC clk to 9MHz (14MHz max, 18MHz default)*/
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);                                                           

  /*To save power, use below functions to stop the clock to ceratin
   * peripherals
   * RCC_AHBPeriphClockCmd
   */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL, ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_ALL, ENABLE);                                         

}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/02/stm32-internal-8mhz-clock-setup-routine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>320&#215;240 Color Display &#8211; SSD2119</title>
		<link>http://elec.tkjweb.dk/blog/2010/01/320x240-color-display-ili9919/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/01/320x240-color-display-ili9919/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 19:45:40 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[Display]]></category>
		<category><![CDATA[ILI9320]]></category>
		<category><![CDATA[ILI9919]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=246</guid>
		<description><![CDATA[I finally got the display I bought on eBay to work. It took me a lot of hours as the man I&#8217;d bought the display from told me that the display controller was an ILI9320, so I started making code for the display like it was using an ILI9320 controller.
But as it didn&#8217;t work, I [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got the display I bought on eBay to work. It took me a lot of hours as the man I&#8217;d bought the display from told me that the display controller was an ILI9320, so I started making code for the display like it was using an ILI9320 controller.</p>
<p>But as it didn&#8217;t work, I started debugging using my Raisonance RLink, and just when I looked at the Device variable &#8211; a variable which holds the controller number, and is loaded at the initialization process of the display, it showed me that it was an SSD2119 controller.</p>
<p>So I found the SSD2119 datasheet and started recoding using the new Command calls found in the datasheet&#8230; Finally it worked and showed some life <img src='http://elec.tkjweb.dk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So right now I have a working SSD2119 code with SetPixel, Text, Circle, Rectangle, Fill and some working Touch Screen commands for the onboard ADS7843 touch screen controller.</p>
<p>Please take a look at this image to see the display in action:<br />
<div id="attachment_293" class="wp-caption aligncenter" style="width: 310px"><a href="http://elec.tkjweb.dk/blog/wp-content/uploads/ILI9919_Display1.jpg"><img src="http://elec.tkjweb.dk/blog/wp-content/uploads/ILI9919_Display1-300x225.jpg" alt="SSD2119 seen from top" title="SSD2119 From top" width="300" height="225" class="size-medium wp-image-293" /></a><p class="wp-caption-text">SSD2119 from top</p></div><br />
<div id="attachment_299" class="wp-caption aligncenter" style="width: 310px"><a href="http://elec.tkjweb.dk/blog/wp-content/uploads/ILI9919_Display7.jpg"><img src="http://elec.tkjweb.dk/blog/wp-content/uploads/ILI9919_Display7-300x225.jpg" alt="" title="SSD2119 Pringles example" width="300" height="225" class="size-medium wp-image-299" /></a><p class="wp-caption-text">SSD2119 Pringles example</p></div></p>
<p>The current GUI commands I&#8217;ve made is:<br />
void Lcd_Text(u16 x, u16 y, u8 *str, u16 len,u16 Color, u16 bkColor);<br />
void Lcd_Line(u16 x0, u16 y0, u16 x1, u16 y1,u16 color);<br />
void Lcd_Circle(u16 cx,u16 cy,u16 r,u16 color,u8 fill);<br />
void Lcd_Rectangle(u16 x0, u16 y0, u16 x1, u16 y1,u16 color,u8 fill); // Slower than Lcd_ColorBox<br />
void Lcd_Square(u16 x0, u16 y0, u16 width, u16 color,u8 fill);<br />
void Lcd_ClearCharBox(u16 x,u16 y,u16 color);<br />
void Get320240PictureCode(u8* pBuffer,u32 BufferCounter,u32 BaseAddr);</p>
<p>void Lcd_FastRectangle(u16 x0, u16 y0, u16 x1, u16 y1,u16 color,u8 fill); // Faster than Lcd_Rectangle<br />
void Lcd_FastSquare(u16 x0, u16 y0, u16 width, u16 color,u8 fill); // Faster than Lcd_Rectangle<br />
void Lcd_FastClearCharBox(u16 x,u16 y,u16 color);</p>
<p>void DispPic320_240(const unsigned char *str);<br />
void DispPic(u16 x0, u16 y0, const unsigned char *str);</p>
<p>DispPic320_240 and DispPic uses a byte array to show a image &#8211; the byte array is converted from a 24-bit .BMP (bitmap) file using a program I&#8217;ve made in Visual Basic .NET!</p>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/01/320x240-color-display-ili9919/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>STM32 Nokia LCD</title>
		<link>http://elec.tkjweb.dk/blog/2010/01/stm32-nokia-lcd/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/01/stm32-nokia-lcd/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:19:04 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[Nokia LCD]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=241</guid>
		<description><![CDATA[Finally I found how to use the Nokia LCD I&#8217;ve bought from Sparkfun a year ago.
Originally I bought the display for the Arduino, but as the LCD is 3.3V I tried to make a voltage convertion circuit, but it didn&#8217;t work 
But now, I&#8217;ve got the STM32 which is running 3.3V &#8211; so I could [...]]]></description>
			<content:encoded><![CDATA[<p>Finally I found how to use the Nokia LCD I&#8217;ve bought from Sparkfun a year ago.<br />
Originally I bought the display for the Arduino, but as the LCD is 3.3V I tried to make a voltage convertion circuit, but it didn&#8217;t work <img src='http://elec.tkjweb.dk/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
But now, I&#8217;ve got the STM32 which is running 3.3V &#8211; so I could just connect it directly&#8230; And then it worked!</p>
<div id="attachment_316" class="wp-caption aligncenter" style="width: 310px"><a href="http://elec.tkjweb.dk/blog/wp-content/uploads/Nokia_TKJ-Electronics3.jpg"><img src="http://elec.tkjweb.dk/blog/wp-content/uploads/Nokia_TKJ-Electronics3-300x225.jpg" alt="" title="Nokia LCD - Hello World" width="300" height="225" class="size-medium wp-image-316" /></a><p class="wp-caption-text">Nokia LCD - Hello World</p></div><br />
<div id="attachment_315" class="wp-caption aligncenter" style="width: 310px"><a href="http://elec.tkjweb.dk/blog/wp-content/uploads/Nokia_TKJ-Electronics2.jpg"><img src="http://elec.tkjweb.dk/blog/wp-content/uploads/Nokia_TKJ-Electronics2-300x225.jpg" alt="" title="Nokia LCD - TKJ-Electronics Logo" width="300" height="225" class="size-medium wp-image-315" /></a><p class="wp-caption-text">Nokia LCD - TKJ-Electronics Logo</p></div>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/01/stm32-nokia-lcd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STM32 DFU Programming</title>
		<link>http://elec.tkjweb.dk/blog/2010/01/stm32-dfu-programming/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/01/stm32-dfu-programming/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 20:46:22 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[DFU]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=267</guid>
		<description><![CDATA[The time is currently 21:42 and I&#8217;ve been sitting in front of my computer in 2 hours to get the DFU programming to work.
Now it is working, and I&#8217;m able to make one of my excisting projects into a DFU loadable project (compiled it&#8217;s a .dfu filed)
I&#8217;ve also changed the DFU bootloader code to use [...]]]></description>
			<content:encoded><![CDATA[<p>The time is currently 21:42 and I&#8217;ve been sitting in front of my computer in 2 hours to get the DFU programming to work.</p>
<p>Now it is working, and I&#8217;m able to make one of my excisting projects into a DFU loadable project (compiled it&#8217;s a .dfu filed)</p>
<p>I&#8217;ve also changed the DFU bootloader code to use GPIOA_0 as DFU Enable pin, and GPIOA_1 as USB Disconnect &#8211; this makes me able to use the GPIOB and GPIOC for my display without any interferrance!</p>
<p>Here is how you make a Ride7 project DFU loadable:</p>
<div id="_mcePaste">The Default Startup script (in settings) has been set to No, as we have included a special startup script in the project (startup_stm32f10x_hd.s &#8211; found in CMSIS\Core\CM3\startup\gcc)</div>
<div id="_mcePaste">Also change the Linker Script in project settings to match the processor group you are using (Connectivity, High Density&#8230; and so on &#8211; fx stm32f10x_hd_flash_offset.ld)</div>
<div id="_mcePaste">Also be aware of the change in the NVIC_Configuration &#8211; here we tell the processor that the Flash has to start at adress 0&#215;3000</div>
<div></div>
<div id="_mcePaste">When you have compiled the code to a HEX file, run &#8220;DFU File Manager&#8221; to create a .dfu file.</div>
<div id="_mcePaste">Target ID: 00 is Internal Flash</div>
<div id="_mcePaste">Target ID: 01 is SPI Flash</div>
<div id="_mcePaste">Target ID: 02 is NOR Flash</div>
<div></div>
<div>Now you can use DfuSe to load the .dfu file into the internal flash of your STM32!</div>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/01/stm32-dfu-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>STM32 USB Connection</title>
		<link>http://elec.tkjweb.dk/blog/2010/01/stm32-usb-connection/</link>
		<comments>http://elec.tkjweb.dk/blog/2010/01/stm32-usb-connection/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 07:22:07 +0000</pubDate>
		<dc:creator>Thomas Jespersen</dc:creator>
				<category><![CDATA[ARM Projects]]></category>
		<category><![CDATA[DFU]]></category>
		<category><![CDATA[STM32]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[Virtual COM Port]]></category>

		<guid isPermaLink="false">http://elec.tkjweb.dk/blog/?p=243</guid>
		<description><![CDATA[The USB connection between the STM32 and the computer is finally working.
I&#8217;ve tried the different USB programs from the StdPeriph Library
Fx.

Virtual COM Port
DFU Programming

As I&#8217;m using Ride7 for programming, I can upload the project and sources if you want me too.
&#160;
OBS: If you have projects which DOESN&#8217;T use the USB, you have to set the [...]]]></description>
			<content:encoded><![CDATA[<p>The USB connection between the STM32 and the computer is finally working.<br />
I&#8217;ve tried the different USB programs from the StdPeriph Library</p>
<p>Fx.</p>
<ul>
<li>Virtual COM Port</li>
<li>DFU Programming</li>
</ul>
<p>As I&#8217;m using Ride7 for programming, I can upload the project and sources if you want me too.</p>
<p>&nbsp;</p>
<p><strong>OBS: If you have projects which DOESN&#8217;T use the USB, you have to set the USB Disconnect jupmer to Ground (Pos. 1-2), as if not, the STM32 will stop in some kind of USB Interrupt trying to make a data communication with the computer, but it never comes as the STM32 doesn&#8217;t start one!</strong></p>
<p><strong>I discovered this Â when I tried DFU&#8217;ing my 320&#215;240 LCD code &#8211; and when I went back to normal .hex, it didn&#8217;t work &#8211; that was because I had to set the USB Disconnect to Ground!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://elec.tkjweb.dk/blog/2010/01/stm32-usb-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
