Mikrodenetleyici Seçimi ve Proje Aşamaları
Günlerimiz teknoloji üzerinde dönüyor artık. Bunun hayatımızdaki önemi nedir, nerelerde kullanılıyor gibi klasik cümleler ile bence makalemizi şişirmeye gerek yok. Konumuz; mikrodenetleyici seçerken nelere dikkat etmeliyiz, seçim yaparken hangi durumlar göz önüne alınmalı, neler araştırılmalı, hangi kriterler değerlendirilmeli, hangi marka işlemciyi kullanacağımıza nasıl karar vermeli… gibi önemli sorular ve tabii bu soruların cevapları. Sorularımız çok olduğuna göre hiç vakit kaybetmeden başlayalım makalemize.
Problemin Tanımlanması
Öncelikli ve ilk yapılması gereken maddemiz; Problemimizi tanımlamamızdır. Problemimizi doğru şekilde tanımlamak; sonuca ulaşmamızdaki en büyük adımımızı atmamızı sağlayacaktır. Kağıt üzerinde çalışıp; projemizin tamamını akış diyagramları ile algoritmasını çıkarmak; net tip verilerin hangi yollarla kullanılacağını, nasıl çıkışlar alacağımızı, verilerimizi nerelerde saklayacağımızı gibi durumları kağıt üzerinde görmek; işlerimizi fazlasıyla kolaylaştıracaktır. Kendimden kıyas ile; sanırım bir çoğumuz bu ilk maddeyi pek uygulamıyoruz. Bir projeye başlamanın vermiş olduğu heves ve heycan ile, kollarımızı sıvayıp işe körü körüne başlıyoruz. Sonra an geliyor; “Tühh bu işlemci işimi görmüyormuş, Ah keşke şu özellikte bir model seçseydim” gibi cümleler ile saçlarımızı yoluyoruz. Sonra dön baştan tekrar. İşe başlarken kağıt üzerinde çalışmayı; kendimiz için kayıp görürken. İlerki zamanlardaki geri dönüşlerin farkına varamıyoruz. Bu nedenle işe problemin doğru tanımlanması ile başlamak; zamandan en verimli şekilde faydalanmayı sağlayacaktır.
Markanın Belirlenmesi
Evet, problemimizi tanımladık, nasıl bir işlemci ile çalışacağımız hakkında ufak tefek bir kaç fikir sahibi olduk. Sırada bu işlemcimizi hangi firmadan temin edeceğimizdir. Gerçekten çok önemli bir nokta. Hangi marka iyidir nasıl anlarız? Bir markanın iyi olup olmadığı konusunda şöyle bir yol izlenebilir; öncelik olarak çevrenizde bu marka işlemcileri kullanan birileri varsa onların görüşlerini alınız. Birinci ağızdan alınan cümleler; dolaylı yoldan edilinecek bilgilere kıyasla çok daha sağlıklı olacaktır. Eğer çevrenizde butür bir marka ile uğraşmış birileri yoksa izleyeceğiniz yol; internet üzerindeki bir arama motorunda bazı anahtar kelimeler ile arama yapmak. Mesela kullanacağımız işlemciyi üreten firmamız “DİYEZON” adında bir üretici olsun. İnternet üzerinde şöyle aramalar yapabiliriz; “Diyezon + İşlemci Kalitesi”, “Diyezon + Problemler”, “Diyezon + Teknik destek” vb. Yani kalite ile ilgili, sorunlara getirilen çözümler ile ilgili anahtar kelimeler ile firma adının kombinasyonlarından olacak aramalar ve gelen arama sonuçları sizlere firma hakkında fikirler sunabilir. Tabii internet üzerinden bulabileceğiniz sonuçların doğruluk derecesi tartışılır. Çünkü firmaya kızmış birinin yazacağı yalan haberler olabileceği gibi, yazılan bilgiler doğru da olabilir. Bunun yanında firmanın sitesine girilip incelenmeside çok önemlidir. Benim için bir firma hakkında varacağım ilk düşünce; firma sitesinin kullancı ile dost bir arayüze sahip olmasıdır. İlk izlenim herzaman çok önemlidir. Sitesinde aradığınız bilgilere rahat ulaşabiliyorsanız; bu sizin için ve firma için güzel bir adım olacaktır. Ürünlerini nasıl tanıttığı, teknik bilgilerin ayrıntısı, online olarak verilen teknik hizmetler ve destekler, hepsi birer artı olacaktır. Evet arama sonuçlarımız ve edindiğimiz bilgiler sonucunda; Diyezon firmasının kaliteli işlemciler ürettiğini ve teknik desteğinin iyi olduğunu, işlemcilerinde sorunlar yaşanmadığını öğrendik. Å?imdide hangi işlemciyi kullanacağımıza karar verelim.
MCU Seçimi
Problemimizi tanımlayıp, markamızı seçtikten sonra; artık işlemcimizin modelini belirleyebiliriz. Genelde çevremde bilgisayar alma girişiminde bulunan arkadaşlarım bana danışıp fikrimi alırlar, “şu model nasıl, bu güzel mi” gibi. Bende hepsine derim ki; “Öncelikle amacını iyi belirle, bilgisayarı niçin kullanacağını kararlaştır ve gereksiz donanıma para verme”. Sadece internet amaçlı bilgisayar alacaksanız, neden tonlarca parayı gereksiz donanımlara yatırasınız. Yok hayır ben grafik çizimleri yapacam derseniz neden uzuz ekran kartı ve işlemci alasınız. Bunlar gerçekten akıllı yatırım için önemli noktalar. Bir mikrodenetleyici seçerkenden bu noktaya dikkat etmek gerekir. Diyelim ki seri port kullanmayacaksınız ve 2 işlemci arasında seçim yapacaksınız; konu maliyet olduğunda; fazladan para verip UART yapısına sahip olanı tercih etmek akıllı bir çözüm olmayacaktır. Yada 512 Byte hafıza yeterli olurken neden daha fazla para verip 1KB lık modeli tercih edelim? Bunlar üreteceğiniz ürünün kar marjlarını arttıracak önemli unsurlardır. Peki bu seçim kriterlerimizi ne zaman belirlemeliyiz? Cevabımız; Problemimizi tanımlama süreci olacaktır. Problemin tanımlanma aşamasında; çözüm sırasında neler kullanacağımızı, nelere ihtiyacımızın olduğunu, nelere ihtiyaç duymadığımızı kesin hatları ile belirlememiz gerekir ki işlemcimizi seçerken sağlıklı bir seçim yapabilelim. Peki başlıca kriterlerimiz neler olmalıdır ve hangi sırayı takip etmelidir? Bunları şöyle sıralayabiliriz:
Kaç adet I/O (Input/Output) kullanacağız? Projemizde giriş ve çıkış olarak kullanacağımız ayak sayısının belirlenmesi.
Özel yapılar kullanacak mıyız? Seri haberleşme, Kablosuz iletişim teknolojileri, RF protokolleri, Analog Dijital dönüştürücüler gibi yapılara ihtiyaç duyacakmıyız.
Çalışma Frekansımız nedir? Hangi frekanslarda çalışacağımız önemlidir. Yapacağımız proje görüntü işleme gibi performans gerektiren, hız gerektiren bir proje olacaksa; mutlak surette işlemcimizin yüksek frekanslarda çalışabilmesi gerekir. Ama basit bir seri haberleşmesi için yüksek frekanslara çıkmaya hiç gerek yoktur.
Ne kadar bir hafızaya ihtiyacımız var? Projemizdeki kodumuzun ne kadar yer kaplayacağı önemlidir. Bazen programımızı 512 Byte hafızaya sığdırabilirken, an gelir 32 KB lık hafızalar yetersiz kalabilir. Tabii bu hafıza belirleme durumu; problemin tanımlanması sırasında kesin bir sonuca dayandırılamaz. Fakat yaklaşık bir tahminde bulunabiliriz. Tahminlerimiz doğrultusunda seçimimizi yapabiliriz.
Ne kadar bir EEPROM a ihtiyaç duyacaz? Eğer projemizde EEPROM kullanmayı düşünüyorsak ne kadarlık bir EEPROM ihtiyacımız olacak. Çünkü EEPROM teknolojisi işlemci maliyetlerini arttıran bir unsurdur; bu da tabii olarak fiyatlara yansıyacaktır. İhtiyacımızdan daha fazlasına para vermek israf olacaktır. Tabii EEPROM hiç kullanmayacaksak; işlemcimizin EEPROM bulunmayan modelini seçmemiz daha uygun olacaktır.
Kılıf Tipi? Son olarakda işlemcimizin baskılı devre kartımız üzerindeki yerleşim şekline en uygun kılıf tipini seçmek olacaktır. Tabii ki bu projenin hayata geçirilmesi aşamasında da dikkate alınabilecek bir noktadır. DIP bir kılıf ile başlayıp sonradan SMD yapıya geçmek çok fazla problem oluşturacak bir durum değildir.
Evet, en genel ifadeyle bir işlemciyi seçerken bu 6 maddeye çok dikkat etmemiz gerekir. Sağlıklı ve profesyonel projeler için bu 6 nokta gözardı edilmemelidir. Burada genel çerçevesini çizdiğimiz 6 maddeyi, bir mikrodenetleyici modeli için daha ayrıntılı olarak örnekleyelim.
Projemiz, 56 Khz lik bir kare dalga sinyali veren bir çalışma olsun. Araştırmalarımız sonucunda firma olarak kendimize ATMEL firmasını uygun gördük ve işlemci içinde, modellerin karşılaştırma tablosundan yararlanarak, ATTINY11 modelini seçtik. Bakalım seçtiğimiz modelin genel özellikleri nelermiş?
Elimde olan Attiny11 model işlemcinin bir fotoğrafını çektim; genel görünüşünün 8 bacaklı bir böcek olduğunun kanısına varalım:

