Skip to content
Snippets Groups Projects
Commit 279cf5ee authored by Isabella Skořepová's avatar Isabella Skořepová
Browse files

Merge branch 'attiny817' into 'master'

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

See merge request !36
parents 6e37a5e0 f8170a56
No related branches found
No related tags found
1 merge request!36Přidán článek o nových ATtiny
Pipeline #
```
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é.
<style type="text/css">
.seznam-1-uroven
{
font-weight: bold;
}
.seznam-2-uroven
{
font-weight: normal;
padding-left: 25px !important;
margin-left: 30px !important;
}
.seznam-2-uroven li
{
list-style: square !important;
padding-left: 10px !important;
}
.seznam-3-uroven
{
padding-left: 25px;
}
.seznam-3-uroven li
{
list-style: disc !important;
}
</style>
<ul class="seznam-1-uroven">
<li>napájení 1.8 - 5V
<li>pracovní frekvence až 20MHz
<ul class="seznam-2-uroven">
<li>16/20MHz vnitřní RC oscilátor
<li>32.768kHz ultra low power vnitřní RC oscilátor
<li>2.768kHz externí krystal
<li>externí zdroj pracovní frekvence
</ul>
<li>3 režimy spánku
<li>watchdog
<ul class="seznam-2-uroven">
<li>8ms až 8s
</ul>
<li>přerušení
<ul class="seznam-2-uroven">
<li>2 priority přerušení - normal/high
<li>round-robin scheduling scheme - všechna přerušení se vykonají tak, aby se nahromaděná přerušení vykonávala rovnoměrně
<li>Non-Maskable Interrupts - vykonají se vždy, i když jsou přerušení globálně zakázaná
<li>všechny I/O piny mohou být využity pro externí přerušení
</ul>
<li>event systém
<ul class="seznam-2-uroven"><li>6 komunikačních kanálů, po kterých mohou periferie komunikovat bez využívání CPU</ul>
<li>časovače/čítače
<ul class="seznam-2-uroven">
<li>1x 16-bit typ A
<ul class="seznam-3-uroven">
<li>3x PWM
<li>2x 8-bit ve split módu
</ul>
<li>1x 16-bit typ B
<ul class="seznam-3-uroven">
<li>input capture - událost, měření frekvence, délky pulzu
<li>single shot - generování pulzu definované délky
<li>8-bit PWM
</ul>
<li>1x 12-bit typ D
<ul class="seznam-3-uroven">
<li>až 32Mhz
<li>generování průběhů pro řízení LED, motorů, měničů, H-můstků
<li>4x výstup - WOA, WOB, WOC, WOD
<li>dead time
</ul>
<li>1x 16-bit RTC (hodiny reálného času)
<ul class="seznam-3-uroven">
<li>perioda 2s až 18h s rozlišením 30.5&#181;s nebo 1s
<li>RTC - Real Time Couter
<li>PIT - Periodic Interrupt Timer
</ul>
</ul>
<li>USART
<ul class="seznam-2-uroven">
<li>fractional baud rate generator - možnost nastavení baudrate nezávisle na pracovní frekvenci
<li>podpora RS-485
</ul>
<li>SPI
<li>TWI (I<sup>2</sup>C)
<ul class="seznam-2-uroven">
<li>100kHz, 400kHz, 1Mhz
<li>podpora SMBus
</ul>
<li>CCL - Configurable Custom Logic
<ul class="seznam-2-uroven">
<li>sestavení logického obvodu uvnitř mikroprocesoru
<li>2x pravdivostní tabulka
<li>6x vstup, 2x výstup
<li>jakákoliv logická funkce (dle pravdivostní tabulky)
<li>Gated D Flip-Flop, JK Flip-Flop, gated D Latch, RS Latch
</ul>
<li>AC - analogový komparátor
<ul class="seznam-2-uroven">
<li>50ns reakční doba
<li>detekce průchodu nulou
<li>hystereze - 0-10-25-50mV
</ul>
<li>ADC
<ul class="seznam-2-uroven">
<li>rozlišení 10-bit
<li>až 150k vzorků za sekundu
<li>až 12 vstupů
<li>teplotní senzor
</ul>
<li>DAC
<ul class="seznam-2-uroven">
<li>rozlišení 8-bit
<li>až 350k vzorků za sekundu
<li>zátěž 5k&Omega;/30pF
</ul>
<li>napěťová reference
<ul class="seznam-2-uroven">
<li>zvlášť pro AC, ADC, DAC
<li>0.55-1.1-1.5-2.5-4.3V
</ul>
<li>PTC - Peripheral Touch Controller
<ul class="seznam-2-uroven">
<li>detekce pro kapacitní dotykové senzory - tlačítko, posuvník, kolečko
<li>1 pin pro 1 elektrodu - nejsou zapotřebí žádné externí součástky
</ul>
<li>CRCSCAN - [CRC](https://cs.wikipedia.org/wiki/Cyklick%C3%BD_redundantn%C3%AD_sou%C4%8Det) kontrola paměti
<ul class="seznam-2-uroven">
<li>vytváření kontrolního součtu boot sekce, aplikační sekce nebo celé Flash
<li>detekce chyby v uloženém programu
</ul>
<li>UPDI - rozhraní pro programování a debugování
</ul>
# Jak se programují?
Vývojáři Microchipu/Atmelu vymysleli pro nové ATtiny také 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 je 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 dá zatím koupit), 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.
Pokud byste je chtěli vyžít tyto nové mikroprocesory ve vašem novém zapojení, tak doporučuji sekci Errata na konci datashetu - str. 597, jsou zde popsány zatím objevené chyby, které se v těchto mikroprocesorech vyskytují.
# 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).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment