KULLANDIĞIM MİKROİŞLEMCİLER

MİKROİŞLEMCİ SEÇİMİM

Bu bölümde projelerimde kullandığım mikroişlemciler hakkında bilgi vereceğim. Özellikle yaygın olarak kullandığım 48 ve 64 pinli STM32F103 işlemcisinin pin fonksiyonlarını dokümantasyonlarından aldığım bilgiler ile özetleyeceğim.

Bunu ikide bir yüzlerce sayfalık data sheet karıştırmaktan sıkıldığımdan, sıklıkla başvurulması gereken bilgileri kolay erişilebilecek bir yerde bulundurmak için yapıyorum. Blogumdan yararlanmak isteyenler için de kullanışlı olabilir.

Bu yayın sadece çok temel bilgileri içeriyor, binlerce sayfalık dokümanın yerini tutması mümkün değil. Detaylar için gene de data sheetlere başvurmaktan kaçınamıyoruz.

Neredeyse 50 yıllık bilgisayar kullanıcısı olarak, günümüzün tek yongalık işlemcilerini kullanmak için gereken dokümantasyon ile ilk yıllarımın odalar dolduran bilgisayarlarının kullanıcı dokümantasyonu arasında fark olmadığını söyleyebilirim. (İlk haşır neşir olduğum makinanın IBM in o günlerde devrim yaratmış modeli, tranzistorlu 1620 modeli olduğunu belirteyim.)

GEÇMİŞTE KULLANDIĞIM MİKROİŞLEMCİLER

Başlangıç dönemlerinde -yani 40 yıl önce- kullandığım INTEL’in 8080 ve 8086, Zilog’un Z80 mikroişlemcileri o dönemin lider ürünleri idi ve ilk göz ağrılarım olarak gönlümdeki yerlerini muhafaza ediyorlar.

Zamanla mikroişlemci seçenekleri çığ gibi büyüdü. Hem üreticileri açısından hem de kapasite açısından izlenmesi güç bir tempo ortaya çıktı. Öyle ki, kalabalık bir mühendis ekibi çalıştırmadıkça her yeni mikroişlemciyi incelemeye dahi imkan yok, kaldı ki ben tek başıma her birinin örneklerini ele alıp deneyeyim.

Eğer bu alanda amatörce bir şeyler yapmak istiyorsam bir mikroişlemci ailesinden bir iki tip seçip onlara odaklanmam gerektiğini anladım. Zira tek bir mikroişlemcinin her biri  yüzlerce sayfadan oluşan onlarca dokümanını inceleyip, hakkıyla öğrenip kullanmak bile ciddi bir emek ve zaman gerektiriyor.

Seçime nereden başlayacağımı da karşıma çıkan tesadüfler belirledi. Piyasada ATMEL, MIKROCHIP, TEXAS, PHILIPS ve MOTOROLA ürünlerinin yaygın olduğu bir dönemde SIEMENS’in Kartal Elektronik Fabrikasındaki görevim karşıma ATMEL in C51 yapısındaki mikro işlemcilerini çıkardı.

ATMEL C51 Yapısında mikro işlemciler

Bu fabrikada arkadaşım Cüneyt BİLGE ATMEL 89S53 kullanarak GSM tabanlı ürünler geliştirmekteydi, ben de kendime bir fırsat yaratarak o çalışmalara bir ucundan katıldım. Yönetici de olsam Mühendislik kanıma işlemiş, uzak durmam mümkün değil.

Böylece fabrikanın teknik ve iş geliştirme yöneticiliği görevini yürütürken bir yandan da 8 bit işlemci ile birkaç ürün tasarımı yaptım. Bu mikroişlemcinin kapasite ve yeteneklerini sonuna kadar kullandığımı iddia edebilirim.

BUGÜNKÜ MİKROİŞLEMCİLERİM

