ATtiny85

Page

Stránky / Mikrokontroléry /

Toto je stránka, ktorá slúži ako rozcestník na experimenty s menšou verziou Arduina. ATtiny85 má 8 kB flash pamäte, 512 SRAM a 512 EEPROM. Môže sa to zdať málo, ale aj do takej malej pamäte dokážete dostať dosť veľký program. ATtiny85 je môj obľúbený mikrokontrolér a iba vo výnimočných situáciách ho nahrádzam s mikrokontrolérom ATtiny84, ktorý má k dispozícii viac pinov a trošku lepšie periférie.

Prečo používať ATtiny85 namiesto plnohodnotného Arduina?

Hlavným dôvodom je cena. Tento mikrokontrolér kúpite za Euro a keď sa niečo stane, nič sa nedeje. Okrem toho je elementárne poskladať pomocou neho jednoduchý obvod, ktorý bude blbuvzdorný, možno ho pripojiť aj na vyššie napätie (pomocou regulátora napätia) a môžete s ním pomocou digitálnych pinov ľahko ovládať iné obvody.

Programovanie

Ako programovať ATtiny85 pomocou Arduina nájdete v samostatnom článku Arduino ako ISP programátor. Existuje aj druhá možnosť, že si poskladáte vývojovú dosku a na nej ho naprogramujete pomocou USBasp.

Aby bolo možné mikrokontrolér programovať, je potrebné do Arduino IDE doinštalovať podporu. Postup platí pre IDE 1.6.4 a vyššie:

  • Použite funkciu menu File/Preferences.
  • V zobrazenom dialógu do poľa Additional Board Manager doplňte https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json a stlačte OK. Toto jadro je síce uvádzané ako prvé, ale nedoporučujem ho používať. Bolo prvé z historických dôvodov, ale jeho autor nemá na jeho vývoj toľko času, ako je jadro, spomínané v odstavci o alternatívnych jadrách.
  • Použite funkciu Tools/Board/Boards Manager.
  • V zozname dosiek nájdite attiny a nainštalujte ju.

Alternatívne jadrá

Predchádzajúce jadro je dobré na základné programovanie ATtiny85. Ak ale chcete mikrokontrolér využiť viac, je vhodné sa poobzerať po viac prepracovaných jadrách. Tie podporujú zmenu mnohých parametrov. Napríklad zmeny nastavenia fuses, rôznych zdrojov hodín a optimalizácie kódu pri preklade.

Digitálny výstup

V základnom nastavení je k dispozícii 5 digitálnych pinov. Je možné mikrokontrolér prepnúť aj do stavu, keď použije namiesto resetu aj posledný pin, to je ale jednorázová záležitosť a viac nie je možné programovať ho pomocou Arduina. Preto túto možnosť ani nebudeme brať do úvahy. Jednotlivé piny sa ovládajú nasledovne:

  • 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 dispozícii sú tri piny:

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

Analógový vstup

K dispozícii sú tri vstupy:

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

Existuje ešte štvrtý pin, ale ten je na tom istom pine ako RESET a jeho využitie nie je jednoduché.

ADC prevody ale poskytujú viac možností a tie skúmam v samostatnom článku o ADC.

Interná EEPROM

Práca s EEPROM funguje rovnako ako v bežnom Arduine. Ak si chcete programovanie uľahčiť, inšpirujte sa v článku o praktickom používaní EEPROM.

Nastavovanie rýchlosti mikrokontroléra

Pokiaľ k tomu nie sú nejaké závažné dôvody, treba nechať mikrokontrolér na továrenskom nastavení 1 MHz. Ak je dôležitá rýchlosť, možno ho prepnúť na 8 MHz a v prípade extra požiadavky na rýchlosť sa dá ísť až do 20 MHz, ale už len za cenu pinov 3 a 4. Nastavovanie rýchlosti je popísané v článku Arduino ako ISP programátor.

Informácia o obsadení pinov 3 a 4 nie je úplne správna. Existuje možnosť prepnúť ATtiny85 aj do režimu, že aj pri vyššej rýchlosti používa vnútorný oscilátor. Volá sa PLL a pomocou neho sa dajú dosahovať aj vyššie rýchlosti. Najjednoduchšie to urobíte tak, že použijete jadro ATTinyCore a nastavíte si to v menu. Nezabudnite potom použiť funkciu menu Vypáliť zavádzač (Burn bootloader).

Programovať ho ako Arduino?

Opäť platí to čo v predošlom odstavci. Ak si chcete pridávať prácu, môžete ho programovať nízkoúrovňovými prostriedkami. V ATtiny85 ale máme k dispozícii 8 kB pamäte a to na programy bežnej veľkosti postačuje. Preto je omnoho pohodlnejšie písať digitalWrite, než sa trápiť s bitovými operáciami na porte.

Jedine ak ide o rýchlosť alebo významnejšiu úsporu pamäte, vtedy treba pristupovať k optimalizačným technikám. Platí staré programátorské pravidlo, že zákazníkovi je úplne jedno, koľko rokov života ste venovali programu na blikanie ledkou, keď to bude fungovať, do zdrojového kódu vám nikdy nepolezie.

Projekty

Zoznam projektov s ATtiny85. Ak sa chcete venovať programovaniu mikrokontroléra viac, je vhodné si postaviť vývojovú dosku. V projektoch nájdete dosky v DIP prevedení a dosky so SMD súčiastkami. Stmievač LED pásika bol môj pilotný projekt, na ktorom som sa učíl. Ale prekvapujúco sa vydaril a tento model stmievača používa približne 10 mojich známych na mnou vyrobených doskách a neznámy počet tvorcov dosiek, ktorí sa týmto projektom inšpirovali.

Blog

Zoznam článkov o ATtiny85. O tomto mikrokontroléri som napísal veľa článkov, preto som sa ich snažil rozdeliť na logické skupiny.

Pre začiatočníkov

Na týchto stránkach som o Arduine nikdy nepísal priamo pre začiatočníkov. Dôvodom bolo, že o Arduine nájdete na Internete dostatok príkladov, ktoré vás naučia elementárne základy jeho programovania. S mikrokontrolérom ATtiny85 je to iné. Príkladov je málo a ťažko nájdete také príklady, ktoré by boli dostatočne jednoduché. To sa snažím v tejto sérii urobiť a popisované témy a príklady robím tak, aby po prečítaní série týchto článkov mohol aj menej skúsený užívateľ programovať tieto malé mikrokontroléry.

  • Blik - Základné blikanie LED diódou.
  • Poistky - Nastavenie poistiek, ktoré ovplyvňujú rýchlosť a správanie mikrokontroléra.
  • Tlačidlá - Ovládanie tlačidiel.
  • PWM - Ovládanie jasu LED diód pomocou pulzne šírkovej modulácie.
  • A/D prevodník - Čítanie analógovej hodnoty.
  • Pripravujem - analógový komparátor.

Programovanie

Rôzne spôsoby programovania mikrokontroléra.

Ostatné

Ostatné články, ktoré nebolo možné zaradiť do žiadnej kategórie.


10.06.2016


Menu