<?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>Pic dsPIC Arm7 Arm Cortex Programlama ve Projeler &#187; STM32 Uygulamaları</title>
	<atom:link href="http://www.uicroarm.com/category/armcortex/feed" rel="self" type="application/rss+xml" />
	<link>http://www.uicroarm.com</link>
	<description>ds-pic arm-7 cortex nxp proje uygulama</description>
	<lastBuildDate>Wed, 01 Feb 2012 22:41:38 +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-Özel Kütüphane</title>
		<link>http://www.uicroarm.com/stm32-ozel-kutuphane</link>
		<comments>http://www.uicroarm.com/stm32-ozel-kutuphane#comments</comments>
		<pubDate>Fri, 23 Apr 2010 19:06:25 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[STM32 Uygulamaları]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[arm cortex]]></category>
		<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[cortex m3]]></category>
		<category><![CDATA[KEIL]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=139</guid>
		<description><![CDATA[
Merhaba,
STM32; arm cortex m3 core tabanlı bir işlemcidir. Özellikleri tek kelimeyle mükemmel denebilir. Hızı 72Mhz&#8217;dir ama yeni versiyonlarında 120Mhz&#8217;e kadar çıkıyor. Dahili donanım microcontroller olarak nerdeyse herşey var. (12bit ADC, DAC, DMA, I2C, SPI, UART, USB vs.) Programlanması ise ST kütüphanesini kullanırsanız çok basittir ama çok fonksiyonel olmaz. Avantajı ise pek kafa patlatmazsınız, nasılsa hazır [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/ABCD0006_main.jpg" alt="" title="ABCD0006_main" width="295" height="221" class="alignnone size-full wp-image-140" /><span id="more-139"></span></p>
<p>Merhaba,</p>
<p>STM32; arm cortex m3 core tabanlı bir işlemcidir. Özellikleri tek kelimeyle mükemmel denebilir. Hızı 72Mhz&#8217;dir ama yeni versiyonlarında 120Mhz&#8217;e kadar çıkıyor. Dahili donanım microcontroller olarak nerdeyse herşey var. (12bit ADC, DAC, DMA, I2C, SPI, UART, USB vs.) Programlanması ise ST kütüphanesini kullanırsanız çok basittir ama çok fonksiyonel olmaz. Avantajı ise pek kafa patlatmazsınız, nasılsa hazır fonksiyonlar.</p>
<p>Benim seçtiğim yol ise en zoru diyebiliriz. Kendi kütüphanemi kendim oluşturdum ve 1bit/16bit/32bit erişim saylayan bir kütüphane oluşturdum. ST kütüphanesini kullanan arkadaşların çoğu arka planda işlemci neyapıyor bilmez. Bu kütüphaneyi oluşturmam yaklaşık 10 günümü aldı ama mükemmel sonuç oldu diyebilirim. </p>
<p>Öncelikle şunu söylüyeyim kütüphaneyi burada paylaşmıyacağım fakat kod örnekleri olacak, bilmeyenler mantığı kapacaktır. C ve derleyicinin gücü sayesinde böyle bir kütüphane oluşturulabilir.</p>
<p>Aşağıda bazı örnekler ekliyeceğim ve 32bite PIC&#8217;e bit bit yazıldığı gibi yazıldığını göreceksiniz. Size yeni fikirler verecektir.</p>
<pre class="brush: cpp; title: ; notranslate">
/**********************************************************/
/**********************************************************/
/*============Aykut ULUSAN, Elektronik Mühendisi, İzmir============= */
/**********************************************************/
/**********************************************************/

#define	    mylcd			my_lcd_reg-&gt;lcd    // porta mylcd olarak isim verdim

mylcd.bits.rs=1;               // 1bit yazılır - Register Selecte Bagli pin 1

mylcd.bits.data_4bit=da_ta&gt;&gt;4;   // 4bit yazılır - high order nibble

mylcd.bits.enb=1;                      // 1bit yazılır - enable 1

// systick'in load registerine 32bit sayı yükle
stk_load.b32=(u32)us*k_us; 

// systick'in Control registerinin Enable bitini 1 yap
stk_ctrl.bits.ENABLE=1;

// systick'in Control registerinin COUNTFLAG == 0 iken bekle
 while(!stk_ctrl.bits.COUNTFLAG);// bekle 

// porta'nın 9'unu 50Mhz bus hızı ve alternate pushpull yap
// 2'şer bit erişim
gpioa_crh.bits.MODE9=GpioMODE_50mhz_out;    // 50mhz out
gpioa_crh.bits.CNF9=GpioCNF_PUPD_in_APP_out;  // alternate pushpull

// 16bit erişim
usart1_brr.b16.low=0x16DA;  // 9600,
rcc_apb2enr.b16.low=0x007d;                      // A,B,C,D,E ve AF enable

/*
Aşağıda STM32 Reset Clock Configurasyon ayarlarını yapan program var,
Programın nasıl yapıldığını gösteren bir örnek.
*/

void
rcc_init(void){
    rcc_cr.bits.HSION=1;
    while(!rcc_cr.bits.HSIRDY);
//Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], ADCPRE[1:0] and MCO[2:0]
    rcc_cfgr.b32&amp;=(u32)0xF8FF0000;
    rcc_cr.b32&amp;=(u32)0xFEF6FFFF;
// HSEBYP bit clear
    rcc_cr.b32&amp;=0xFFFBFFFF;
// PLLSRC, PLLXTPRE, PLLMUL[3:0] and USBPRE bits clear
    rcc_cfgr.b32&amp;=(u32)0xFF80FFFF;
    rcc_cir.b32=0;

	rcc_cr.bits.HSERDY=0;
    rcc_cr.bits.HSEON=1;            // enable
    while(!rcc_cr.bits.HSERDY);      

    rcc_cfgr.bits.HPRE=0;           

    rcc_cfgr.bits.PPRE2=0;
    rcc_cfgr.bits.PPRE1=4;
// 56/8=7Mhz'de çalışsın , acelesi yok
    rcc_cfgr.bits.ADCPRE=3;
    flash_acr.b32&amp;=((u32)0x00000038);
    flash_acr.bits.LATENCY=2;
    flash_acr.bits.PRFTBE=1;        // Prefetch buffer enable, flash'a yazmak için gerekli
// Pllclk=8mhz*7mhz=56mhz
    rcc_cfgr.bits.PLLXTPRE=0;       // xtal'i bölme
    rcc_cfgr.bits.PLLSRC=1;         // PLL'e HSE'yi bağla
    rcc_cfgr.bits.PLLMUL=5;
// pll nable
    rcc_cr.bits.PLLON=1;
    while(!rcc_cr.bits.PLLRDY);
    rcc_cfgr.bits.SW=2;
    while(rcc_cfgr.bits.SWS!=2);
}
/**********************************************************/
/**********************************************************/
/**********************************************************/
</pre>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2010/04/ABCD0006_1000.jpg" rel="lightbox[139]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/ABCD0006_1000-150x150.jpg" alt="" title="ABCD0006_1000" width="150" height="150" class="alignnone size-thumbnail wp-image-141" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/stm32-ozel-kutuphane/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Arm Cortex M3 &#8211; STM32F103</title>
		<link>http://www.uicroarm.com/arm-cortex-m3-stm32f103</link>
		<comments>http://www.uicroarm.com/arm-cortex-m3-stm32f103#comments</comments>
		<pubDate>Thu, 04 Jun 2009 22:48:43 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[STM32 Uygulamaları]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[72mhz]]></category>
		<category><![CDATA[arm cortex]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[SPI]]></category>
		<category><![CDATA[STM32]]></category>
		<category><![CDATA[STM32F103]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=90</guid>
		<description><![CDATA[
Merhaba,
Yurtdışından ST&#8217;nin arm cortex m3 core&#8217;lu STM32F103RB işlemcisini içeren bir development boardu temin ettim.
Onunla yaptığım bazı uygulamaların bilgi ve görüntülerini burada paylaşacağım.
Arm cortex M3 tabanlı işlemciler ARM7&#8242;nin yerini alıyor gibi görünüyor. Daha az code (Thumb-2) ile arm7&#8242;den daha yüksek hız, performans, daha ucuz fiyat (arm firması, 8bit fiyatında 32bit sloganını kullandı) , mhz başına daha [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/tumu_295.jpg" alt="tumu_295" title="tumu_295" width="295" height="221" class="alignnone size-full wp-image-91" /><span id="more-90"></span></p>
<p>Merhaba,</p>
<p>Yurtdışından ST&#8217;nin arm cortex m3 core&#8217;lu STM32F103RB işlemcisini içeren bir development boardu temin ettim.<br />
Onunla yaptığım bazı uygulamaların bilgi ve görüntülerini burada paylaşacağım.<br />
Arm cortex M3 tabanlı işlemciler ARM7&#8242;nin yerini alıyor gibi görünüyor. Daha az code (Thumb-2) ile arm7&#8242;den daha yüksek hız, performans, daha ucuz fiyat (arm firması, 8bit fiyatında 32bit sloganını kullandı) , mhz başına daha düşük güç vs.Arm cortex m3 hakkında daha detaylı bilgiyi http://www.arm.com/products/CPUs/ARM_Cortex-M3.html   adresinden alabilirsiniz.</p>
<p>STM32 serisinde donanım olarak, moduler bazda nerdeyse heysey var. Eksik olanlarda ethernet vs. yeni serilerinde var görünüyor. (yakında stm32f105 ve 107 serisi çıkacak).</p>
<p>NXP&#8217;nin arm cortex işlemciside yakında çıkıyor. Bence NXP&#8217;nin işlemcisi biraz daha ağır basıyor, Bunun nedeni nxp&#8217;ye yakınlığım yani datasheet okuma , register yapısı ve  programlama formatına alıştım. İkincisi ise benim için önemli olan bazı donanımlarının stm32&#8242;den iyi olması , çalışma hızı (100Mhz) ve SPI&#8217;ın 4-16bit ayarlanabilir olması gibi. Dezavantajı ise bir portu 4mA basar veya çeker. Stm32&#8242;de ise bu microchip işlemcilerindeki gibi 25mA&#8217;dir. Bu önemli bir özellik ama göreceli. Mesela port çıkışlarında buffer IC kullanmak işlemciyi korur.<br />
Ayrıca ST&#8217;nin programmer manual&#8217;ini beğenmedim detaylı anlatım yok işin özüne girmeye çalıştığında birbiriyle bağlantılı bilgiler farklı kaynaklardan çıkıyor vs. Programlanması çok kolay bir işlemci. Bence NXP&#8217;nin arm7&#8217;si çok daha zordur.<br />
Aşağıya Nokia3310 lcd ile yaptığım bir uygulama görüntülerini ekledim.(Ekranda koşan tavşan animasyonu var) Derleyici olarak keil kullandım. Ayrıca ansi C kullanmanın avantajı, PIC16,PIC18,dspic30F ve arm7&#8242;de kullandığım programın aynısını stm32 için kullandım. Sadece bir kaç tanımlama değişiyor. (SPI bus ile sürdüm, bus clock 18mhz/8&#8242;dir,nokia lcd 4mhz&#8217;e kadar destekler.) STM32&#8242;nin clock için pre ve postscaler&#8217;ı da bence yetersiz. </p>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/tumu_1000.jpg" rel="lightbox[90]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/tumu_1000-150x150.jpg" alt="tumu_1000" title="tumu_1000" width="150" height="150" class="alignnone size-thumbnail wp-image-92" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/stm32_1000.jpg" rel="lightbox[90]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/stm32_1000-150x150.jpg" alt="stm32_1000" title="stm32_1000" width="150" height="150" class="alignnone size-thumbnail wp-image-93" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/lcd_1000.jpg" rel="lightbox[90]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/lcd_1000-150x150.jpg" alt="lcd_1000" title="lcd_1000" width="150" height="150" class="alignnone size-thumbnail wp-image-94" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/arm-cortex-m3-stm32f103/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