Bugün ise artık 32 bit ARM işlemciler kullanıyorum. Seçimim ise STM32F103. Bu mikro işlemci STM32 ailesinin en küçük ferdi, en ucuz olanı. Bir dezavantajı var. Genelde ST Firmasının ve geliştirmecilerin internette bulunabilecek uygulama örnekleri bu ailenin daha üst sınıflardaki tiplerine ait oluyor. Buna rağmen ben bu tipi bütçeme uygun ve uygulamalarım için yeterli budum. Bu mikroişlemci ile geliştirilen bir uygulama rahatlıkla diğerlerine uygulanabiliyor, halbuki tersi her zaman geçerli değil.

Bunun yaygın alternatifleri ise ATMEL ve MIKROCHIP. Ben bunlara elimi sürmedim. Bu seçimin özel bir nedeni yok, sadece ilk elime geçen geliştirme kitinin STM32 tabanlı olmasından kaynaklanıyor.

Mikroişlemciler ile geliştirme yaparken, prototip çalışmalarında entegre devreyi plastik kılıfı ile ele alıp çalışmaya başlamak mümkün değil. Bu nedenle minik plaketlere temel destek elemanları ile -kristal, besleme devreleri, reset butonu vb.- monte edilmiş olarak alıp kullanmak en uygun yaklaşım oluyor. Böylece hiç olmazsa prototip için lehimleme işlemlerini pas geçebiliyoruz. Bu modüller birkaç dolara internetten tedarik edilebiliyor.

Kullandığım geliştirme modüllerine bazı örnekleri aşağıda veriyorum. En çok kullandıklarım ilk dört modül. (Yayın tarihi itibari ile – 2017). Diğerlerini de zaman zaman kullanıyorum ama ilk 4 tip her işimi görmeye yetiyor.

STM32F103 48 pin Pico modül

Pico Modül STM32F103C8T6 tipi 48 pinli yonga taşıyor. ST Firmasının “Medium Density” olarak sınıflandırdığı bir işlemci.

Bu yonganın 34 adet I/O portu, 64KByte flash belleği ve 20 Kbyte RAM’ı var. Adaptör kartı 40 adet pin ile I/O pinlerine, 4 pinli konnektör ile de SW flash programlama pinlerine erişim sağlıyor.

Maple Leaf Modülü STM32F103RCBT6 tabanlı

STM32F103CBT6 yongası kullanan Maple Leaf’in yukarıdaki Pico dan iki farkı var:

Birincisi Flash Bellek 64 yerine 128Kbyte. İkincisi ise modülün iki yanındaki 20 şer pin Arduino uyumlu olmak üzere düzenlemiş. Benim Arduino ile bir işim olmadığından bu ikinci özelliğin benim açımdan önemi yok. Pinleri Arduino uyumlu olarak numaralandırmışlar. Bazı pinlerin işlevlerine göre etiketlenmiş olması  bir bakıma kolaylık sağlıyor.

Öte yandan pinlerde I/O port bilgilerinin olmaması bu faydanın da büyük kısmını silip götürüyor. Örneğin sadece 15-16-17 vb yazılı pinler hiçbir şey ifade etmiyor. Bunların hangi portlara ait olduğunu doküman karıştırarak çıkarmak gerekiyor. Bu durum pin-port atama işlemleri ile uğraşmayan Arduino kullanıcıları için sorun değil. Programlama pinleri de Pico da olduğu gibi diğerler pinlerden ayrılarak dışarı alınmamış, bunlara erişim kenardaki pinler üzerinden sağlanıyor.

STM32F103R8T6 Mini 64 Modülü

STM32F103R8T6 tabanlı bu Minikit 64 daha fazla I/O portuna ihtiyaç olduğunda kullandığım modül. Yukarıdaki Pico ve Maple ödüllerin verdiği 34 I/O yetersiz olduğunda bu Modülün fazladan sağladığı 16 I/O lu C portu ile D portundan gelen 2 pin işimi görüyor. 64 pinin hepsine ulaşılabiliyor. Ben SW (Single Wire Programming) kullanıyorum ama istendiğinde kullanılabilecek JTAG programlama/debugging konnektörü de var.

Mikroişlemci 64 pinli, Flash Bellek 64 Kbyte, SRAM ise gene 20 Kbyte.

