STM32_Nucleo_p3526big  Günümüzün belkide en önemli konularından birisi olan enerji tasarrufu en çok elektronik ürünler üreten firmalar tarafından dikkate alınıyormuş gibi görünüyor. Elektronink devre elemanları ve mikrodenetleyiciler üreten firmalar arasında büyük bir üne sahip olan ST firması da ultra düşük güç tüketen Cortex M0+ ailesinden mikrodenetleyicilerini ve bu mikrodenetleyicileri barındıran kitlerini birbiri arkasında piyasaya çıkarmaya başladı. Ben de bu yazımda Cortex-M0+ aliesinden olan ve  bir seminerde edindiğim STM32L053 Nucleo kitini inceleyeceğim.

Kite baktığımda dikkatimi çeken ilk şey üzerinde bulunan sıra soketlerin arduino (sanırım bu kez doğru yazdım) düzenine göre sıralanmış olmasıydı. Embedded dünyasında gittikçe büyüyen arduino çılgınlığına  Intel’den sonra ST de kayıtsız kalamamış anlaşılan.

Adsız

STM32L053 Nucleo Kiti ve Arduino düzenindeki dişi sıra soketler.

Bu kitin arduino uyumlu olmasının yanında diğer bir özelliği ise Mbed  isimli internet tabanlı derleyici dünyasına da bir kapı açması. Mbed, içerisinde pek çok işlemciye  birsürü hazır kütüphane sunan ve çok hızlı proje geliştirilebilen bir ortam. Detaylarla uğraşmak istemeyenler ve yeni başlayanlar için mükemmel bir  deneyim sunuyor diyebiliriz.   Kitimizi bilgisayara mini usb kablomuz ile bağladığımız andan itibaren bu dünya bize kapılarını açıyor.  İlk kez bu kit ile karşılaştğım bir özellik ise kiti bilgisayara bağlar bağlamaz karşıma bir flash disk penceresi açılması ve bu flash disk içerisinde mbed dünyasına adım atmamızı sağlayacak bir kısayol bulunmasıydı. Kısayola tıkladığımızda mbed’e kayıt olup kod yazmaya başlayabiliyoruz. STM32L053 kitimiz mbed tarafından tanınıyor ve daha önce hazırlanmış olan pek çok örnek uygulamaya ulaşabiliyoruz. Mbed’i incelemek için http://www.mbed.org adresine girebilirsiniz. Kitin asıl amacı ise ultra düşük güç tüketen yeni nesil  Cortex-M0+ ailesinden STM32L053R8 mikrodenetleyicisini kullanıcılara tanıtmak. Aşağıdaki grafikten ultra low power’ın ne anlama geldiğini görebilirsiniz. (Artık mikro amper kavramı bile küçüklük ifade etmeye yeterli gelmiyor. Nano  Amper seviyelerine kadar inilmiş durumda mikrodenetleyici dünyasında.)

Adsız

STM32L053 mikrodenetleyicisinin farklı çalışma koşullarında çektiği akım değerleri. Görüldüğü gibi oldukça düşük.

Kitin diğer bir özelliği ise, üzerindeki işlemciyi programlama sırasında gösterdiği kolaylık. Tek yapmamız gereken şey oluşturduğumuz hex veya bin dosyalarını, kitin bilgisayarımızda oluşturduğu küçük bellekli (64KB) flash diskin içerisine kopyalamak. Kopyaladığımız hex dosyası kısa süre içerisinde mikrodenetleyiciye yükleniyor ve çalışmaya başlıyor. Flash diski tekrar açtığımızda ise yüklediğimiz hex dosyasının kaybolduğunu görüyoruz.

Kit’in sağladığı diğer bir güzellik ise STM32L053 mikrodenetleyicisinin USART2 (PA2,PA3) pinlerinin kit üzerinde bulunan ST-LINK’e bağlanmış olması sayesinde doğrudan kite bağlı USB kablosu üzerinden usart haberleşmesi yapabilmek. Kit bilgisayara takıldığında ST LINK, PC üzerinde bir sanal seri port oluşturuyor ve bu sanal seri port aracılığı ile uart işlemleri gerçekleştirebiliyoruz. Bu imkanların bize sunulmasını sağlayan araç ise kit üzerinde dahili olarak bulunan ST-LINK V2-1. Bu programlayıcı sayesinde bu tür imkanlara kavuşuyoruz.

Ben kitin bu özelliklerini biraz kurcaladıktan sonra tabi hemen mikroC ARM ile kodlamaya başladım. ( MikroC pro for ARM derleyicisi bir kaç ay önce yayınlanan 4.5.0 güncellemesi ile birlikte ST’nin yeni ultra low power mikrodenetleyicilerine destek vermeye başlamıştı.) Kodlamaya başladım başlamasına ama bir de ne göreyim, kitin üzerinde bulunan user butonunu kullanmak istedğim bir uygulam ne yeparsam yapayım çalışmıyordu. Kodlarımı defalarca incelememe rağmen herhangi bir hata ile karşılaşmadım. Yaptığım işlem basitti ; Kit üzerindeki user button’a (PC13) bastığımda user led’in (PA5) sönmesini istiyordum.  Fakat tuşa basmama rağmen hiç bir değişiklik olmuyor ve led yanmaya devam ediyordu.  Daha sonra mikroc kütüphanelerini kullanmadan register seviyesinde kod yazarak  yaptığım denemede ise sonuç olumluydu. Bu da demek oluyordu ki mikroC’nin GPIO kütüphanelerinde bir hata vardı. Hemen konuyu mikroC forumlarına taşıdım ve 2 günlük yazışmanın ardından kütüphanelerindeki hatayı tesbit edip düzelttiler. Bana da şükranlarını sunarak  düzelttikleri kütüphane dosyasını gönderdiler 🙂  Yeni sürümde bu dosyayı derleyiciye ekleyecekler ama ben önceden sizlerle paylaşayım. Buradan indirip  “\mikroC PRO for ARM\Uses\ST M0” klasörüne kopyalarsanız sorun kalmayacaktır.

Yazıyı fazla uzattığımın farkındayım.

Kit ile ilgili ilk yaptığım uygulama olan usb üzerinden seri iletişim uygulamasını paylaşayım hemen:

void main()
{
 UART2_Init(9600);
 while(1)
         {
          UART2_Write_Text("mikrodunya.wordpress.com\r\n");
          delay_ms(500);
         }
}

Bu kodu işlemciyi en yüksek çalışma frekansı olan 32MHz’de çalıştırarak denedim ve usb kablo üzerinden sanal seri port ile haberleştim. Kit’in benim bilgisayarımda oluşturduğu sanal seri port COM7 oldu.

Proje dosyasını buradan indirerek işlemcinin konfigürasyon ayarlarına bakabilirsiniz.
May the force be with you…

yorum
  1. yusuf dedi ki:

    Merhaba Link çalışmıyor. Teşekkürler.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s