EFM8

efm8_bee

Elektronik tasarım projeleriyle uğraşırken öğrendiğim çok önemli bir kural var: Bir projede kullanılacak malzemeyi seçmek işin en önemli noktasıdır.

Zaman içinde karşıma bir sürü proje görevi çıktı.  Görevleri yerine getirmek için yaptığım işlemci seçimleri zamanla kafamda bir sınıflandırma oluşmasına neden oldu. Karşıma çıkan işlerin neredeyse tamamını kapsayabilen üç farklı işlemci sınıfı olduğunu keşfettim.

Günümüzde hayret edilecek kadar çok mikroişlemci seçeneği var. Fiyatlarsa, benim bu işlere girdiğim döneme göre çok çok daha ucuz. Bir işlemci seçmek, projenin gereksinimleri yanında, işin teslim süresi, ticari kısıtlamalar ve önceki deneyimlere dayanan pek çok parametreye bağlıdır.

Bu sebeple, gömülü tasarım işlerinde, görevleri “sınıflandırmak” çok faydalı bir yaklaşım oluyor.  Benim üç sınıfımdan birincisi 8 bitlik işlemciler içeriyor. Bu klasmana giren bir dünya işle uğraştım, hâlâ da uğraşıyorum. Çoğu tasarımcı için, 8 bitlik bir işlemciye güvenip bir projeye dalmak yerine en ucuzundan bir Cortex M0 seçmek daha garantili gözükebilir. Ben işlemcinin bit genişliği ya da mimarisinden çok sunduğu çevresel birimlere, dokümantasyona ve silikon kalitesine değer verdiğim için 32 bitlik işlemcilere 8 bitliklerden özel bir anlam yüklemiyorum.

Bir süre öncesine kadar benim 8 bitlik işler envanterimde PIC18 ailesi vardı.  Sonra, bu klasmana kademeli olarak Silicon Labs firmasının EFM8 çipleri girmeye başladı. Birkaç projeden sonra artık PIC18 kullanmayı tamamen bir kenara bıraktım. Aynı işi yapan iki farklı mimariyle devam etmek bana mantıklı gelmediği için, klasman-1 için seçimimi EFM8’den yana kullandım.

EFM8’den önce C8051 ve ADuC ile 8051 deneyimine sahiptim. EFM8 enteresan çevresel birimlerle ve düşük güç tüketimiyle desteklenmiş, hızlı 8051 çekirdeği sunuyor. Keil C51 compiler deterministik ve oldukça sorunsuz şekilde işinizi görüyor. EFM8 ailesinin ürünleri performans/fiyat oranında gerçekten klasman-1 işlemcileri pek çok proje için uygulanabilir kılıyor. Bir I/O expander ya da bir DAC kullanmak yerine işlemcinin kendisinden bir tane koymak uygulanabilir bir çözüm oluyor ve bu da tasarımcı olarak elinizi rahatlatıyor.

Bir de şu var elbette: Sonuçta at sahibinde kişner. Sonuca bakınca işin hangi mimariyle, hangi işlemciyle yapıldığının bir önemi yok. Kararlı çalışıyorsa, istekleri karşılıyorsa, müdahale edilebilir ve geliştirilebilirse o iş iyi yapılmıştır, isterseniz abaküsle yapın. Bu yüzden, seçenekleri sınıflandırmak ve doğru malzemeleri seçmek kadar seçtiğiniz malzemeyi iyi tanımak, onun potansiyelini hakkıyla işe yansıtmak da önemli. Bir tasarımcı olarak şunu söyleyebilirim ki, bu, parasını harcadığınız adamların da hakkını vermiş olmak demektir. İşte bu yüzden ben, klasman-1 için seçimim olan EFM8 işlemcilerle yaptığım işlerden bazı örnek çözümleri burada kataloglayacağım. Uğraştıklarım ticari işler oldukları için burada proje bazlı paylaşımlar yapmam mümkün değil ne yazık ki. Ancak EFM8 ile belli bir şeyi nasıl yaptığımı, işlemcinin bir biriminin nasıl kullanıldığını anlatmak faydalı olacaktır. Hem benim için sık kullandığım bir aletin nasıl çalıştığını not etmek, gerektiğinde bakmak için, hem de bu işlemciyle bir şeyler yapmak isteyenlere zaman kazandırmak, basitçe kopyala yapıştır yapmak yerine nasıl çalıştığını anlamak isteyenlere nokta atışı bilgi vermek açısından işe yarar olur.

Bu işlemci ailesi basit de olsa pek çok çevresel birimi üzerinde topladığı için, işlemci yerine bir SoC olarak düşünülebilir. Aurdino gibi platformlarla bir şeyler yapmaya çalışan “maker”lar için de aslında çok daha efektif ve daha kapasiteli bir  çözüm olduğuna inanıyorum. Özellikle bu tür komunite çözümleriye kıyasladığımda EFM8 ile bir şeyler yapmanın bir tadım tatlı için bir çuval keçiboynuzu kemirmek zorunda bırakmayacak etkili bir alternatif olduğunu rahatlıkla iddia ederim. Bir amatörü zorlayacak tek şey üzerinde çalışacağı donanımı edinmek olacaktır ki o konuda benimle iletişime geçerseniz her türlü yardımcı olurum.

EFM8BB3 Dahili Osilatör Ayarı