Úvod
Na podzim firma Microchip (Microchip koupil Atmel začátkem roku 2016) oznámila čtyři nové mikroprocesory řady ATtiny, což jsou nejmenší mikroprocesory rodiny AVR s maximálně 24 piny.
Model | FLASH | SRAM | EEPROM | Počet pinů | Pouzdro |
---|---|---|---|---|---|
ATtiny417 | 4kB | 256B | 128B | 24 | QFN |
ATtiny814 | 8kB | 512B | 128B | 14 | SOIC |
ATtiny816 | 8kB | 512B | 128B | 20 | QFN, SOIC |
ATtiny817 | 8kB | 512B | 128B | 24 | QFN |
Výbava
Jedná se o 8-bitový mikroprocesor s Harwardskou architekturou. 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
- 2.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
- dead time
- 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
- 1x 16-bit typ A
- USART
- fractional baud rate generator - možnost nastavení baudrate nezávisle na pracovní frekvenci
- podpora RS-485
- SPI
- TWI (I2C)
- 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Ω/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í?
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, že pro programování lze použít JTAG ICE 3 nebo Atmel ICE. Případně lze použít programátor, který je integrovaný na vývojové desce ATTINY817-XMINI.
Podpora pro programování je v nejnovějším Atmel Studiu. 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, 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 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), 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.
Pro otestování lze koupit vývojový kit ATTINY817-XMINI za 230Kč (Farnell, TME), 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
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.