Yeni ATtiny Çip Serisi

2016’da Microchip/Atmel, eski ATmega ve ATtiny serilerinin yerini almak üzere tasarlanmış tamamen yeni bir çip serisi duyurdu. Yeni ATtiny yongaları, 1 serisi ATtiny417 ve ATtiny817 ile başladı ve ardından 2018’de 0 serisi adı verilen daha düşük maliyetli bir seri geldi. Seri şimdi toplam 25 parçadan oluşuyor.

attiny

Yeni ATtiny yongaları sırasıyla: SOIC ATtiny412, ATTiny1614 ve ATtiny3216;
QFN ATtiny1616 ve ATtiny3217.

Yakın zamana kadar bu yeni çiplere Arduino IDE kullanıcıları erişemiyordu, çünkü geliştiriciler için yazılmış bir Arduino çekirdeği yoktu ve onları mevcut ISP programlayıcılarını kullanarak programlayamazdık. Bu, birkaç ay önce Spence Konde, Arduino’nun yeni ATmega4809 tabanlı kartlarını desteklemek için yaptığı işten yararlanarak yeni seri için bir megaTinyCore ‘u yayınladığında bu durum değişti.

Spence Konde’nin geliştirdiği kütüphane, yeni ATtiny parçalarına bir giriş sağlar ve bunları artık Arduino IDE’den nasıl programlayabileceğinizi açıklar.

Parça Numaralandırma

Yeni parçalar, seri numarası ortada olacak şekilde biraz eksantrik bir şekilde numaralandırılmıştır:

attiny

Bu, eski ATtiny serisiyle karıştırıldıkları için, onları alfabetik bir parça listesinde aramayı oldukça sorunlu hale getirir. Bununla birlikte, bu yakınmanın yanı sıra, sistematik adlandırma kuralı, belirli bir yetenek kombinasyonuyla istediğiniz bir parçayı seçmeyi kolaylaştırır.

ATtiny 0 Serisi ve 1 Serisi Özeti

Yeni ATtiny çipleri, daha önceki Attiny’lerin felsefesinden ayrılmayı işaret ediyor; hala AVR işlemci çekirdeğini kullansalar da, çevre birimleri, Atmel’in XMEGA serisindeki çevre birimlerine göre oldukça farklıdır.

Yeni ATtiny yongaları tutarlı bir aygıt matrisi oluştursa da, bunlar, yetenekleri ve farklılıkları hakkında bir genel bakış elde etmek istiyorsanız çok fazla okuma yapmanızı sağlayan birkaç ayrı veri sayfasında açıklanmıştır. Bu nedenle, aşağıdaki tablolarda temel özellikleri ve farklılıkları özetlemeye çalıştık:

32K
(2K)
ATtiny3216
$1.03/NA
ATtiny3217
$1.01
16K
(1K/*2K)
ATtiny1604
$0.66
ATtiny1614*
$0.75
ATtiny1606
$0.90/NA
ATtiny1616*
$0.94/$0.77
ATtiny1607
$0.88
ATtiny1617*
$0.97
8K
(512)
ATtiny804
$0.64
ATtiny814
$0.66
ATtiny806
$0.83/NA
ATtiny816
$0.90/$0.71
ATtiny807
$0.83
ATtiny817
$0.92
4K
(256)
ATtiny402
$0.41
ATtiny412
$0.46
ATtiny404
$0.52
ATtiny414
$0.56
ATtiny406
$0.77/$0.62
ATtiny416
$0.85/$0.63
ATtiny417
$0.81
2K
(128)
ATtiny202
$0.41
ATtiny212
£0.43
ATtiny204
$0.52
ATtiny214
$0.54
FLASH
(RAM)
8 pin SOIC
5 I/O hattı
14 pin SOIC
11 I/O hattı
20 pin SOIC/QFN
17 I/O hattı
24 pin QFN
21 I/O hattı

Yukarıdaki tablodaki her hücre, flaş boyutuna ve pin sayısına göre sınıflandırılmış parça numarasını gösterir. Her parça numarasını uygun Microchip veri sayfasına yönlendirme yapacak şekilde ayarladık (bazı veri sayfalarının birden fazla parçayı kapsadığını unutmayın). Her parça için, uygun olduğu şekilde, hem SOIC hem de QFN paketleri için geçerli en ucuz ve güncel fiyat gösterir. (Son Güncelleme: 26/09/2021)

Tüm parçalar aynı temel çevre birimleri setine sahiptir. Ek olarak, 1 serisi parçalar birkaç ekstra çevre birimine sahiptir ve 16K ve 32K 1 serisi parçalar, yukarıdaki tabloda arka plan renkleriyle gösterildiği gibi bazı çevre birimlerinin birden çok örneğine sahiptir:

EVTCATCBTCDRTCUSARTSPII2CCCLACADCDACCRCWDTPTC
311111111111
6†1111111111111
6†1111‡1111111111
6†1211‡1111323111

Bu çevre birimleri aşağıdaki tabloda açıklanmıştır:

EV3 († 6) kanallı, 2 († 4) asenkron ve 1 († 2) senkronlu Olay Sistemi
TCA16-bit Zamanlayıcı/Sayaç A Tipi, özel periyot kaydı, 3 karşılaştırma kanalı
TCBGiriş yakalamalı 16 bit Zamanlayıcı/Sayaç B Tipi
TCDKontrol uygulamaları için optimize edilmiş 12 bit Zamanlayıcı/Sayaç D Tipi
RTCDahili RC osilatöründen (‡ veya harici kristal veya saat) çalışan 16-bit Gerçek Zamanlı Sayaç
USARTKesirli baud hızı üreteci, otomatik baud ve çerçeve başlangıcı algılamalı USART
SPIMaster/slave Seri Çevre Birimi Arayüzü
I2CÇift Adres Eşleştirme, Standart mod, Hızlı mod ve Hızlı mod artı özellikli Master/slave TWI
CCL2 programlanabilir Arama Tablosu ile Yapılandırılabilir Özel Mantık
ACAnalog Karşılaştırıcı
ADC10-bit 115 ksps Analogdan Dijitale Dönüştürücü
DAC8-bit Dijital-Analog Dönüştürücü
CRCOtomatik CRC bellek taraması
WDTAyrı çip üzerinde osilatör ile pencere modu ile Watchdog Zamanlayıcı
PTCQTouch Kitaplığı ile kullanım için Çevresel Dokunmatik Denetleyici (yalnızca en az 8K flaşlı parçalarda)

ATtiny 0 Serisi ve 1 Serisinin Avantajları

Eski ATtiny serisinin bir hayranı olarak, başlangıçta en sevdiğimiz mikrodenetleyici serisinin tamamen elden geçirilmesi konusunda biraz endişeliydik, ancak bu yeni serinin kesinlikle eski ATtiny’lere göre birçok avantajı olduğunu fark ettik.

Her şeyden önce, tüm ürün yelpazesinde temel olarak aynı çevre birimlerinin bulunması harika bir artı. Eski ATtiny serisindeki çevre birimleri parçadan parçaya değişirdi; örneğin ATtiny85’te iki adet 8 bitlik zamanlayıcı bulunurken ATtiny84’te bir adet 8 bitlik ve bir adet 16 bitlik zamanlayıcı bulunur. Artık her parçada USART, I2C, SPI ve ADC olmak üzere en az iki adet 16-bit zamanlayıcı bulunur. RTC, DAC’ler, özel mantık, olay sistemi ve çevresel dokunmatik kontrolör gibi eski ATtiny’lerde hiç bulunmayan birkaç çevre birimi de ayrıca eklenmiştir.

İkinci olarak, yeni yongalar 32K’ya kadar flaş boyutları sunuyor; eski ATtiny’ler genellikle 8K’ya kadar desteklerdi, en büyükleri ATtiny167 ve ATtiny1634’te 16K idi.

Son olarak, yeni çipler eski ATtiny çiplerinden iki kat daha ucuz. Örneğin, kabaca eşdeğer 4K flaşlı 8 pinli cihazları karşılaştırırken: eski ATtiny45, 1,06 $ iken yeni ATtiny402 sadece 0,41 dolar.

ATtiny 0 Serisi ve 1 Serisinin Dezavantajları

Bildiğimiz ve sevdiğimiz eski ATtiny çipleriyle karşılaştırıldığında, yeni 0 serisi ve 1 serisi ATtiny çiplerinde birkaç küçük eksiklik var.

Parçaların hiçbiri, devre tahtası dostu bir DIP paketinde mevcut değildir ve parçaların hiçbiri harici bir kristalden saatlendirilemez, ancak bu, dahili osilatörün %2’den daha iyi doğruluğa sahip olması gerçeğiyle kısmen telafi edilir.

Çevre birimlerini doğrudan programlamak, eski ATtiny aralığından daha karmaşık olma eğilimindedir, ancak Arduino işlevlerini kullanıyorsanız bu sizi etkilemeyecektir.

Yeni yongalardaki maksimum I/O hattı sayısı 21 iken, eski ATtiny48, ATtiny88 ve ATtiny828 27 I/O hattı vardı. Daha fazla pin için şimdi yeni ATmega 0 serisine gitmeniz gerekiyor.

ATtiny85 ve ATtiny861’deki kazançlı diferansiyel ADC gibi bazı eski ATtiny yongalarında bulunan özellikler mevcut değil. Bu, yakında çıkacak olan 2 serisi ATtiny yongaları tarafından giderilecektir. 

Arduino IDE ile Yeni ATtiny Cihazlarını Programlama

Spence Konde ve işbirlikçilerinin çalışmaları sayesinde artık 0 serisi ve 1 serisi parçalar için bir Arduino çekirdeği var ve GitHub kullanıcısı ElTangas, Arduino Uno veya eşdeğer bir geliştirme kartında çalıştırabileceğiniz bir UPDI programcısı yazdı. Böylece yeni ATtiny yongaları ile Arduino fonksiyonlarını kullanabilir ve bunları Atmel Studio’ya ihtiyaç duymadan Arduino IDE’den programlayabilirsiniz.

Yeni ATtiny cihazlarının hiçbiri DIP paketlerinde mevcut değildir, bu nedenle bir prototipleme kartında yani breadboardda bir proje oluşturmak istiyorsanız, önce bunları bir PCB’ye lehimlemeniz gerekir.

Yeni ATtiny çipleri programlama prosedürü aşağıdaki gibidir:

  • ElTangas’ın jtag2updi programını bir Arduino Uno’ya veya Make UPDI Programmer’da açıklandığı gibi diğer ATmega328P tabanlı karta kurarak bir UPDI programcısı yapın.
  • Spence Konde’nin megaTinyCore’unu, megaTinyCore Kurulumunda açıklandığı gibi Arduino IDE’ye kurun.
  • Arduino IDE’de Boards menüsünün megaTinyCore bölümünden uygun aileyi ve Chip menüsünden uygun kısmı seçin.
  • Programcı menüsünden jtag2updi (megaTinyCore) öğesini seçin.
  • Arduino Uno’yu (veya eşdeğerini) programladığınız çipe bağlayın, Port menüsünden USB portunu seçin ve Upload butonuna basın.

Örneğin, burada Arduino Blink örnek programı ile bir mini breadboard üzerinde bir ATtiny412 programlamak için bir UPDI programcısı olarak bir Arduino Nano kullandık:

attiny

Bir ATtiny412’yi UPDI programcısı olarak Arduino Nano kullanarak Blink örnek programıyla programlama.