ATtiny on Atmel Corporation poolt välja töötatud ja AVR mikrokontrollerite perekonda kuuluv mikrokontrollerite alamklass, kuhu kuuluvad kõik ATtiny kiibid. ATtiny mikrokontrollereid kasutatakse peamiselt spetsiifiliste ülesannete täitmiseks madala energia tarbega, väikestes ja odavates seadetes.

Pildil on ATmega8-16PU, ATXmega128A1 ja ATtiny45-20SU

Esimene ATtiny mikrokontroller tuli turule 1999. aastal ATtiny15L näol.

Peamised omadused[1] muuda

ATtiny mikrokontrollerid on elektroonikaprojektide jaoks odav alternatiiv Arduino mikrokontrolleritele. Need pakuvad mitmeid eeliseid Arduinode ees. Väiksem suurus, madalam hind ja paremini optimeeritud spetsifikatsioonid paljudele projektidele. Peamised erinevused ATtiny ja Arduino mikrokontrollerite vahel on I/O-ühenduste, välkmälu, ADC sisendite ja PWM-väljundite arvus. Näiteks ATtiny84-l on 12 I/O-ühendust ja 8 KB välkmälu, samas kui Arduino Uno-l on 23 I/O-ühendust ja 32 KB välkmälu. ATtiny mikrokontrollereid saab programmeerida Arduino IDE abil ja paljude Arduino teekidega, muutes need Arduino kasutajate jaoks ühilduvaks ja kättesaadavaks valikuks. ATtinyl on väiksem välkmälu, seetõttu on koodi optimeerimine oluline. ATtinysid kasutatakse rohkem valmistoodetes, minimaalse ruumi kasutusega või massiliselt toodetavate projektide jaoks.

Erinevate ATtiny kiipide võrdlustabel[2]
Mikrokontroller (perekond) Maksimum sagedus

(MHz)

Välkmälu

(KiB)

SRAM

(bitti)

EEPROM

(bitti)

USART (UART) I²C

(TWI)

SPI Timerid

16/12/8 (bitti)

ADC pesad GPIO pesad IC pakend GCC arch ID Pgm

Dbg

ATtiny11, ATtiny11L 6, 2 1 No No No No No 0 / 0 / 1 No 5 DIP-8N, SO200-8 avr1 HVSP
ATtiny12, ATtiny12L, ATtiny12V 8, 1.2 1 No 64 No No No 0 / 0 / 1 No 5 DIP-8N, SO200-8 avr1 ISP, HVSP
ATtiny15L 1.6 1 No 64 No No No 0 / 0 / 2 4 6 DIP-8N, SO200-8 avr1 ISP, HVSP
ATtiny28L, ATtiny28V 4, 1.2 2 No No No No No 0 / 0 / 1 No 11 DIP-28N, TQFP-32, QFN-32 avr1 HVPP
ATtiny22, ATtiny22L 8, 4 2 128 128 No No No 0 / 0 / 1 No 5 DIP-8N, SO200-8 avr2 ISP, HVSP
ATtiny26, ATtiny26L 16, 8 2 128 128 USI* master, slave* master, slave* 0 / 0 / 2 11 16 DIP-20N, SO300-20, QFN-32 avr2 ISP, HVPP
ATtiny13, ATtiny13V, ATtiny13A 20, 10 1 64 64 No No No 0 / 0 / 1 4 6 DIP-8N, SO150-8, SO209-8, VQFN-10, WQFN-20 avr25 ISP, dW, HVSP
ATtiny24, ATtiny24V, ATtiny24A, ATtiny44, ATtiny44V, ATtiny44A, ATtiny84, ATtiny84V, ATtiny84A 20, 10 2, 4, 8 128, 256, 512 128, 256, 512 USI* master, slave* master, slave* 1 / 0 / 1 8 12 DIP-14N, SO150-14, QFN-20, VQFN-20, UFBGA-15 avr25 ISP, dW, HVSP
ATtiny25, ATtiny25V, ATtiny45, ATtiny45V, ATtiny85, ATtiny85V 20, 10 2, 4, 8 128, 256, 512 128, 256, 512 USI* master, slave* master, slave* 0 / 0 / 2 4 6 DIP-8N, SO208-8, TSSOP-8, QFN-20 avr25 ISP, dW, HVSP
ATtiny43U 8 4 256 64 USI* master, slave* master, slave* 0 / 0 / 2 4 16 SO300-20, QFN-20 avr25 ISP, dW, HVPP
ATtiny48, ATtiny88 12 4, 8 256, 512 64 No master, slave master, slave 1 / 0 / 1 6 24 DIP-28N, QFN-28 avr25 ISP, dW, HVPP
No master, slave master, slave 1 / 0 / 1 8 28 TQFP-32, QFN-32, UFBGA-32
ATtiny87, ATtiny167 16 8, 16 512 512 USI*, UART* No master, slave 1 / 0 / 1 11 16 SO300-20, TSSOP-20, VQFN-32 avr25, avr35 ISP, dW, HVPP
ATtiny261, ATtiny261A, ATtiny461, ATtiny461A, ATtiny861, ATtiny861A 20 2, 4, 8 128, 256, 512 128, 256, 512 USI* master, slave* master, slave* 1 / 0 / 1 11 16 DIP-20N, SO300-20, TSSOP-20, QFN-32 avr25 ISP, dW, HVPP
ATtiny441, ATtiny841 16 4, 8 256, 512 256, 512 2 USART* slave master, slave 2 / 0 / 1 12 12 SO150-14, QFN-20, VQFN-20 avr25 ISP, dW, HVSP
ATtiny828 20 8 512 256 USART* slave master, slave 1 / 0 / 1 28 28 TQFP-32, QFN-32 avr25 ISP, dW, HVPP
ATtiny1634 12 16 1024 256 USI*, 2 USART* slave master* 1 / 0 / 1 12 18 SO300-20, QFN-20 avr35 ISP, dW, HVPP
ATtiny2313, ATtiny2313V, ATtiny2313A, ATtiny4313 20 2, 4 128, 256 128, 256 USI*, USART* master, slave* master, slave* 1 / 0 / 1 No 18 DIP-20N, SO300-20, VQFN-20 avr25 ISP, dW, HVPP
ATtiny4, ATtiny5, ATtiny9, ATtiny10 12 0.5 / 1 32 No No No No 1 / 0 / 0 4 4 SOT23-6, UDFN-8 avrtiny TPI
ATtiny20 12 2 128 No No slave master, slave 1 / 0 / 1 8 12 SO150-14, TSSOP-14, VQFN-20, UFBGA-15, WLCSP-12 avrtiny TPI
ATtiny40 12 4 256 No No slave master, slave 1 / 0 / 1 12 18 SO300-20, TSSOP-20, VQFN-20 avrtiny TPI
ATtiny102(F) 12 1 32 No USART* No master* 1 / 0 / 0 5 6 SO150-8, UDFN-8 avrtiny TPI
ATtiny104(F) 12 1 32 No USART* No master* 1 / 0 / 0 9 12 SO150-14 avrtiny TPI
ATtiny202, ATtiny402

(0-series)

20 2, 4 128, 256 64, 128 USART* master, slave master, slave 2 / 0 / 0

/ RTT

6 6 SO150-8 avrxmega3 UPDI
ATtiny204, ATtiny404, ATtiny804, ATtiny1604

(0-series)

20 2, 4, 8, 16 128, 256, 512, 1024 64, 128, 256 USART* master, slave master, slave 2 / 0 / 0

/ RTT

10 12 SO150-14 avrxmega3 UPDI
ATtiny406, ATtiny806, ATtiny1606

(0-series)

20 4, 8, 16 256, 512, 1024 128, 256 USART* master, slave master, slave 2 / 0 / 0

/ RTT

12 18 SO300-20, VQFN-20 avrxmega3 UPDI
ATtiny807, ATtiny1607

(0-series)

20 8, 16 512, 1024 128, 256 USART* master, slave master, slave 2 / 0 / 0

/ RTT

12 22 VQFN-24 avrxmega3 UPDI
ATtiny212, ATtiny412

(1-series)

20 2, 4 128, 256 64, 128 USART* master, slave master, slave 2 / 1 / 0

/ RTT

6 6 SO150-8 avrxmega3 UPDI
ATtiny214, ATtiny414, ATtiny814, ATtiny1614

(1-series)

20 2, 4, 8, 16 128, 256, 512, 2048 64, 128, 256 USART* master, slave master, slave 2 / 1 / 0

/ RTT

10 12 SO150-14 avrxmega3 UPDI
ATtiny416, ATtiny816, ATtiny1616, ATtiny3216

(1-series)

20 4, 8, 16, 32 256, 512, 2048 128, 256 USART* master, slave master, slave 2or3 / 1 / 0

/ RTT

12 18 SO300-20, QFN-20, VQFN-20 avrxmega3 UPDI
ATtiny417, ATtiny817, ATtiny1617, ATtiny3217

(1-series)

20 4, 8, 16, 32 256, 512, 2048 128, 256 USART* master, slave master, slave 2 / 1 / 0

/ RTT

12 22 VQFN-24, QFN-24 avrxmega3 UPDI
ATtiny424, ATtiny824, ATtiny1624, ATtiny3224

(2-series)

20 4, 8, 16, 32 512, 1024, 2048, 3072 128, 128, 256, 256 2 USART* yes yes 3 / 0 / 0

/ RTT

9 12 SO-14, TSSOP-14 avrxmega3 UPDI
ATtiny426, ATtiny826, ATtiny1626, ATtiny3226

(2-series)

20 4, 8, 16, 32 512, 1024, 2048, 3072 128, 128, 256, 256 2 USART* yes yes 3 / 0 / 0

/ RTT

15 18 SO-20, SSTOP-20, VQFN-20 avrxmega3 UPDI
ATtiny427, ATtiny827, ATtiny1627, ATtiny3227

(2-series)

20 4, 8, 16, 32 512, 1024, 2048, 3072 128, 128, 256, 256 2 USART* yes yes 3 / 0 / 0

