back to top

STM32 Nedir? STM32F407 Discovery Başlangıç Rehberi

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.

STM32F407
STM32F407

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 Üzerinde Bulunan Pin ve Komponentler
STM32F407 Üzerinde Bulunan Pin ve Komponentler

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.
Daha Detaylı STM32F407 Şematiği
STM32F407 Şematiği

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.

Aygıt Yöneticisi Ekran Görüntüsü
Aygıt Yöneticisi Ekran Görüntüsü

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

STM32 ST-LINK Utility Aracı
STM32 ST-LINK Utility

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 İndirme Sayfası
CooCox IDE İndirme Sayfası

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 :

CooCox IDE Arayüzü
CooCox IDE Arayüzü

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.

Projeye İsmi Verme
Projeye İsmi Verme

“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.

Chip Seçimi
Chip Seçimi

Ö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.

Dosya Konumunu Bulma

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.

Başlangıç için Örnekler
Başlangıç için Örnekler
Başlangıç için Örnekler

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 :

Bazı Ayarlamalar

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.

STM Süper Kiti
STM Süper Kiti

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 :

Mert Altuntaş
Mert Altuntaşhttps://github.com/mertfozzy
Küçüklüğümden beridir bilgisayarlara inanılmaz derecede bir merakım olduğundan, kendimi teknoloji alanında geliştirmeye karar verdim. Liseyi bitirdikten sonra Beykoz Üniversitesi Bilgisayar Mühendisliği bölümünü kazandım ve hala okumaktayım. Kendi kişisel yazılım projelerimi geliştirerek veya çeşitli projelerin içerisinde bulunarak, bu alanda ilerlemeye çalışıyorum. Aynı zamanda Robotistan bünyesinde de çalışmalarımı sürdürmekteyim. Çeşitli projelerin ve blog içeriklerinin geliştirilmesinden sorumluyum. Kişisel özelliklerimden bahsetmek gerekirse; çalışma disiplini benim için oldukça önemlidir. Bütün işlerimi zamanlı ve planlı olacak şekilde düzenler, program olmadan çalışmaya asla başlamam. Aldığım mühendislik eğitimi ile, çalışmalarım içerisinde de aynı düzeni göstermeye dikkat ederim. En önemlisi de, bilginin paylaştıkça çoğaldığına inanırım. Bu nedenle yaptığım her çalışmayı, Github gibi platformlar üzerinden paylaşıma açarım...

Son Çıkan Yazılar

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz