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
[muuda | muuda lähteteksti]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.[1]
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 |
ATtiny85 programmeerimine Arduino IDE keskkonnas[3]
[muuda | muuda lähteteksti]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.
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.
Veel võimalusi Attiny programmeerimiseks
[muuda | muuda lähteteksti]- 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]
Välislingid
[muuda | muuda lähteteksti]Viited
[muuda | muuda lähteteksti]- ↑ "ATtiny Microcontrollers: A Low-cost Arduino Alternative". Maker pro (inglise). Vaadatud 1. mail 2024.
- ↑ "ATtiny microcontroller comparison chart", Wikipedia (inglise), 12. veebruar 2024, vaadatud 29. aprillil 2024
- ↑ "How to Program an Attiny85 From an Arduino Uno". Instructables (inglise). Vaadatud 30. aprillil 2024.
- ↑ "ATtiny pinnout". www.flickr.com. Vaadatud 1. mail 2024.
- ↑ "Programming ATtiny85 IC directly through USB using Digispark Bootloader". circuitdigest.com (inglise). Vaadatud 1. mail 2024.
- ↑ "Microchip Studio for AVR® and SAM Devices". Microchip (inglise). Vaadatud 1. mail 2024.
- ↑ avrdudes/avrdude, AVR Dudes, 30. aprill 2024, vaadatud 1. mail 2024
- ↑ "PlatformIO: Your Gateway to Embedded Software Development Excellence". PlatformIO (inglise). Vaadatud 1. mail 2024.