AVR XMEGA 8/16-Bit Mikrodenetleyici Ailesine Genel Bakış

AVR mikrodenetleyiciler dendiğinde akla ATtiny ve ATmega serisi gelmektedir. Fakat bunlardan başka bir dönem 32-bit AVR mikrodenetleyiciler üretildiği gibi mikrodenetleyici ve FPGA biriminin beraber olduğu entegreler de üretilmiştir. Fakat şu an pazarda olan en gelişmiş AVR mikrodenetleyici ailesi olarak ATxmega serisini görmekteyiz. ATxmega serisi ATmega serisine göre daha gelişmiş bir çekirdeğe sahip olmakla beraber giriş seviyesi 32-bit mikrodenetleyicilerin özelliklerine yakın özelliklere ve çevre birimlerine sahiptir. Eğer uygulamalarınız 32-bit giriş seviyesi mikrodenetleyicilere geçmeniz konusunda sizi zorluyorsa ve siz de AVR kullanmaya alıştıysanız AVR XMEGA serisi mikrodenetleyiciler sizin için iyi bir alternatif olabilir.

Mikrodenetleyicilerin 8/16-bit olarak tarif edilmesi aynı ailede hem 8 hem de 16 bit mikrodenetleyici olduğu izlenimi vermesin. Elimizde 8 ve 16-bit melezi bir işlemci çekirdeği bulunmaktadır. Temel olarak 8-bit AVR yapısına sahip olsa da 16-bit bellek erişimi gibi özelliklere sahiptir. ATmega serisinde 135 komut varken burada 142 komutu görmekteyiz.

ATxmega serisinde daha yüksek program hafızası, saat frekansı ve RAM miktarını görmemiz mümkündür. Bu daha yüksek performans demek olurken aynı zamanda çevre birimlerinin giriş seviyesi bir 32-bit mikrodenetleyiciye yaklaştığını görüyoruz. Unutmadan söylemek gerekir ki giriş seviyesi ARM mikrodenetleyiciler genellikle CortexM0/+ çekirdeğini kullanmaktadır. Bu çekirdeğin komutlarına baktığımızda 8-bit AVR mikrodenetleyicilerin komutlarından çok farklı olmadığını görmekteyiz. Dijital sinyal işleme ya da kayan nokta birimi (FPU) ve buna ait gelişmiş veri işleme komutları yer almamaktadır.  ARM Cortex çekirdeklerinin komut kümesinin karşılaştırılmasını aşağıdan görebilirsiniz.

İnceleme için seçtiğim ATxmega256A3U mikrodenetleyicisinin özelliklerine bakarak yazımıza devam edelim. Ürün portföyüne göre serinin en kuvvetli ürünlerinden biri gibi gözüküyor. O yüzden örnek olarak bunu incelememiz daha isabetli olur diye düşündüm. Bu mikrodenetleyici ATmega2560’ın XMEGA serisindeki karşılığı gibi görünüyor. Şimdi ATmega serisine göre farklı yönlerini ele alalım.

256KB Program Hafızası
8KB Boot alanı
4KB EEPROM
16KB SRAM

Burada hafıza olarak birbirine yakın görünse de XMEGA serisinin en önemli taraflarından biri artırılmış RAM hafızasıdır. Seri içerisinde 32 kilobayta kadar çıkabilen bu hafıza daha önceden gelişmiş yazılım uygulamalarında şikayetçi olduğumuz yetersiz RAM miktarı durumunu bir nebze ortadan kaldırmakta. Aynı zamanda daha gelişmiş yazılımlar için açılışta çalıştırılacak “boot alanı” için ayrı bir hafıza alanının olduğunu görmekteyiz.

ATmega mikrodenetleyicileri zayıf kılan önemli unsurların başında çevre birimlerinin azlığı ve zayıflığı gelmekteydi. 10-bit ADC birimi yetersiz geliyordu, DAC yoktu ve USB çoğu denetleyicide bulunmuyordu. XMEGA serisinde bu çevre birimlerinin sayısı ve özellikleri giriş seviyesi 32-bit mikrodenetleyicileri aratmayacak seviyeye getirilmiş görünüyor.

4 Adet DMA Denetimcisi
8 Kanal Olay Sistemi
7 adet 16-bit zamanlayıcı
Bir adet USB birimi (Full Speed)