Buda farklı bir açı:

Evet bu iki resim ile işlemcimiz hakkında genel bir izlenime sahip olduk. Peki bu 8 bacak acaba nelerde görevli. Ayrıntılı olarak incelememiz mümkün değil ama şöyle ufak bir resim üzerinden (bu resim üretici firmanın sitesindeki Datasheet’inden alınmıştır) görebiliriz.

Yukarıdaki resim üzerinde işlemci bacaklarının en genel çerçevede neler olduğu gösterilmiştir. VCC ve GND bacakları dışında bize 6 bacak daha kalıyor. Bu bacaklarıda Giriş / Çıkış olarak kullanabildiğimiz gibi, bazı diğer özel durumlar içinde kullanabildğimizi görüyoruz. Paranzet içinde belirtilmiş olan özellikler; alternatif fonksiyonlarını ifade etmektedir. Mesela PB3 ve PB4 bacaklarını I/O kullnabileceğimiz gibi, projemizde mikrodenetleyicimiz için iç ösilatör kullanmazsak bu bacakları kristal bağlamak için kullanabiliriz demektir. Bütün bacakların daha ayrıntılı bilgileri için datasheetini okumak faydalı olacaktır.
Å?imdi de Attiny11 ve Attiny13 için Atmel firmasının sitesinde verilmiş karşılaştırma tablosundaki verilere bir göz atalım. Attiny13’ün özelliklerinide yazmamın nedeni, birbirine yakın olan aileler arasında bir kıyaslama yapabilmeniz içindir. Tablomuz şu şekilde;
DEVICE | Attiny11 | Attiny13 |
FLASH (Kbyte) | 1 | 1 |
EEPROM (Kbyte) | – | 0.064 |
SRAM (KBYTE) | – | 64B + 32 Reg. |
MAX I/O PINS | 6 | 6 |
F. MAX (Mhz) | 6 | 20 |
VCC (V) | 2.7 – 5.5 | 1.8-5.5 |
16 BIT TIMERS | – | – |
8 BIT TIMERS | 1 | 1 |
PWM (Channels) | – | 2 |
RTC | – | – |
SPI | – | – |
UART | – | – |
TWI | – | – |
ISP | – | YES |
10 BIT A/D (CHANNELS) | – | 4 |
ANALOG COMPARATOR | YES | YES |
BROWN OUT DETECTOR | – | YES |
WATCHDOG | YES | YES |
ONCHIP OSCILLATOR | YES | YES |
HARDWARE MULTIPLIER | – | – |
INTERRUPTS | 4 | 9 |
EXTERNAL INTERRUPTS | 1 | 6 |
SELF PROGRAM MEMORY | – | YES |
Evet, tablomuz bu şekilde. Belki yeni başlayan biriyseniz terimlere yabancı olabilirsiniz fakat bu işin içinde olan biri için terimler tanıdık gelecektir. Yeniyseniz zamanla bu terimler sizinde kelime hazinenize katılacaktır. Evet karşılaştırmamız sonucunda Attiny11 modelinin bizim için uygun olduğuna karar verdik. Peki hangi kılıfı kullanacağız. Yani PCB kartımız üzerinde hangi tipteki Attiny11’i kullanacağız. Bu kılıf tiplerine de işlemcinin datasheetlerinden ulaşmanız mümkün olacaktır. Ayrıntılı olarak burada incelememizin bir gereği olmayacaktır. Ama fikir açısından size elimdeki SMD tipindeki Attiny11 ve DIP model Attiny11’in bir fotoğrafını çektim. Kıyaslamanız açısından iyi olacaktır:

