Merhaba arkadaşlar, bu yazımda sizlere son zamanların en çok tercih edilen, gömülü sistem projelerinin yıldızı ARM işlemcili 32-bit F4 serisi STM32F407 geliştirme kartından bahsedeceğim.
Evvela kartımızın özelliklerini inceleyip ne gibi işlerde / projelerde kullanabileceğimizi göreceğiz. Daha sonra da sizlerle beraber STM32F407 Discovery kartını hangi programlar ile kullanacağımızı, programların kurulum aşamalarını adım adım takip edeceğiz.
Son olarak basit proje örnekleriyle STM32F407’ye hızlı bir giriş yapmış olacağız. Artık sonrası sizin yaratıcılığınıza kalmış.
Robotistan.com’dan STM32F407 Discovery kartlarımızı aldıysak artık başlayalım! (Olası hasar ve kısa devrelerden korumak için “Koruma Kabı” tavsiye edilir).
STM32F407 Nedir?
STM32F407 kısaca 168 Mhz saat frekansına sahip 32-bit’lik bir mikrodenetleyicidir. Özellikle DSP uygulamalarında , içerisinde bir çok alt sistemler olan yapıların ana beyni olarak kullanılmaktadır. Üzerinde STM32F4VG çekirdeğini barındırmaktadır. 3-eksen ivme ölçer , dahili ses girişi ve buna bağlı dijital analog dönüştürücü , 4 adet programlanabilir LED , 2 adet buton barındırır. Yukarıdaki resimde kırmızı yuvarlak içine alınan bölge kitin kendi çekirdeğine ve programlayıcı bölgede bulunan SWD pinleri ile başka arm mimarileri de program yapabileceğiniz st-linkV2 kısmıdır.
STM32F407 Teknik Özellikleri
- 32-bit ARM Cortex-M4F çekirdeğine sahip STM32F407VGT6 mikrodenetleyicisi, 1 MB Flash ve 192 KB RAM
- Dahili ST-LINK/V2 JTAG Debugger
- USB veya harici kaynaktan doğrudan 5v ile çalışabilme
- 3 V ve 5 V luk çıkış pinleri
- 3-eksen dijital ivmeölçer (LIS302DL)
- Omni-Directional Mikrofon (MP45DT02)
- D sınıfı yükselteçli ses sürücü çipi(CS43L22)
- Sekiz adet LED:
- LD1 (kırmızı/yeşil)(USB haberleşmesi için)
- 3v3 power on/off LEDi
- Dört adet kullanıcı LEDi, LD3 (turuncu), LD4 (yeşil), LD5 (kırmızı) ve LD6 (mavi)
- 2 adet USB OTG LEDi, LD7 (yeşil) ve LD8 (kırmızı)
- Bir adet Reset ve bir adet kullanıcı tanımlı buton
- USB OTG için mikro-AB konnektör.
- 100 pin’in tamamını kullanabilmeye imkan tanıyan çıkışlar.
STM32F407 Discovery geliştirme kartını kullanarak birçok gömülü sistem projeleri yapabilirsiniz. Peki ya nedir bu “gömülü sistem”? Gömülü sistemler her gün çevremizde gördüğümüz bütün elektronik cihazlarda bulunan, halk arasında beyin diye tabir ettiğimiz cihazı akıllı yapan kısımdır.
Bunlara örnek olarak asansör sistemleri, klima, güvenlik izleme sistemleri gibi ev otomasyonu ürünleri, hesap makineleri, mikrodalga fırınlar, çamaşır makinesi, televizyon setleri ve medya oynatıcı gibi ev elektroniği ürünlerini gösterebiliriz. Temelde gömülü bir sistem kendisine önceden verilen, özel olarak tanımlanmış görevleri yerine getirir.
Artık gömülü sistemleri de anladığınıza göre kafanızda birçok proje oluşmuştur diye düşünüyorum merak etmeyin sıkı bir çalışma ve yeterli bilgi-beceriyle sizde kendi cihazlarınızı STM32F407 kullanarak yapabileceksiniz! O zaman hız kesmeden yazımızın devamına geçelim. Bu kartı nasıl programlayacağız?
STM32F407 Discovery Programlama
Eğer bloğu başından beri sıkı takip edip okuduysanız STM32’nin ARM tabanlı bir mikrodenetleyici olduğunu biliyorsunuzdur. ARM tabanlı mikrodenetleyicilerin programlamasında geliştirme ortamı ve derleyici kullanımı bir parça zorlayıcı ama bu sizi endişelendirmesin çünkü hepsini tek tek anlatacağım.
Kurulumu ve kullanım kolaylığı sunan COOCOX adlı IDE ile STM32 kitlerini programlamaya başlamak sizin için oldukça kolay olacaktır. Şimdi size adım adım linklerle kurulumu anlatacağım.
ADIM – 1 : Programlayıcı
Öncelikle yapmamız gereken şey, kartımızın üzerinde bulunan ST-Link programlayıcının sürücüsünü kurmak olacak. Bunun için aşağıdaki adımları izleyin :
ST – Link Driver: http://www.st.com/web/en/catalog/tools/PF258167
Bu sürücü sayesinde kartımızı programlayabiliriz. İndirmeden önce e-posta doğrulaması isteyecek hızlı bir şekilde gerçekleştirip indirmeyi gerçekleştirebilirsiniz. Eğer sürücüyü doğru bir şekilde kurduysanız STM32 kartınızı bilgisayarınıza taktığınızda Windows Aygıt Yöneticisi’nden görüntüleyebilirsiniz.
Sürücüyü kurduysanız emin olmak için ST-Link Utility aracını da kurarak programlayıcının çalışıp çalışmadığını gözlemleyebilirsiniz :
STM32 ST-LINK Utility : https://www.st.com/en/development-tools/stsw-link004.html
Buraya kadar kartımıza program atmak için gereken hazırlıkları yaptık. Eğer yukarıda belirtilen tüm işlemleri doğru yaptıysanız tebrikler, artık kartınız programlanabilir demektir. Fakat hala bir geliştirme ortamı edinmedik. Dilerseniz şimdi de geliştirme ortamını kurmaya geçelim.
ADIM – 2 : Derleyici
Bu sefer önceliğimiz ARM GCC derleyicisini indirmek olacak. Linkteki en son sürümü indirmenizi tavsiye ediyorum :
ARM GCC : https://launchpad.net/gcc-arm-embedded/+download
Bu işlemden sonra derleyicimizi de kurmuş olduk. Sırada IDE var, çok sıkıldınız biliyorum bir an önce artık proje yapalım diyorsunuz ama unutmayın, bu kart Arduino gibi basit bir kart değil. Gerçek bir mühendislik ürünü ve sizi “Master of Engineers” (Mühendislerin Ustası) yapacak bir ürün. O yüzden biraz daha sabır, son adımımız kaldı. 🙂
Adım – 3 : IDE
IDE sayesinde projelerinizi oluşturup kartınıza yüklenebilir hale getirebilirsiniz.
CooCox IDE : https://www.softpedia.com/get/Programming/Coding-languages-Compilers/CooCox-CoIDE.shtml
(Orjinal sitesinde hata aldığımdan dolayı ek bir kaynak ekledim, orjinal sitesine burdan göz atabilirsiniz : http://www.coocox.org/software/coide.php)
Kurulumu birçok programda olduğu gibi basit bir şekilde gerçekleştirebilirsiniz. Kurulumu tamamladıktan sonra, masaüstündeki COIDE programını çalıştırın (eğer Eclipse aşinalığınız varsa size kolaylık sağlayacaktır ama endişe etmeyin aşina olmasınızda kolayca alışırsınız).
Artık ilk projemizi oluşturmaya hazırız!
İlk Adım İlk Proje
İlk adımımızı yapmak üzere CoIDE programını açıyoruz. Bizleri aşağıdaki gibi bir ekran karşılıyor, daha fazla beklemeden “Create a New Project”e tıklıyoruz :
Projemize bir isim vermemiz gerekiyor. Bu aşamada IDE’nin sonradan sıkıntı çıkarmaması için Türkçe karakterler kullanmamaya özen gösteriniz.
“Next”e tıklayarak adımları geçmeye devam ediyoruz. Bir sonraki adımda “chip” seçeneğini seçiyoruz. IDE sizden hangi çipi programlamak istediğinizi seçmenizi isteyecek, bu adımda arama kısmına “STM32F407VG” yazarak modelinizi seçebilirsiniz.
Öncesinde kurulumunu yaptığımız ARM GCC’nin dosya konumunu “Project” >> “Select Toolchain Path” penceresinde çıkan uygun alana yapıştırıyoruz veya “browse” seçeneğinden kurulumda değişiklik yapmadıysanız default olarak C bellekte bulabilirsiniz.
Projemizi oluşturduktan sonra karşımıza çıkan “repository” penceresinden projeniz için gerekli kütüphaneleri ekleyebilir, kütüphane içerisindeki onlarca örnek üzerinde çalışabilir ve gözlemleyebilirsiniz.
Yeni başlayanlara, öncelikle örneklerle başlamalarını tavsiye ederim. Bunun için; aşağıdaki resimli adımları takip ederek “Others” sekmesinden GPIO seçeneğini seçip, sol üstte bulunan Component penceresinden “GPIO with x example”a tıklayın. Tekrardan bir pencere açılacak, bu pencereden de “STM32F4 Discovery-IO-Toogle”a gelip “add” seçeneğine tıklıyoruz.
Projemiz bu aşamadan sonra açılıyor fakat dikkat etmeniz gereken tik işareti koyduğum boş olan “main.c” dosyasını silmeniz, bu adımı da yaptıktan sonra artık örneğimizi kartımıza yükleyebiliyor olacağız.
Kodu karta yüklerken “View” >> “Configuration” menüsünden ST-Link’i programlayıcı olarak kullanmak için, resimdeki gibi ayarlarınızı düzenlemeniz gerekiyor :
Tüm işlemleri tamamladığımıza göre F7 (Build)’e basıp programımızı derliyoruz. Derleme işlemi tamamlandığında Console penceresinde “BUILD SUCCESFULL” yazısını göreceksiniz
Son işlemimiz de “Flash” >> “Program Download” butonuna basarak kodumuzu kartımıza atıyoruz. Bu işlemler sonrası kartın üzerindeki ışıklar yanıp sönecektir bu da tüm aşamaları başarıyla tamamladınız demek oluyor 🙂
Bu yazımda son zamanların en popüler geliştirme kartı STM32F407’ye sizlerle hızlıca bir giriş yaptık. Gerekli yazılımları ve programları kurduk, örnekler ve kütüphanelerle neler yapabileceğimizi gördük. İlerleyen zamanlarda çeşitli projelerle bilgimizi pekiştireceğiz, şimdilik hoşçakalın, üreterek kalın 🙂
STM Süper Seti ile hemen projeye başla !
STM32F4 DISCOVERY oldukça güçlü ve işlevsel bir geliştirme kartı olduğundan, yeni başlayanlar için uygun bir STM kiti de hazırladık 🙂 Kitin içerisinde STM32F4, koruyucu kutusu ve kablosu beraberinde geldiğinden çalışmalarınıza seri bir şekilde başlayabilirsiniz.
Aşağıdaki bağlantıya tıklayarak sizler için hazırladığımız STM Süper Kitine ulaşabilirsiniz :
Kit içeriği ve daha fazlası için sizlere bıraktığım linkleri de inceleyebilirsiniz :
- STM32F407 Discovery Geliştirme Kartıları : https://www.robotistan.com/st-stm-arm-gelistirme-karti
- STM32F407 Discovery Pleksi Koruma Kutusu : https://www.robotistan.com/stm32-f4-discovery-pleksi-kutu-stm32f407g-disc1-koruma-kabi
- Mini USB Kablo : https://www.robotistan.com/usb-mini-b-kablo