AVR ATmega2560 Mikrodenetleyici İncelemesi

AVR mikrodenetleyici ailesi arasında en popüler modellerden biri de ATmega2560 mikrodenetleyicisidir. Bunun popüler olmasının bir sebebi de Arduino Mega kartında kullanılmasından dolayıdır. Yine de ATmega ailesi içinde en gelişmiş mikrodenetleyicilerden biri olduğu için uygulama esnekliği ve kapasiteden dolayı tercih edilmektedir. Arduino UNO kartından aşina olduğumuz ATmega328P mikrodenetleyicisi ile arasında sadece ayak sayısının fazla olması gibi bir algı mevcuttur. Biz bu yazıda bu mikrodenetleyiciyi daha ayrıntılı olarak inceleyip gerçek farklarına değineceğiz.

Atmega2560 denetleyicisini kullanan Arduino Mega kartı

 

Ben ATmega serisine baktığımda 8-bit bir mikrodenetleyici nasıl olmalı sorusuna cevabı bulurum. Çünkü ATmega mikrodenetleyicilerde cimrilik yapılmamış ve istenilen bütün temel özellikler mikrodenetleyicilere ayrım yapılmadan paylaştırılmıştır. Geriye kalan noktalar ise kaç KB Flash hafıza, RAM veya EEPROM olduğu veya hangi kılıfta kaç adet ayağın olduğudur. Örneğin ADC, Timer, SPI, I2C, USART birimleri bütün mikrodenetleyicilerde ortak olarak vardır. Bu ise çoğu mikrodenetleyiciyi birbirine benzer kılmaktadır.

Aynı durum ATtiny serisi için geçerli değildir. ATtiny serisine baktığımızda oldukça sınırlı özelliklerin olduğu mikrodenetleyicileri de görmemiz mümkündür. Fakat maliyet, güç tüketimi ve yer tasarrufu gibi maksatlarla tercih edilen bir seri olduğu için bunları gayet doğal karşılıyoruz. ATtiny serisi bizim tercih edeceğimiz performans/özellik serisi değildir.

ATmega serisinde bazı “özel” mikrodenetleyiciler de bulunmaktadır. Bunlar USB, CAN ve LCD Sürücüsü içeren mikrodenetleyiciler olarak piyasaya sürülmektedir. ATmega32u4 8-bit USB özellikli güçlü bir mikrodenetleyici olarak pazarda mevcuttur. Fakat genel özelliklere baktığımızda en yüksek sıralarda ATmega2560’ı görmekteyiz.

Şimdi ATmega serisinin en kuvvetli denetleyicilerinden biri olan ATmega2560’ın özelliklerini inceleyelim.

Gelişmiş RISC Mimarisi
– 135 Komut
– 32 × 8 Genel Maksatlı Yazmaç
– 16MHz’e kadar çalışma hızı

Burada ATmega serisindeki ortak CPU özellikleri yer almaktadır. Yalnız 16MHz’de çalışması bu mikrodenetleyicinin çok hızlı olmadığını göstermektedir. Çünkü 20MHz’e kadar çalışabilen ATmega mikrodenetleyiciler mevcuttur fakat burada bizim tek kriterimiz bu olmamalıdır.

-256 KB Flash Hafıza
-8KB RAM
-4KB EEPROM

256KB Flash hafıza her ne kadar mimarinin elverdiğinden düşük olsa da 8-bit bir mikrodenetleyiciye göre oldukça yüksek bir program hafızasıdır. AVR mimarisine göre hatırladığım kadarıyla 4MB Flash hafızaya varan bir mikrodenetleyici üretmemiz mümkündü. Fakat burada üretici bu kadar yüksek hafızalı bir mikrodenetleyiciyi üretmeyi gerek görmez. Bu hafıza binlerce satırlık kodları bile çalıştırabilecek kadar büyüktür.

4Kb EEPROM bellek uzun karakter dizilerini, gelişmiş bir sistemin yüzlerce ayar verisini bile depolayacağımız bir yerdir. Aynı zamanda 8KB RAM belleğin olması TV/VGA uygulamalarında yetersiz bellekten dolayı şikayet edenler için bir çözüm olabilir. Bu tarz görüntü uygulamalarında aşırı derecede belleğe ihtiyaç duyulmaktadır.

Bilgisayarlarda işlemcinin kaç GHz olduğu, ekran kartının kaç GB olduğu çok önemli olmadığı gibi mikrodenetleyicinin de hafızası, belleği ve saat hızı bizim işimiz için çok önemli olmayabilir. Eğer yazılım yönü ağır basan bir uygulamanız yoksa ve kontrol uygulaması yapıyorsanız sizin için çevre birimleri daha önemli olacaktır. Örneğin bir ölçüm sistemi yapan birine göre ADC’nin kaç bit olduğu kaç KB program hafızası olduğundan kat kat daha önemlidir. Şimdi bu mikrodenetleyicinin çevre birimlerine bakalım ve dikkatimizi çeken noktalardan bahsedelim.

-2 Adet 8-bit zamanlayıcı (ön derecelendirici ve karşılaştırma modu ile)

– 4 adet 16-bit zamanlayıcı 

-Gerçek zamanlı sayaç

-4 adet 8-bit PWM kanalı

-6/12 programlanabilir çözünürlükte PWM kanalı

Görüldüğü gibi mikrodenetleyicinin asıl kuvvetli olduğu nokta zamanlayıcı/sayıcı birimleridir. Örneğin ATmega328P gibi gelişmiş bir mikrodenetleyicide bile 2 adet 8-bit, sadece bir adet de 16-bit zamanlayıcı bulunmaktaydı. Burada ise 2 adet 8-bit zamanlayıcının yanında 4 adet 16-bit zamanlayıcıyı görmekteyiz. Böylece PWM, sinyal üretme, sinyal okuma ve sinyal işleme gibi çoklu ve karmaşık işlemleri yapmamız mümkündür. Analog ve kontrol sistemlerinde bu sinyalleri okuyup yorumlamak ve sinyal üretmek çok önemlidir. Aynı zamanda zamana dayalı işlemleri de ayrı ayrı zamanlayıcı birimlerinde yapmamız mümkündür. Bazen bu zamanlayıcıların az olduğundan dolayı birden fazla mikrodenetleyici kullanma durumuyla karşı karşıya kalabiliriz.

-16 kanal 10-bit ADC
-4 adet USART
-5 adet SPI
-I2C
-86 I/O ayağı

Burada dikkatimizi çeken en önemli nokta mikrodenetleyicide 4 adet USART biriminin bulunmasıdır. Bilindiği üzere USART biriminin iki ucunda bir aygıt bulunur ve iki aygıt arasında bir haberleşme sağlanır. Biz örneğin FT232R entegresi ile bilgisayarla haberleşirken bir yandan da Bluetooth modülü kullanmak istediğimizde ikisini bir yerde kullanma imkanımız olmaz. Üstelik projeye bir de GPS modülü eklememiz gerektiğinde kullanılacak hat sayısı 3’e çıkar.  Bunun için ayrı ayrı birimler ve ayrı ayrı hatlar gereklidir. SPI biriminde ana aygıta bağlanan cihazın sınırı olmasa da UART iletişim oldukça kısıtlıdır. O yüzden 4 adet USART biriminin olması büyük bir avantajdır.

AVR mikrodenetleyiciler ATmega serisi ile bitmiyor elbette. Bir sonraki yazıda ATxmega serisini inceleyeceğiz ve giriş seviyesi 32-bit mikrodenetleyicilerle ikisini kıyaslayacağız.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

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

Bir cevap yazın

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