Bu makalemizde, bir projeye başlarken hangi adımları izleyeceğimiz ve işlemcimizi seçerken nelere dikkat etmemiz gerekeceği konusunda ufak tefek fikirler edindik. Umarım beğendiğiniz bir çalışma olmuştur. Yorumlarınız ve istekleriniz gelecek makalelerimizin şekillenmesi için önemli bir referans olacaktır. Görüşlerinizi bekliyor olacağım.
Saygılarımla.




Tam aradığım şeydi. Bir kaç makale arıyordum ve en güncel olarak bu makaleyi gördüm. Mcu’ya yeni yeni giriyorum. Heryerde atmelden bahsediyorlar. annlaşılan ben de atmele başlayacağım. teşşkür..
Aradığınız şeylere bu makale ile ulaşabilmenize sevindim. Vakit buldukça burada Atmel ve MCU ile ilgili yazılarıma devam edeceğim inşallah. Yorumlarınız, önerileriniz ve görüşleriniz daha verimli makalelerin ortaya çıkabilmesi için önemli birer unsurdur. Lütfen düşüncelerinizi bizlere paylaşınız. Saygılarımla.
çok güzel bir makale
Teşekkür ederim. Umarım faydalı olmuştur.
[...] Diyezon » Blog Arşiv » Mikrodenetleyici Seçimi ve Proje Aşamaları Bunun hayatımızdaki önemi nedir, nerelerde kullanılıyor gibi klasik cümleler ile Genelde çevremde bilgisayar alma girişiminde bulunan arkadaşlarım bana This entry was posted on Sunday, March 30th, 2008 at 3:25 am and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed. [...]
[...] Diyezon » Blog Arşiv » Mikrodenetleyici Seçimi ve Proje Aşamaları Bunun hayatımızdaki önemi nedir, nerelerde kullanılıyor gibi klasik cümleler ile Genelde çevremde bilgisayar alma girişiminde bulunan arkadaşlarım bana [...]
güzel bir makale
Teşekkürler güzel ve faydalı bir makale olmuş…
Yeni başlayanlara yararlı olabilcek 16F88 için son derece basit bir uygulama geliştirmiştim izninizle paylaşmak isterim
***************** (yazar tarafından silindi)