Burada ARM çekirdekli mikrodenetleyicilerde gördüğümüz doğrudan hafıza erişimi özelliğinin AVR tabanlı mikrodenetleyicilerde de olduğunu görüyoruz. Aynı zamanda ARM çekirdekli mikrodenetleyicilerde NVIC birimi ve kümelenmiş kesme özelliği mevcuttu. Yani kesme içerisinde kesmeler yürütülebilir ve bunlar öncelik sırasına koyulabilirdi. XMEGA serisinde de bu gelişmiş kesme özelliklerine yer verilmiştir. ATmega serisi mikrodenetleyicilerde basit kesme sisteminin eksikliğini hissedebiliyorduk.

Zamanlayıcıların da giriş seviyesi 32-bit mikrodenetleyicilerden geri kalır yanının olmadığını görüyoruz. 32-bit zamanlayıcı görmesek de 7 adet 16-bit zamanlayıcının olması ve bunlara daha gelişmiş özellikler getirilmesi AVR kullanıcıları için oldukça iyidir.

USB biriminin pek çok modelde olduğunu görmekteyiz. Günümüzde uygulamalar pek çok zaman bilgisayar etkileşimli  veya zaman zaman veri aktarımı gerektiren işlere yönelik olduğu için bir şekilde USB üzerinden bağlantı kurmak gerekiyor. Eskiden MAX232 entegresi ile UART üzerinden bunu yapabilsek de güncel bir mikrodenetleyici için USB birimi olmazsa olmazlardandır.

7 adet USART Birimi Irda Destekli
2 adet I2C birimi
3 adet SPI birimi
AES ve DES şifreleme mekanizması
CRC-16 ve CRC-32 üreteci
16-bit osilatörlü RTC

İletişim konusunda giriş seviyesi bir 32-bit mikrodenetleyiciden geri kalır yanının pek olmadığını görmekteyiz. Üstelik CRC ve AES/DES gibi 32-bit denetleyicilerde gördüğümüz özellikler de bu seriye eklenmiş. Dahili RTC olması da iyi bir özellik. Bu yeni özelliklerin hepsini 32-bit mikrodenetleyicilerde görmekteyiz ve bazen bu sebepten dolayı 32-bit’e geçmeyi düşünürüz.

2 adet 16 kanal 12 bit 2msps ADC 
1 adet 2 kanal 12-bit 1msps DAC
4 adet Analog karşılaştırıcı 

Analog çevre birimlerinin ATmega serisine göre kıyaslanamayacak derecede zengin olduğunu görüyoruz. ADC’nin bit sayısının yanında kaç ADC birimi olduğu ve saniyede kaç ölçüm yaptığı da önemlidir. Burada saniyede 2 milyon ölçüm yapabilen bir ADC birimini görmekteyiz. AVR mikrodenetleyicilerde bu 15 bin kadardır. Çoğu zaman 10-bit ADC yeteri kadar hassas gelmez. Bu yüzden de 32-bit mikrodenetleyicilerde çoğunlukla 12-bit ADC bulunmaktadır. Burada da 12-bit ADC’nin olduğunu görmekteyiz. Yani 8-bit ATmega gibi mikrodenetleyicilerde olan bu eksikliğin güncellenmiş ve kapatılmış olduğunu görüyoruz. 12-bitlik DAC ve 4 adet analog karşılaştırıcı da 32-bitlik bir mikrodenetleyici kadar yeterli analog özellik vermekte.

İncelediğimiz mikrodenetleyicinin çalışma frekansının 32MHz olduğunu görmekteyiz. Yine 32-bite göre yavaş bir çalışma frekansı olsa da zengin çevre birimleri ile ATmega serisinin yetersiz kaldığı zamanlar tercih edilecek bir mikrodenetleyici ailesi olarak karşımıza çıkmakta. Zengin çevre birimlerini kullanmaya ihtiyaç duyup da 32-bit mikrodenetleyicilere geçme sürecinden endişe edenler için XMEGA serisi bir kurtarıcı olarak yetişmekte. XMEGA serisine hak ettiği değerin verilmesi taraftarıyı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...

1 Response

  1. Mesut dedi ki:

    Xmega ile ilgili temel bir tutorial hazırlayabilirmisiniz. KOmut satırları aynımı register yapıları vb. örneğin Tİmer GPIO komutları nasıl. Xmega serisi bizi stm32 arm mimarisi öğrenmekten kurtarabilir çinkü gerçekten üstün özelliklere sahip. Teşekkürler

Bir cevap yazın

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