Atmel AVR Mimarisi -1- Mikrodenetleyicilere ve AVR Mimarisine Giriş

C ile AVR programlama derslerimizi bitirdiğimize göre artık daha derin meselelere inebiliriz. Bu derin konulardan biri ise mikrodenetleyici mimarisidir. Diğer konumuz ise AVR Assembly dili olacaktır. AVR Assembly’i kullanmak üzere değil mantığını kavramak üzere öğreneceğiz. Bu seviyede uygulamaya yönelik değil teoriye yönelik bilgiler ağırlıkta olacaktır. Bu iki konuyu da bitirdiğimizde artık AVR mikrodenetleyiciler ile pek işimiz kalmayacak. İşin mantığını kavramak için dijital elektroniğe başlamamız gerekecek. Bu bayağı sonra yazılacak bir konu olduğundan ve halihazırda gömülü sistemler için C programlama derslerini yazdığımdan bu dersleri ileri tarihlere almak zorunda kalıyorum.

Mikrodenetleyiciler bir mikroişlemci sistemi olup bir mikroişlemci çekirdeği üzerine eklenen birimlerden oluşan entegre sistemlerdir. Mikroişlemci sistemini kurmak için saat birimi, RAM, ROM, Giriş ve Çıkış gibi üniteleri ayrı ayrı bizim belirlememiz ve tasarladığımız devre kartını ona göre yapmamız gerekir. Mikrodenetleyiciler ise adeta koca bir karttan oluşan sistemi tek bir çip içerisine toplamıştır. Bütün bu mikroişlemcinin ihtiyaç duyduğu birimler ve çevre birimleri tek bir çip içerisine toplandığı için bazen çipe sadece besleme gerilimi vermek bile çalışması için yeterli olmaktadır. Bütün sistem tek bir çip içerisinde toplandığı için maliyeti düşük olmakta ve sistemin uygulanabilirliği artmaktadır.

Mikrodenetleyiciler her zaman avantajlı birer aygıt olmayabilir. Bu tüm birimleri kendi içlerinde barındırmaları aynı zamanda bir zayıflıktır. Örneğin ATmega328P mikrodenetleyicisinin sadece 2KB RAM hafızası vardır. Bu hafıza kontrol ve otomasyon uygulamaları için yeterli olsa da görüntü işleme uygulamalarında oldukça yetersiz kalmaktadır. Görüntü çıkışı veren en ilkel aygıtlarda bile en azından 64KB RAM bulunmaktadır. Commodore 64 buna bir örnektir. Laf eski konsol ve bilgisayarlardan açılmışken şu sorunun cevabını da verelim. 🙂

Atmel AVR Mikrodenetleyiciler ile Oyun Konsolu veya Bilgisayar Yapılabilir mi ?

Bu sorunun cevabı hem evet hem hayır olacaktır. AVR mikrodenetleyiciler işlemci komut kümesi bakımından güçlü ve stabil aygıtlar olsa da çevre birimleri bakımından bir bilgisayar veya oyun konsolu yapılacak kadar güçlü değildir. En büyük eksiklik ise RAM bellekten kaynaklanır. 2 veya 4KB bir ram bellek asla yeterli görüntü çıkışını ve bilgi işlemeyi beraber yürütememektedir. En ilkel bilgisayarlarda bile en azından 64KB ram olduğunu ve bunun bile uygulamalar için oldukça yetersiz kaldığı ortadadır. Oyun konsolu yapmak için öncelikle yeterli çözünürlüğün ve renk paletinin sağlanması gereklidir. Bilgisayar yapılması isteniyorsa ise ihtiyaçlar daha da artacaktır ve bunu sağlamak için günümüz teknolojisinde ne azından ARM tabanlı linux sistemler kullanılmalıdır.

Bir yandan da baktığımızda istediğimiz bir BASIC komutlarını yürüten terminal bilgisayar veya Atari 2600 benzeri düşük çözünürlük ve renk paletine sahip kompozit çıkış veren bir oyun konsolu ise Atmel AVR mikrodenetleyiciler bunun için uygun gibi görünüyor. Atmel AVR mikrodenetleyicileri bir televizyona veya seri iletişim terminaline bağlayıp bir bilgisayar gibi kullanmak ve basit de olsa üzerine işletim sistemi yazmak mümkündür. Hatta AVR mikrodenetleyiciler için gerçek zamanlı işletim sistemleri (RTOS) da vardır. AVR tabanlı bir oyun konsolu olan Uzebox’u aşağıdaki bağlantıdan inceleyebilirsiniz. Bu konsolu daha sonra ayrıntılı olarak incelemek üzere yapılacaklar listemize ekliyoruz.

http://uzebox.org/wiki/Main_Page

Şimdi konumuza dönersek AVR mimarisini öğrenmenin en iyi yolunu yine mikrodenetleyicinin teknik veri kitapçığında görürüz. Çünkü bizim öğrenebileceğimiz bütün bilgiler orada yazılı halde bulunmaktadır. Teknik veri sayfasında ise mikrodenetleyici ile mikroişlemcinin blok diyagramı ayrı olarak verilmiştir. İki sistem de kendi içinde bir dünya olduğundan ikisini ayrı ayrı ele almak gerekir.  Mikroişlemci bu sistemin çekirdeği olup mikrodenetleyici bunun üzerine bina edilmiştir. Bundan sonraki yazımızda mikrodenetleyicinin blok diyagramını ayrıntılı olarak açıklayacağız mikrodenetleyicileri örnek verdiğimiz AVR mikrodenetleyiciler üzerinden öğrenmiş olacaksınız. Bir sonraki yazıda görüşmek üzere.

Kaynaklar:
Kapak Resmi, https://i1.wp.com/makezine.com/wp-content/uploads/2016/09/HeroImage.jpg?resize=1200%2C670&strip=all&ssl=1

ATmega328P – Microchip Technology , http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf, Erişim Tarihi: 25.08.2018

UYARI!!

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

1 Response

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.