STM32F103C8T6 Mini V2.5 DCcE1e modülü

Mini STM32 V3.5 adlı bu modül de STM32F103C8T6 48 pinli, 64Kbyte Flash’lı yonga içeriyor. Yukarıdakilerden fazla olarak CH340G USB/UART çevirici devresi var. Biraz da kullanımı kolaylaştıran fazladan pinler var, bunlar besleme gerilimlerine ve toprağa erişim sağlıyorlar. Bir de açma kapama butonu var.

DİĞER STM32 MODÜLLERİ

Bunlar, ehven fiyatlar ile bulduğumda kaçırmamak üzere elimin altında bulunsun diye satın aldığım geliştirme modülleri. Yukarıda verdiğim minyatür modüllerle yapabileceklerimi yaptıktan sonra sıra bunlara gelecek.

LC STUDIO STM32F103RBT6 modülü

STM32F103RBT6 Tabanlı LC STUDIO Modülü 64 pin ve 51 I/O, 128Kbyte Flash, 20KByte SRAM a sahip. Biraz daha rahat ve büyük bir kart üzerine bir Max232 üzerinden çalışan RSR232 portu da koymuşlar. Yer problemi olmadığında ya da sadece geliştirme amacı ile kullanılabilecek kullanışlı bir kit.

STM32F407VGT6 Discovery modülü

STM32 Discovery geliştirme kiti, ST nin geliştirip pazarlamasını yaptığı bir modül. Dolayısı ile ST nin müşterilerine sağladığı geniş bir kütüphaneden yararlanıyor.  Ben bu aşamada ST nin hazır kütüphanelerini kullanmadığım için pek işim düşmedi, ama günü geldiğinde kullanacağım. Elimdeki bu modül STM32F407 tabanlı, yani ailenin büyük fertlerinden biri. 5 adet 16 I/O lu portu, 1Mbyte Flash Bellek, 194KByte SRAM ile büyük bir kapasitesi var.

STM32F401RET6 NUCLEO

STM32F401RET6 Tabanlı NUCLEO da yukarıdaki Discovery modülü gibi ST firmasının geliştirme kiti.  Buna Arduino uyumlu aksesuarların kullanılabilmesi için iki sıra dişi konvektör de koymuşlar. Örneğin, Arduino uyumlu diye satılan bir TFT ekranı direkt olarak takıp kullanabiliyorsunuz. Yine STM32F4 serisinin ekstra özelliklerine sahip. 512Kbyte Flash, 96KByte SRAM ve 50 adet I/O pini var. Bu kapasiteye de henüz ihtiyacım olmadı ama ilerleyen günlerde olacak.

STM32F205RBT tabanlı XP KITS geliştirme modülü.  STM ailesi ile tanışmam bunun STM32F103 versiyonu ile olmuştu. Ethernet portu, RS232 Portu ve bir sürü kullanıcı butonu, SD kart soketi, LCD ekranı olan yararlı bir eğitim aracı. Özellikle internet uygulamalarında çok yararlı olmuştu. Kit ile birlikte verdikleri örnek yazılım paketlerinden de çok yararlandım. Hala aklıma gelen yeni birşeyi denemek istediğimde elime aldığım güzel bir kit.

STM8 Geliştirme modülü

8 Bitlik Mikroişlemcilerle yapılabilecek işler için kullandığım mikro modüllerim de var. Bunlar STM8 serisinden çok ucuz, ancak I/O sayısı ve yetenekleri çok kısıtlı mikroişlemciler. Yazılım geliştirmek için KEIL değil de IAR platformunu kullanmak gerekiyor. Çok nadir elime aldığım modüller bunlar.

STM32F103 LQFP48 ve LQFP64 PİN BİLGİLERİ

STM32F103 LQFP48 PIN DİYAGRAMI

STM32 LQFP48 Pin diyagramı

STM32F103 LQFP64 PIN DİYAGRAMI

STM32F103 LQFP Pin diyagramı

STM32F103 LQFP48 ve LQFP64 PIN FONKSİYONLARI

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.