Ú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
Pinout

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
  • 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.

Řízení bezkartáčového DC motoru

Č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 Zapojení CCL a výkonové části

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.