blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
Programátor
deadawp



ATtiny85 - programovanie Arduino as ISP
pridal deadawp 19.12. 2023 o 11:19



Mnoho projektov využíva Arduino dosky, ktoré sú pre finálnu aplikáciu až príliš veľké, najmä ak sa využíva iba málo GPIO a obsluhu takéto programu by zvládla aj menšia doska, či procesor. Dnes si ukážeme ATtiny85-20PU v štandardnom puzdre DIP8. Celkovo má tak 8 vývodov a orientácia švábu je identifikovaná záhlbom v strede hornej časti / zafrézovanou dierkou v ľavej hornej časti. Šváb je veľmi malý, je menší ako prvý článok malíčka.

Samotný ATtiny85 má širokú škálu napájacieho napätia od 2,7, až do 5,5V. V prípade verzie ATtiny85V je možné napájacie napätie znížiť až na 1,8V. ATtiny85 má celkovo 5 GPIO vývodov, ktoré je možné použiť v programe, má to však svoje špecifiká. V prípade využívania externého oscilátora je nutné na 2 GPIO piny pripojiť oscilátor a z toho dôvodu bude možné v programe využívať iba 3 GPIO.

ATtiny však disponuje aj interným oscilátorom, ktorý v prípade jeho použitia umožňuje využiť taktovaciu frekvenciu 8, alebo 1 MHz. Taktiež je v takomto prípade možné využiť všetkých 5 GPIO. Pri 1 MHz je operačná spotreba mikrokontroléra na úrovni 2 mA pri 5V napájaní. Piny je možné využívať plnohodnotne ako napr. u Arduina UNO. Treba si však prezrieť pinout, nakoľko nie všetky piny majú napr. ADC, či PWM. ATtiny85 má 512B RAM pamäte a 8 kB flash pamäte, pričom je určená pre používateľský program a aj bootloader. Parametre pamätí budú u ATtiny85 limitujúce pre použitie vo veľkých projektoch. S ohľadom na tieto parametre rozhodne ATtiny85 nevyužijete v projektoch s Ethernetom, či osluhou TFT displejov a podobne, kde sú nároky veľké jednak na RAM, ale i flash pre ukladanie obrázkov, tvarov, či textových fontov.

Pre nahratie programu do ATtiny je nutné využiť programátor, alebo Arduino dosku nakonfigurovanú ako ISP programátor. V mojom prípade som použil Arduino Uno, do ktorého som nahral program Arduino as ISP, ktorý je dostupný ako vzorový v Arduino IDE. Musel som však zmeniť makro a odkomentovať ho pre OLD wiring.

Následne som mohol prepojiť Arduino s ATtiny85, taktiež je potrebné pridať elektrolytický kondenzátor 10 uF (mikrofarad) medzi RST a GND Arduina. V prvom rade je vhodné vypáliť zavádzač (Bootloader). V Arduino IDE sú po doinštalovaní podpory ATtiny cez .json link: http://drazzy.com/package_drazzy.com_index.json dostupné 2 druhy bootloaderov. Jeden je štandardný a druhý Optiboot. Rozdiel medzi týmito bootloadermi je najmä v ich veľkosti, kedy je Optiboot šetrnejší, dokonca aj rýchlejší ako štandardný bootloader a taktiež umožňuje alokovať viac miesto na program (nakoľko je menší ako štandardný bootloader). Štandardne by to malo byť až 1,5 kB pre program navyše v porovnaní so štandardným bootloaderom. 

V mojom prípade som využil len štandardný bootloader. Po nahratí Arduino ISP do Arduina UNO som prepol dosku na ATtiny85, vybral som informácie o taktovacej frekvencii procesora cez interný oscilátor 1 MHz. Tieto nastavenia slúžia aj pre nastavenia fuses po nahratí bootlaodera do ATtiny85. Pri kliknutí na vypálenei zavádzača bol do pár sekúnd vypálený. Ak vám nechce Arduino nahrať program do ATtiny85 a skontrolovali ste aj zapojenie, potom je možné, že ATtiny má nahraté fuses pre externý oscilátor a pokým tam nepripojíte externý oscilátor, ATtiny nebude možné nahrať.

Program, pre ktoré som ATtiny použil obsahoval funkciu millis() pre časové riadenie stavov štyroch GPIO pre riadiacie signály priemyselného PWM modulu, čo zahŕňa ovládanie smeru motora, jeho spúštania, či jehozastavenia. Spotreba bola 2,30 mA pri napájaní na 5V priamo z PWM jednotky, pričom program využíval 2 vstupy INPUT_PULLUP s interným rezistorom a 2 vstupy/výstupy na LOW, ktoré sa menili v závislosti od potrebného smeru otáčania motora.

Celkovo bol program veľmi lightweight a zaberá 1776B flash pamäte, vrátane bootloadera, RAM pamäť bola vyťažená 90B z 512B. S Optiboot bootloaderom by to bolo ešte menej. Pre takéto ľahké typy projektov určite ATtiny odporúčam. Problém bude skôr s použitím so senzormi s I2C zbernicou, ktorú ATtiny nepodporuje a je ju nutné emulovať cez TwoWire TWI knižnicu. Problém môže byť hlavne so senzormi, ktoré striktne používajú Wire knižnicu, ktorá je kompatibilná len pre Arduino, ESP32 a podobne.

Existuje aj iný bootloader (nie je v Arduino IDE priamo dostupný), napríklad Digispark, ktorý umožňuje programovať ATtiny85 priamo cez USB rozhranie so signálmi USB+, USB-. Tento bootloader je veľmi populárny na Digispark doskách, ktoré sa zasúvajú priamo do USB portu a majú aj možnosť externého napájania vyšším napätím. Štandardne majú ATtiny85 v menšom prevedení, v inom puzdre.

Ak by ste však chceli ATtiny v pôvodnom DIP8 prevedení zachovať a dosiahnúť aj programovaciu funkcionalitu cez USB po vypálení Digispark zavádzača, odporúčam hotové dosky, ktoré sú často vedené ako napájacie pre ATtiny85. Je ich však možné využiť aj na programovanie, ak má ATtiny daný zavádzač.




Prístupov 2884
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
EG21-G - MQTT pripojenie na Thingsboard
[ 5.6.2024] (príspevkov 0)
Skúsenosť Fiverr - freelanceri, podpora
[ 28.5.2024] (príspevkov 0)
Quectel EG21-G - HTTP request
[ 17.5.2024] (príspevkov 0)
Tip na darček k jubileu 60
[ 29.4.2024] (príspevkov 0)
Oplatí sa teplovodivá pasta z Aliexpress...
[ 4.4.2024] (príspevkov 0)
Recenzia 3D podznačky BEZ KOMPRESE
[ 4.4.2024] (príspevkov 0)
GTA IV fix spustenia na Windowse 10 N
[ 24.3.2024] (príspevkov 0)
RFID DOMINATOR licencia na predaj
[ 4.1.2024] (príspevkov 0)
ATtiny85 Digispark - programovanie, použ...
[ 28.12.2023] (príspevkov 0)