Attiny

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. 

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

 Peamised omadused 
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õrdlustabelMikrokontroller (perekond)Maksimum sagedus
(MHz)Välkmälu
(KiB)SRAM
(bitti)EEPROM
(bitti)USART (UART)I²C
(TWI)SPITimerid
16/12/8
(bitti)ADC pesadGPIO pesadIC pakendGCC arch ID Pgm
DbgATtiny11, ATtiny11L6, 21NoNoNoNoNo0 / 0 / 1No5DIP-8N, SO200-8avr1HVSPATtiny12, ATtiny12L, ATtiny12V8, 1.21No64NoNoNo0 / 0 / 1No5DIP-8N, SO200-8avr1ISP, HVSPATtiny15L1.61No64NoNoNo0 / 0 / 246DIP-8N, SO200-8avr1ISP, HVSPATtiny28L, ATtiny28V4, 1.22NoNoNoNoNo0 / 0 / 1No11DIP-28N, TQFP-32, QFN-32avr1HVPPATtiny22, ATtiny22L8, 42128128NoNoNo0 / 0 / 1No5DIP-8N, SO200-8avr2ISP, HVSPATtiny26, ATtiny26L16, 82128128USI*master, slave*master, slave*0 / 0 / 21116DIP-20N, SO300-20, QFN-32avr2ISP, HVPPATtiny13, ATtiny13V, ATtiny13A20, 1016464NoNoNo0 / 0 / 146DIP-8N, SO150-8, SO209-8, VQFN-10, WQFN-20avr25ISP, dW, HVSPATtiny24, ATtiny24V, ATtiny24A, ATtiny44, ATtiny44V, ATtiny44A, ATtiny84, ATtiny84V, ATtiny84A20, 102, 4, 8128, 256, 512128, 256, 512USI*master, slave*master, slave*1 / 0 / 1812DIP-14N, SO150-14, QFN-20, VQFN-20, UFBGA-15avr25ISP, dW, HVSPATtiny25, ATtiny25V, ATtiny45, ATtiny45V, ATtiny85, ATtiny85V20, 102, 4, 8128, 256, 512128, 256, 512USI*master, slave*master, slave*0 / 0 / 246DIP-8N, SO208-8, TSSOP-8, QFN-20avr25ISP, dW, HVSPATtiny43U8425664USI*master, slave*master, slave*0 / 0 / 2416SO300-20, QFN-20avr25ISP, dW, HVPPATtiny48, ATtiny88124, 8256, 51264Nomaster, slavemaster, slave1 / 0 / 1624DIP-28N, QFN-28avr25ISP, dW, HVPPNomaster, slavemaster, slave1 / 0 / 1828TQFP-32, QFN-32, UFBGA-32ATtiny87, ATtiny167168, 16512512USI*, UART*Nomaster, slave1 / 0 / 11116SO300-20, TSSOP-20, VQFN-32avr25, avr35ISP, dW, HVPPATtiny261, ATtiny261A, ATtiny461, ATtiny461A, ATtiny861, ATtiny861A202, 4, 8128, 256, 512128, 256, 512USI*master, slave*master, slave*1 / 0 / 11116DIP-20N, SO300-20, TSSOP-20, QFN-32avr25ISP, dW, HVPPATtiny441, ATtiny841164, 8256, 512256, 5122 USART*slavemaster, slave2 / 0 / 11212SO150-14, QFN-20, VQFN-20avr25ISP, dW, HVSPATtiny828208512256USART*slavemaster, slave1 / 0 / 12828TQFP-32, QFN-32avr25ISP, dW, HVPPATtiny163412161024256USI*, 2 USART*slavemaster*1 / 0 / 11218SO300-20, QFN-20avr35ISP, dW, HVPPATtiny2313, ATtiny2313V, ATtiny2313A, ATtiny4313202, 4128, 256128, 256USI*, USART*master, slave*master, slave*1 / 0 / 1No18DIP-20N, SO300-20, VQFN-20avr25ISP, dW, HVPPATtiny4, ATtiny5, ATtiny9, ATtiny10120.5 / 132NoNoNoNo1 / 0 / 04 4SOT23-6, UDFN-8avrtinyTPIATtiny20122128NoNoslavemaster, slave1 / 0 / 1812SO150-14, TSSOP-14, VQFN-20, UFBGA-15, WLCSP-12avrtinyTPIATtiny40124256NoNoslavemaster, slave1 / 0 / 11218SO300-20, TSSOP-20, VQFN-20avrtinyTPIATtiny102(F)12132NoUSART*Nomaster*1 / 0 / 056SO150-8, UDFN-8avrtinyTPIATtiny104(F)12132NoUSART*Nomaster*1 / 0 / 0912SO150-14avrtinyTPIATtiny202, ATtiny402
(0-series)202, 4128, 25664, 128USART*master, slavemaster, slave2 / 0 / 0
/ RTT66SO150-8avrxmega3UPDIATtiny204, ATtiny404, ATtiny804, ATtiny1604
(0-series)202, 4, 8, 16128, 256, 512, 102464, 128, 256USART*master, slavemaster, slave2 / 0 / 0
/ RTT1012SO150-14avrxmega3UPDIATtiny406, ATtiny806, ATtiny1606
(0-series)204, 8, 16256, 512, 1024128, 256USART*master, slavemaster, slave2 / 0 / 0
/ RTT1218SO300-20, VQFN-20avrxmega3UPDIATtiny807, ATtiny1607
(0-series)208, 16512, 1024128, 256USART*master, slavemaster, slave2 / 0 / 0
/ RTT1222VQFN-24avrxmega3UPDIATtiny212, ATtiny412
(1-series)202, 4128, 25664, 128USART*master, slavemaster, slave2 / 1 / 0
/ RTT66SO150-8avrxmega3UPDIATtiny214, ATtiny414, ATtiny814, ATtiny1614
(1-series)202, 4, 8, 16128, 256, 512, 204864, 128, 256USART*master, slavemaster, slave2 / 1 / 0
/ RTT1012SO150-14avrxmega3UPDIATtiny416, ATtiny816, ATtiny1616, ATtiny3216
(1-series)204, 8, 16, 32256, 512, 2048128, 256USART*master, slavemaster, slave2or3 / 1 / 0
/ RTT1218SO300-20, QFN-20, VQFN-20avrxmega3UPDIATtiny417, ATtiny817, ATtiny1617, ATtiny3217
(1-series)204, 8, 16, 32256, 512, 2048128, 256USART*master, slavemaster, slave2 / 1 / 0
/ RTT1222VQFN-24, QFN-24avrxmega3UPDIATtiny424, ATtiny824, ATtiny1624, ATtiny3224
(2-series)204, 8, 16, 32512, 1024, 2048, 3072128, 128, 256, 2562 USART*yesyes3 / 0 / 0
/ RTT912SO-14, TSSOP-14avrxmega3UPDIATtiny426, ATtiny826, ATtiny1626, ATtiny3226
(2-series)204, 8, 16, 32512, 1024, 2048, 3072128, 128, 256, 2562 USART*yesyes3 / 0 / 0
/ RTT1518SO-20, SSTOP-20, VQFN-20avrxmega3UPDIATtiny427, ATtiny827, ATtiny1627, ATtiny3227
(2-series)204, 8, 16, 32512, 1024, 2048, 3072128, 128, 256, 2562 USART*yesyes3 / 0 / 0
/ RTT1522VQFN-24avrxmega3UPDIMikrokontroller (perekond)Maksimum sagedus
(MHz)Välkmälu
(KiB)SRAM
(bitti)EEPROM
(bitti)USART (UART)I²C
(TWI)SPITimerid
16/12/8
(bitti)ADC pesadGPIO pesadIC pakendGCC arch IDPgm
Dbg
pisi|Arduino IDE programmeerimise keskkond

 ATtiny85 programmeerimine Arduino IDE keskkonnas 
ATtiny85 programmeerimiseks on vaja järgnevaid komponente:

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

Enne programmeerimist tuleb teha vastavad ühendused:

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

 pisi|PlatformIO logo|alt=bruuuuuhhhhhh

 Veel võimalusi Attiny programmeerimiseks 

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

 Viited 

 Välislingid 
 Pro Arduino
 Arduino Wearable Projects

Kategooria:Mikrokontrollerid