diff --git a/articles/2016/attiny417-814-816-817.md b/articles/2016/attiny417-814-816-817.md new file mode 100644 index 0000000000000000000000000000000000000000..2abca4e8c00420486efa79bb7bc824077ebb2b2d --- /dev/null +++ b/articles/2016/attiny417-814-816-817.md @@ -0,0 +1,196 @@ +``` +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 | + + + +# 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µ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Ω/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. + + + +ÄŚ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ĹŻ. + + + + +# 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).