Arduino Due, ATmel SAM3X8E ARM Cortex-M3 tabanlı bir karttır. Bu kart Arduino’nun 32-bit ARM tabanlı mikroişlemciye sahip ilk kartıdır. 54 adet giriş/çıkış pinine sahip bu modül, 12 adet PWM çıkışı verebilmektedir. Üzerinde 12 adet analog giriş, 4 adet UART kanalı, 84MHz kristal, 1 adet USB-OTG bağlantısı, 2 adet DAC (Digital-to-analog converter), 2 adet I2C, 1 adet SPI header, 1 adet JTAG header, 1 adet güç soketi, 1 adet RESET ve 1 adet ERASE butonu bulunmaktadır. Kolay bir şekilde USB üzerinden bilgisayara bağlanabilir, adaptör veya pil ile çalıştırabilirsiniz.
Uyarı : Arduino Due, diğer kartların aksine 3.3V ile çalışmaktadır. Bunun üzerinde bir gerilim uygulamak(5V gibi) giriş/çıkış pinlerine zarar verebilir. Ayrıca 3.3V seviyesinde çalışabilen herhangi bir shield ile kullanabilirsiniz.
Özellikler:
Mikrodenetleyici : AT91SAM3X8E
Çalışma Gerilimi : 3.3V
Giriş Gerilimi : 7-12V (Önerilen)
Giriş Gerilimi : 6-16V (Limit)
Dijital I/O Pinleri : 54 adet (12 adet PWM çıkışı)
Analog Giriş Pinleri : 12 adet
Analog Çıkış Pinleri : 2 adet (DAC)
Tüm I/O'ların Toplam Çıkış Akımı : 130 mA
3.3V Çıkış için Akım : 800 mA
5V Çıkış için Akım : 800 mA
Flash : 512 KB (SAM3X8E)
SRAM : 96 KB (SAM3X8E)
Saat Hızı : 84 MHz
Uzunluk : 101.52mm
Genişlik : 53.3mm
Ağırlık : 36g
Kartımızın tüm özelliklerini ayrıntılı bir şekilde ele alarak devam edelim:
Güç:
Arduino Due, USB ile bilgisayara bağlayarak veya harici bir güç kaynağı ile çalıştırılabilir. Harici güç kaynağımız adaptör veya pil olabilir. Bu özellik sayesinde kartımızı sürekli bilgisayara bağlı tutmaktan kurtarabiliriz. Harici güç kaynağı olarak 6-20V arası kullanılabilir. Ancak bu değerler limit değerleridir. Kart için önerilen harici besleme 7-12V arasıdır. Çünkü kart üzerinde bulunan regülatör 7V altındaki değerlerde stabil çalışmayabilir. 12V üstündeki değerlerde de aşırı ısınabilir.
Due kartının üzerindeki mikrodenetleyicinin çalışma gerilimi 5V'dur. Vin pini veya güç soketi üzerinden verilen 7-12V arası gerilim kart üzerinde bulunan voltaj regülatörü ile 5V'a düşürülerek karta dağılır.
Güç pinleri aşağıdaki gibidir:
VIN : Harici güç kaynağı kullanıyorsanız 7-12V arası gerilim giriş pinidir.
5V : Regülatörden çıkan 5V, bu pin aracılığı ile çıkış olarak verilir. Eğer kart sadece USB (5V) üzerinden çalışıyor ise USB üzerinden gelen 5V doğrudan bu pin üzerinden çıkış olarak verilir. Eğer karta güç VIN (7-12V) veya güç soketi (7-12V) üzerinden veriliyorsa regülatörden çıkan 5V doğrudan bu pin üzerinden çıkış olarak verilir.
3V3 : Regülatörden çıkan 3.3V, bu pin aracılığı ile çıkış olarak verilir. Maks. 800mA çıkış verebilir. Bu regülatör aynı zamanda SAM3X8E'ye de enerji verir.
GND : Toprak pinleridir.
Hafıza:
SAM3X8E 512KB'lık flash belleğe sahiptir. 96KB SRAM bulunmaktadır.
SAM3X8E'nin flash belleği kart üzerinde bulunan erase butonu ile silinebilir. Bu sadece yüklediğiniz arduino kodunu silecektir, bootloader yazılımda herhangi bir değişiklik olmayacaktır. Kartta güç varken erase tuşuna birkaç saniye basılı tutmanız yeterlidir.
Giriş & Çıkış:
Due üzerinde 54 adet dijital giriş ve çıkış pini mevcuttur. Bu pinlerin tamamını giriş veya çıkış olarak kullanabilirsiniz. Buna ek olarak üzerinde bulunan 12 adet analog çıkış pinini, ihtiyaca bağlı olarak dijital giriş-çıkış pini olarak da kullanabilirsiniz. Bu pinlerin tamamı 3.3V lojik seviyededir. Kullanmayı planladığınız pinlere bağlı olarak çıkış akımı pin başına 3-15mA arasında olup, giriş olarak 6-9mA aralığındadır.
Due üzerindeki pinlerin bazılarının özel fonksiyonları bulunur. Peki bu fonksiyonlar nelerdir, ne için kullanılırlar, hep birlikte bir göz atalım:
Seri Haberleşme:
Serial: 0 (RX) ve 1 (TX)
Serial 1: 19 (RX) ve 18 (TX)
Serial 2: 17 (RX) ve 16 (TX)
Serial 3: 15 (RX) ve 14 (TX)
TTL Seri veri almak (RX) veya vermek (TX) için kullanılır. Pin 0 ve 1 doğrudan kart üzerinde bulunan Atmega16u2 USB-Serial dönüştürücüsüne bağlıdır. Yani bilgisayardan karta kod yüklerken veya Bilgisayar-Due arasında karşılıklı haberleşme yapılırkende bu pinler kullanılır. Bu konuda dikkat etmeniz gereken husus, karta kod yükleme esnasında bu pinlerin boşta kalması olmalıdır. Eğer bu pinler doluyken yükleme yapmaya çalışırsanız, Arduino IDE üzerinden hata alacaksınız. Pinleri boşaltıp, kodu atıp, sonrasında tekrar bağlayabilirsiniz.
PWM (2)-(13): Toplamda 12 adet, 8-bit çözünürlükte PWM çıkış pinleridir. analogWrite() komutu ile çıkış alabilir, analogWriteResolution() fonksiyonu ile çözünürlüğünü ayarlayabilirsiniz.
SPI: Bu pinleri SPI haberleşmesi için kullanabilirsiniz. Bazı kartlarda ICSP olarak da adlandırılmaktadır. SPI portu 3x2 Header ile dışarı alınmıştır. Fiziksel olarak Uno, Leonardo ve Mega2560 ile uyumludur. Ancak buradaki SPI hattı, diğerlerinin aksine mikrodenetleyiciyi programlamak için kullanılmamaktadır. Farklı SPI cihazlarla haberleşmek üzere kulllanılmaktadır. Bunun yanı sıra Due üzerindeki SPI hattının birkaç özelliği daha bulunmaktadır.
CAN (RX) ve (TX): Bu pinler CAN haberleşme altyapısına sahip pinlerdir. Ancak henüz Arduino API tarafından desteklenmemektedir.
LED (13): Due üzerinde 13 numaralı pine bağlı bir led bulunmaktadır. Pin durumu HIGH olduğunda yanacak, LOW olduğunda sönecektir.
I2C:
TWI 1: 20 (SDA) ve 21 (SCL)
TWI 2: SDA1 ve SCL1
Due üzerinde 2 adet I2C(TWI) hattı bulunmaktadır. Wire kütüphanesi ile kontrol edilen bu pinler, I2C haberleşmesi için kullanılır. I2C1 portu Wire sınıfı ile, I2C2 portu da Wire1 sınıfı ile kullanılır. SDA ve SCL pinlerinde dahili pull-up direnci bulunmaktadır. Ancak SDA1 ve SCL1 pinlerine pull-up harici olarak eklenmelidir.
AREF: Analog giriş için referans pinidir. analogReference() fonksiyonu ile kullanılır.
Analog Girişler (0)-(12): Due 12 adet analog girişe sahiptir. Her bir giriş 12-bit çözünürlük ile desteklenmektedir. Bu pinler diğer Arduino kartlar ile uyumlu olması açısından fabrika çıkışı 10-bit çözünürlüktedir. Dilerseniz analogReadResolution() fonksiyonu ile 12-bit çözünürlükte ayarlayabilirsiniz. Analog pinlerinin voltaj seviyesi 3.3V dur. Bunun üzerinde bir gerilim uygulamak SAM3X’e hasar verebilir. AREF pini ve analogReference() foksiyonu kullanılarak limitler ayarlanabilir. Ancak AREF özelliğinin kullanılabilmesi için önce kart üzerindeki BR1 direncini sökmelisiniz.
DAC1 ve DAC2: Bu pinler 12-bit çözünürlükte gerçek analog çıkış vermektedir. analogWrite() fonksiyonu ile kullanılır. Bu çıkışlardan Audio Kütüphanesi sayesinde ses çıkışı alabilirsiniz.
RESET: Mikrodenetleyiciyi resetlemek istiyorsanız, bu pini LOW yapmanız yeterli olacaktır. Veya Due üzerinde bulunan RESET butonunu da kullanabilirsiniz.
Haberleşme:
Arduino Due'nin bilgisayar, başka bir Arduino, başka bir mikrodenetleyici ile veya telefon, tablet gibi cihazlar ile haberleşmesi için bir kaç farklı seçenek vardır. SAM3X8E, 4 tane donanımsal seri port TTL (3.3V) seri haberleşme imkanı sunar.
Programming Port kart üzerinde bulunan Atmega16u2 usb-seri dönüştürücüsüne bağlıdır ve bilgisayarda sanal bir COM Port açarak SAM3X8E ile bilgisayar arasında bir köprü kurar. Due kartı arduino yazılımı ile programlanırken Programming Port kullanılması önerilir. Pin 0 ve 1 doğrudan kart üzerinde bulunan Atmega16u2 USB-Serial dönüştürücüsüne bağlıdır.
Arduino bilgisayar programı içerisinde barındırdığı seri monitör ile arduino ile bilgisayar arasında text temelli bilgilerin gönderilip alınmasını sağlar. USB-Serial dönüştürücü ile bilgisayar arasında USB üzerinden haberleşme olduğu zaman kart üzerinde bulunan RX ve TX ledleri yanacaktır.
Native Port ise doğrudan SAM3X'e bağlıdır. Bu port serial (CDC) haberleşmeye izin verir. Arduino serial monitör veya diğer uygulamalarla erişim sağlayabilir. Due kartının mouse klavye gibi kullanılmasına izin verir. Bu özellik için Mouse ve Klavye Kütüphanesini inceleyebilirsiniz.
Native Port aynı zamanda mouse, klavye, akıllı telefon ve tablet gibi cihazların bağlanabilmesi için USB Host özelliği de sunmaktadır.
Due üzerinde 4 adet seri port olduğundan bahsettik. Ama uygulamanıza bağlı olarak daha fazlasına ihtiyaç duyarsanız SoftwareSerial Kütüphanesi ile bu sayıyı yazılımsal olarak arttırabilirsiniz.
SAM3X8E’nin I2C ve SPI haberleşme altyapısı sunduğundan da daha önce bahsetmiştik. I2C için Wire Kütüphanesini, SPI için SPI Kütüphanesini kullanabilirsiniz.
Programlama:
Due, Arduino IDE ile birlikte kullanılmaktadır.
SAM3X’e kod yükleme, diğer Arduino kartlarına göre biraz farklıdır. Sebebi ise kartın programlanmadan önce flash belleğin silinmek zorunda olması.
arduino-due-r3
Due üzerinde bulunan her iki portu da programlamak için kullanabilirsiniz. Ancak sizlere tavsiyemiz Proramming Port’un kullanılması yönünde. Çünkü bu porttan programlaya başladığınızda, Flash bellek otomatik olarak silinir ve sonrasında yükleme yapılır.
Programming Port: Bu portu kullanmak için Arduino IDE üzerinden "Arduino Due(Programming Port)" seçilmelidir. Programming Port üzerinden program yüklenirken Atmega16u2 ve RX0/TX0 pinleri kullanılır. 16u2'nin iki tane pini SAM3X'in RESET ve ERASE pinlerine bağlıdır.
Native Port: Bu portu kullanmak için Arduino IDE üzerinden "Arduino Due(Native Port)" seçilmelidir. Native Port doğrudan SAM3X üzerindeki USB portuna bağlıdır. Bu port üzerinden Due programlanırken yazılımsal erase işlemi gerçekleşir.
Biraz da kaynak yazılım hakkında bilgi verelim. Atmega16u2 içerisindeki kaynak yazılım bilindiği üzere açık kaynaklıdır. Bu yazılıma DFU Bootloader adı verilir. Atmel's FLIP software (Windows) veya DFU programmer (Mac OS X and Linux) kullanılarak bu yazılım yeniden yüklenebilir veya 16u2 ISP programlayıcı ile programlanabilir.
USB Aşırı Akım Koruması:
Arduino Due üzerinde bulunan resetlenebilir sigorta bilgisayarın usb portunu kısa devrelerden veya aşırı akım tüketimi durumlarından korumaktadır. Kart bilgisayar USB portu üzerinden 500mA'den fazla akım çekerse, kart otomatik olarak USB'den aldığı gücü koruma amacıyla kesmektedir. Fazla akım durumu veya kısa devre ortadan kaldırıldığında sigorta normal konuma döner ve tekrar bağlantı kurulur.
Paket İçeriği
1 x Arduino Due R3