/ RTT

15 22 VQFN-24 avrxmega3 UPDI
Mikrokontroller (perekond) Maksimum sagedus

(MHz)

Välkmälu

(KiB)

SRAM

(bitti)

EEPROM

(bitti)

USART (UART) I²C

(TWI)

SPI Timerid

16/12/8 (bitti)

ADC pesad GPIO pesad IC pakend GCC arch ID Pgm

Dbg

 
Arduino IDE programmeerimise keskkond

ATtiny85 programmeerimine Arduino IDE keskkonnas[3] muuda

ATtiny85 programmeerimiseks on vaja järgnevaid komponente:

  • Arduino Uno
  • ATtiny85 mikrokontroller
  • 10 μF kondensaator
  • 220 Ω takisti
  • LED tuli


Enne programmeerimist tuleb teha vastavad ühendused[4]:

  • Ühenda Arduino UNO +5V -> ATtiny Pin 8
  • Ühenda Arduino UNO GND -> ATtiny Pin 4
  • Ühenda Arduino UNO Pin 10 -> ATtiny Pin 1
  • Ühenda Arduino UNO Pin 11 -> ATtiny Pin 5
  • Ühenda Arduino UNO Pin 12 -> ATtiny Pin 6
  • Ühenda Arduino UNO Pin 13 -> ATtiny Pin 7


Arduino UNO ettevalmistamine:

  • Vali "Examples" lahtri alt "ArduinoISP" kood.
  • Laadi "ArduinoISP" kood Arduino UNO peale.
  • Peale koodi üles laadimist ühenda 10uF kondensaator GND ja reset jala vahele.
 
Arduino blink näidisprogrammi asukoht


ATtiny programmeerimine:

  • Enne programmeerimist tuleb installeerida ATtiny Core failid. Selleks, et need saaks installeerida, tuleb Arduino failide kausta nimega "sketchbook" luua uus kaust (kui seal seda juba ei ole) nimega "hardware". Sellesse kausta tuleb lahti pakkida internetist laaditud ATtiny core faili arhiiv.
  • Kui ATtiny core failid on lahti pakitud tuleb teha Arduino IDE keskkonnale taaskäivitus.
  • Kui tegid kõik õigesti peab ilmuma "Board" valiku ATtiny kiibi valik.
  • Nüüd tuleb valida õige kiip (Tools -> Board -> ATtiny85 (w/ Arduino as ISP)) ja saab asuda koodi peale laadima.


Esimeseks testiks sobib hästi Arduino Blink näidiskood:

  • Ühenda ATtiny pin 5 läbi 220 ohm takisti LED tule gnd jala külge
  • Ühenda LED tule pluss jalg -> +5V
  • Nüüd tuleb valida Arduino näididskoodidest "Blink Sketch"
  • Muuda koodis pin number 13 -> 0
  • Kompileeri ja laadi kood ATtiny kiibile.

Kui kõik õnnestus ja koodi üles laadimisel vigu ei tekkinud hakkab LED tuli vilkuma.

 
PlatformIO logo

Veel võimalusi Attiny programmeerimiseks muuda

  • Digispark Bootloader: Digispark Bootloader on tarkvara, mis võimaldab programmeerida ATtiny85 kiipi otse USB kaudu ilma Arduino’ta.[5]
  • Microchip Studio: Microchip Studio on integreeritud arendusplatvorm, mis on mõeldud AVR ja SAM mikrokontrolleri rakenduste arendamiseks[6]
  • AVRDUDE: (AVR Downloader Uploader) on utiliitprogramm, mis on mõeldud Microchipi AVR mikrokontrollerite mälude allalaadimiseks ja üleslaadimiseks[7]
  • PlatformIO: PlatformIO on ristplatvormiline, ristarhitektuuriline, mitme raamistiku, professionaalne tööriist integreeritud süsteemide inseneridele ja tarkvaraarendajatele, kes kirjutavad rakendusi integreeritud toodetele.[8]

Kirjandus muuda

Viited muuda

  1. "ATtiny Microcontrollers: A Low-cost Arduino Alternative". Maker pro (inglise). Vaadatud 1. mail 2024.
  2. "ATtiny microcontroller comparison chart", Wikipedia (inglise), 12. veebruar 2024, vaadatud 29. aprillil 2024
  3. "How to Program an Attiny85 From an Arduino Uno". Instructables (inglise). Vaadatud 30. aprillil 2024.
  4. "ATtiny pinnout". www.flickr.com. Vaadatud 1. mail 2024.
  5. "Programming ATtiny85 IC directly through USB using Digispark Bootloader". circuitdigest.com (inglise). Vaadatud 1. mail 2024.
  6. "Microchip Studio for AVR® and SAM Devices". Microchip (inglise). Vaadatud 1. mail 2024.
  7. avrdudes/avrdude, AVR Dudes, 30. aprill 2024, vaadatud 1. mail 2024
  8. "PlatformIO: Your Gateway to Embedded Software Development Excellence". PlatformIO (inglise). Vaadatud 1. mail 2024.