ATtiny85

Page

Stránky / Mikrokontroléry /

Toto je stránka, která slouží jako rozcestník na experimenty s menší verzí Arduina. ATtiny85 má 8 kB flash paměti, 512 SRAM a 512 EEPROM. Může se to zdát málo, ale i do takové malé paměti dokážete dostat dost velký program. ATtiny85 je můj oblíbený mikrokontrolér a pouze ve výjimečných situacích jej nahrazují s mikrokontrolérem ATtiny84, který má k dispozici více pinů a trošku lepší periferie.

Proč používat ATtiny85 namísto plnohodnotného Arduina?

Hlavním důvodem je cena. Tento mikrokontrolér koupíte za Euro a když se něco stane, nic se neděje. Kromě toho je elementární poskládat pomocí něj jednoduchý obvod, který bude blbuvzdorný, lze jej připojit i na vyšší napětí (pomocí regulátoru napětí) a můžete s ním pomocí digitálních pinů snadno ovládat jiné obvody.

Programování

Jak programovat ATtiny85 pomocí Arduina naleznete v samostatném článku Arduino jako ISP programátor. Existuje i druhá možnost, že si poskládáte vývojovou desku a na ní ho naprogramujete pomocí USBasp.

Aby bylo možné mikrokontrolér programovat, je třeba do Arduino IDE doinstalovat podporu. Postup platí pro IDE 1.6.4 a vyšší:

  • Použijte funkci menu File/Preferences.
  • V zobrazeném dialogu do pole Additional Board Manager doplňte https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json a stiskněte OK. Toto jádro je sice uváděny jako první, ale nedoporučuji ho používat. Bylo první z historických důvodů, ale jeho autor nemá na jeho vývoj tolik času, jako je jádro, zmíněné v odstavci o alternativních jádrech.
  • Použijte funkci Tools/Board/Boards Manager.
  • V seznamu desek najděte attiny a nainstalujte ji.

Alternativní jádra

Předchozí jádro je dobré na základní programování ATtiny85. Pokud ale chcete mikrokontrolér využít více, je vhodné se poohlédnout po více propracovaných jádrech. Ty podporují změnu mnoha parametrů. Například změny nastavení fuses, různých zdrojů hodin a optimalizace kódu při překladu.

Digitální výstup

V základním nastavení je k dispozici 5 digitálních pinů. Je možné mikrokontrolér přepnout i do stavu, kdy použije namísto resetu i poslední pin, to je ale jednorázová záležitost a více ho nelze programovat pomocí Arduina. Proto tuto možnost ani nebudeme brát v úvahu. Jednotlivé piny se ovládají následovně:

  • PB0(5) - digitalWrite(0, HIGH);
  • PB1(6) - digitalWrite(1, HIGH);
  • PB2(7) - digitalWrite(2, HIGH);
  • PB3(2) - digitalWrite(3, HIGH);
  • PB4(3) - digitalWrite(4, HIGH);

PWM výstup

K dispozici jsou tři piny:

  • PB0(5) - analogWrite(0, 128);
  • PB1(6) - analogWrite(1, 128);
  • PB4(3) - analogWrite(4, 128);

Analogový vstup

K dispozici jsou tři vstupy:

  • PB2(7) - ADC1 - analogRead(1);
  • PB4(3) - ADC2 - analogRead(2);
  • PB3(2) - ADC3 - analogRead(3);

Existuje ještě čtvrtý pin, ale ten je na stejném pinu jako RESET a jeho využití není jednoduché.

ADC převody ale poskytují více možností a ty zkoumám v samostatném článku o ADC.

Interní EEPROM

Práce s EEPROM funguje stejně jako v běžném Arduinu. Pokud si chcete programování usnadnit, inspirujte se v článku o praktickém používání EEPROM.

Nastavování rychlosti mikrokontroléru

Pokud k tomu nejsou nějaké závažné důvody, třeba nechat mikrokontrolér na továrním nastavení 1 MHz. Pokud je důležitá rychlost, lze jej přepnout na 8 MHz a v případě extra požadavky na rychlost se dá jít až do 20 MHz, ale už jen za cenu pinů 3 a 4. Nastavování rychlosti je popsáno v článku Arduino jako ISP programátor.

Informace o obsazení pinů 3 a 4 není zcela správná. Existuje možnost přepnout ATtiny85 i do režimu, že i při vyšší rychlosti používá vnitřní oscilátor. Jmenuje se PLL a pomocí něho se dají dosahovat i vyšší rychlosti. Nejjednodušeji to uděláte tak, že použijete jádro ATTinyCore a nastavíte si to v menu. Nezapomeňte pak použít funkci menu Vypálit zavaděč (Burn bootloader).

Programovat ho jako Arduino?

Opět platí to co v předešlém odstavci. Pokud si chcete přidávat práci, můžete jej programovat nízkoúrovňové prostředky. V ATtiny85 ale máme k dispozici 8 kB paměti a to na programy běžné velikosti postačuje. Proto je mnohem pohodlnější psát digitalWrite, než se trápit s bitovými operacemi na portu.

Jedině pokud jde o rychlost nebo významnější úsporu paměti, tehdy třeba přistupovat k optimalizačním technikám. Platí staré programátorské pravidlo, že zákazníkovi je úplně jedno, kolik let života jste věnovali programu na blikání LEDkou, když to bude fungovat, do zdrojového kódu vám nikdy nepoleze.

Projekty

Seznam projektů s ATtiny85. Pokud se chcete věnovat programování mikrokontroléru víc, je vhodné si postavit vývojovou desku. V projektech najdete desky v DIP provedení a desky se SMD součástkami. Stmívač LED pásku byl můj pilotní projekt, na kterém jsem se učil. Ale překvapivě se vydařil a tento model stmívače používá přibližně 10 mých známých na mnou vyrobených deskách a neznámý počet tvůrců desek, kteří se tímto projektem inspirovali.

Blog

Seznam článků o ATtiny85. O tomto mikrokontroléru jsem napsal mnoho článků, proto jsem se je snažil rozdělit na logické skupiny.

Pro začátečníky

Na těchto stránkách jsem o Arduinu nikdy nepsal přímo pro začátečníky. Důvodem bylo, že o Arduinu naleznete na Internetu dostatek příkladů, které vás naučí elementární základy jeho programování. S mikrokontrolérem ATtiny85 je to jiné. Příkladů je málo a těžko najdete takové příklady, které by byly dostatečně jednoduché. To se snažím v této sérii udělat a popisované témata a příklady dělám tak, aby po přečtení série těchto článků mohl i méně zkušený uživatel programovat tyto malé mikrokontroléry.

  • Blik - Základní blikání LED diodou.
  • Pojistky - Nastavení pojistek, které ovlivňují rychlost a chování mikrokontroléru.
  • Tlačítka - Ovládání tlačítek.
  • PWM - Ovládání jasu LED diod pomocí pulzně šířkové modulace.
  • A/D převodník - Čtení analogové hodnoty.
  • Připravuji - analogový komparátor.

Programování

Různé způsoby programování mikrokontroléru.

Ostatní

Ostatní články, které nebylo možné zařadit do žádné kategorie.


10.01.2019


Menu