Commit 4bf2c7d7 authored by Martin Vítek's avatar Martin Vítek Committed by Isabella Skořepová

Přidán článek o nových ATtiny

parent 6e37a5e0
```
title = "Nové AVR mikroprocesory ATtiny417/814/816/817"
perex = "Krátké seznámení s novými mikroprocesory ATtiny firmy Microchip."
tags = ["AVR", "Mikroprocesory"]
image = "attiny_lead.jpg"
```
# Úvod
Na podzim firma Microchip (Microchip [koupil](http://www.microchip.com/announcements/microchip-technology-inc-acquires-atmel) Atmel [začátkem roku 2016](http://www.atmel.com/about/news/release.aspx?reference=tcm:26-82057)) oznámila čtyři nové mikroprocesory řady [ATtiny](http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx), což jsou nejmenší mikroprocesory rodiny AVR s maximálně 24 piny.
| Model |FLASH|SRAM|EEPROM|Počet pinů| Pouzdro |
|---------|-----|----|------|----------|---------|
|[ATtiny417](http://www.atmel.com/devices/ATtiny417.aspx)| 4kB |256B| 128B | 24 |QFN |
|[ATtiny814](http://www.atmel.com/devices/ATtiny814.aspx)| 8kB |512B| 128B | 14 |SOIC |
|[ATtiny816](http://www.atmel.com/devices/ATtiny816.aspx)| 8kB |512B| 128B | 20 |QFN, SOIC|
|[ATtiny817](http://www.atmel.com/devices/ATtiny817.aspx)| 8kB |512B| 128B | 24 |QFN |
![Pinout](pinout.png =650x)
# Výbava
Jedná se o 8-bitový mikroprocesor s [Harwardskou architekturou](https://cs.wikipedia.org/wiki/Harvardsk%C3%A1_architektura). Struktura registrů je velice podobná té, kterou nalezneme u mikroprocesorů ATxmega. V **C** tedy můžeme pro přístup k jednotlivým registrům používat struktury jednotlivých modulů, což je na programování velice příjemné.
- napájení 1.8 - 5V
- Pracovní frekvence až 20MHz
- 16/20MHz vnitřní RC oscilátor
- 32.768kHz ultra low power vnitřní RC oscilátor
- 32.768kHz externí krystal
- externí zdroj pracovní frekvence
- 3 režimy spánku
- watchdog
- 8ms až 8s
- přerušení
- 2 priority přerušení - normal/high
- round-robin scheduling scheme - všechna přerušení se vykonají tak, aby se nahromaděná přerušení vykonávala rovnoměrně
- Non-Maskable Interrupts - vykonají se vždy, i když jsou přerušení globálně zakázaná
- všechny I/O piny mohou být využity pro externí přerušení
- event systém
- 6 komunikačních kanálů, po kterých mohou periferie komunikovat bez využívání CPU
- časovače/čítače
- 1x 16-bit typ A
- 3x PWM
- 2x 8-bit ve split módu
- 1x 16-bit typ B
- input capture - událost, měření frekvence, délky pulzu
- single shot - generování pulzu definované délky
- 8-bit PWM
- 1x 12-bit typ D
- až 32Mhz
- generování průběhů pro řízení LED, motorů, měničů, H-můstků
- 4x výstup - WOA, WOB, WOC, WOD
- deadtime
- 1x 16-bit RTC (hodiny reálného času)
- perioda 2s až 18h s rozlišením 30.5µs nebo 1s
- RTC - Real Time Couter
- PIT - Periodic Interrupt Timer
- USART
- fractional baud rate generator - možnost nastavení baudrate nezávisle na pracovní frekvenci
- podpora RS-485
- SPI
- TWI (I<sup>2</sup>C)
- 100kHz, 400kHz, 1Mhz
- podpora SMBus
- CCL - Configurable Custom Logic
- sestavení logického obvodu uvnitř mikroprocesoru
- 2x pravdivostní tabulka
- 6x vstup, 2x výstup
- jakákoliv logická funkce (dle pravdivostní tabulky)
- Gated D Flip-Flop, JK Flip-Flop, gated D Latch, RS Latch
- AC - analogový komparátor
- 50ns reakční doba
- detekce průchodu nulou
- hystereze - 0-10-25-50mV
- ADC
- rozlišení 10-bit
- až 150k vzorků za sekundu
- až 12 vstupů
- teplotní senzor
- DAC
- rozlišení 8-bit
- až 350k vzorků za sekundu
- zátěž 5k&Omega;/30pF
- napěťová reference
- zvlášť pro AC, ADC, DAC
- 0.55-1.1-1.5-2.5-4.3V
- PTC - Peripheral Touch Controller
- detekce pro kapacitní dotykové senzory - tlačítko, posuvník, kolečko
- 1 pin pro 1 elektrodu - nejsou zapotřebí žádné externí součástky
- CRCSCAN - [CRC](https://cs.wikipedia.org/wiki/Cyklick%C3%BD_redundantn%C3%AD_sou%C4%8Det) kontrola paměti
- vytváření kontrolního součtu boot sekce, aplikační sekce nebo celé Flash
- detekce chyby v uloženém programu
- UPDI - rozhraní pro programování a debugování
# Jak se programují?
Bohužel vývojáři Microchipu/Atmelu vymysleli nové programovací rozhraní **UPDI** (*Unified Program and Debug Interface*), které využívá pouze 1 pin mikroprocesoru - reset. Pro přenos dat se používá half-duplex UART. Začátek programování se indikuje 12V pulzem, nebo nastavením pojistek.
Dejte si pozor na první série, ty neměly z výroby nastavené programovací pojistky, ale byl nutný 12V pulz!
Zatím [je vyzkoušeno](http://www.avrfreaks.net/forum/tiny817-updi-programming), že pro programování lze použít [JTAG ICE 3](http://www.atmel.com/tools/jtagice3.aspx) nebo [Atmel ICE](http://www.atmel.com/tools/atatmel-ice.aspx). Případně [lze použít](http://www.avrfreaks.net/forum/updi-programming-using-attiny817-xmini) programátor, který je integrovaný na vývojové desce [ATTINY817-XMINI](http://www.atmel.com/tools/ATTINY817-XMINI.aspx).
Podpora pro programování je v nejnovějším [Atmel Studiu](http://www.atmel.com/tools/ATMELSTUDIO.aspx). Pod Linuxem se situace složitější. Ve Fedoře je aktuálně zabalíčkováno avr-gcc 6.0.2, ve kterém není zakompilována podpora pro tyto nové mikroprocesory. Řešením je použít [Atmel Packs](http://packs.download.atmel.com/), stáhnout si nové knihovny a zkompilovat si avr-gcc, avr-binutils a avr-libc.
# Příklad využití Event systému a CCL
V application note [AVR42778](http://www.atmel.com/Images/Atmel-42778-Core-Independent-Brushless-DCFan-Control-Using-Configurable-Custom-Logic-on-ATtiny817_ApplicationNote_AVR42778.pdf) se můžete dočíst, jak lze velmi jednoduše a efektivně využít tyto mikroprocesory pro řízení otáček stejnosměrného bezkartáčového motoru. Řízení otáček nespotřebovává žádný výpočetní čas CPU.
![Řízení bezkartáčového DC motoru](dc_brushless_avr_controller.png =650x)
Časovač/čítač TCA vytváří základní PWM signál. Vstup z hallova čidla je porovnáván na komparátoru, který vytváří signál, který říká, které cívky mají být sepnuté. Při překlopení komparátoru se zárověn spustí časovač/čítač TCB, který vytváří dead time signál. Všechny tyto signály jdou do CCL (*Configurable Custom Logic*), kde se z nich vytvoří dva signály pro spínání tranzistorů.
![Průběhy řídícího systému](dc_brushless_waveforms.png =650x)
![Zapojení CCL a výkonové části](dc_brushless_schema.png =650x)
# Závěr
Tyto nové AVR mikroprocesory řady tiny nabízejí v malém pouzdře mnoho skvělých vlastností, kdy některé byly přejaté z řady xmega. Řekl bych, že se momentálně jedná o jedny z nejvybavenějších AVR mikroprocesorů.
Jako další významné plus vidím cenu, kdy se dá koupit ATtiny817 za 25Kč ([Farnell](http://cz.farnell.com/microchip/attiny817-mfr/mcu-8bit-pic24fj-20mhz-qfn-24/dp/2678821?ost=attiny817&categoryId=700000004187&searchView=table&iscrfnonsku=false)), což z ní dělá jeden z nejlevnějších AVR mikroprocesorů.
Pro bastlíře je určitě mínus pouzdro QFN, které se ručně nepájí moc dobře a programovací rozhraní UPDI, se kterým nelze použít jedoduché programátory jako třeba [USBasp](https://ok1kvk.cz/clanek/2011/usbasp-programator-avr/).
Pro otestování lze koupit vývojový kit ATTINY817-XMINI za 230Kč ([Farnell](http://cz.farnell.com/microchip/attiny817-xmini/dev-board-avr-microcontroller/dp/2674883?ost=attiny817&categoryId=700000005178&searchView=table&iscrfnonsku=false), [TME](http://www.tme.eu/cz/details/attiny817-xmini/vyvojove-kity-pro-obvody-atmel/atmel/)), který obsahuje programátor/debugger, virtuální sériový port, LED, tlačítko a dvě kapacitní dotyková tlačítka.
# Zdroje
- [ATtiny817 datasheet](http://www.atmel.com/Images/Atmel-42721-ATtiny417-814-816-817_Complete.pdf)
- [AVRFREAKS](http://www.avrfreaks.net/forum/attiny417-attiny814-attiny816-attiny817?page=all)
- [AVR42778](http://www.atmel.com/Images/Atmel-42778-Core-Independent-Brushless-DCFan-Control-Using-Configurable-Custom-Logic-on-ATtiny817_ApplicationNote_AVR42778.pdf)
# Fórum
Podělte se s námi o váš názor na nové ATtiny a případně se pochlubte vaším zapojením s některou z nových ATtiny na našem [fóru](https://forum.ok1kvk.cz).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment