DIY

Jak převést vaše Arduino na ISP - programování ATmel ATtiny85

Jak převést vaše Arduino na ISP - programování ATmel ATtiny85

Krátké bajty: Někdy je použití předem připravené desky Arduino v projektu přehnané nebo jen nadměrné. ATtiny85 je levný, ale překvapivě schopný mikrokontrolér, který může pomoci snížit stopu vašeho projektu. Zde je návod, jak můžete naprogramovat ATtiny pro použití ve vašem projektu.

Platforma Arduino je úžasný nástroj pro učení, ale někdy se podporované desky Arduino nehodí tam, kde je potřebujete. S Arduino Uno (nejběžnější model) o rozměrech přibližně 65 mm x 50 mm snadno zjistíte, jak by to mohlo být největší součástí některých projektů. Existují i ​​další desky jako Nano, které jsou mnohem menší (můj Nano knockoff je 43 mm na 17 mm, 4,5 krát menší), ale i tak je to někdy příliš velké. Co když, řekněme, chcete postavit nositelné zařízení, možná je to jen blikající LED, kterou váš pes nosí v noci. Jakmile započítáte baterii atd., Může být docela velká.

Postavte linku ATtiny, hrdinu našeho problému. Jmenovec ATtinyho je zřejmý. Najdete jej v balíčku DIP-8 (duální inline balíček - 8 pinů), což je asi 9 mm na druhou. Ve skutečné povaze svého jmenovce je ATtiny nepatrný, ale více než jen svou fyzickou velikostí. ATtiny85, který se používá pro tento článek, má pouze 8 kB paměti flash programu, 512 bajtů RAM a 512 bajtů EEPROM (trvalé úložiště mimo úložiště programu).

Nyní je problém programovat jednoho z těchto drobných kluků. Existuje několik návodů online, ale zjistil jsem, že jsou mírně neúplné nebo chybí pokyny.

ISP - In System Programmer

In System Programmer (ISP) není tak fantazijní, jak to zní. Typicky se ISP pro čip ATmel skládá ze zařízení s kabelem USB se šesti vývody. Piny ISP lze na Arduinos snadno zjistit, jsou obvykle umístěny naproti konektoru USB. Čipy ATmel jsou určeny k programování přes piny ISP, ale platforma Arduino implementovala adaptér USB na sériový port na desce, aby eliminovala potřebu zařízení ISP. Navzdory tomu ponechali piny ISP dostupné u mnoha, ne-li u většiny modelů.

Protože naše ATtiny čipy nemají USB na sériové zařízení, které mají Arduinos, je nutné, aby byly programovány pomocí ISP. Zařízení ATmel ISP jsou poměrně drahá, přinejmenším ve srovnání s náklady na samotné Arduino, takže si ušetříme peníze a čas přepravy naprogramováním Arduina, aby se choval jako ISP.

Děláme to otevřením IDE Arduino a výběrem ArduinoISP ze vzorových skic.

Po otevření souboru náčrtu uvidíte některé informace o očekávaném chování kódu. V tomto souboru musíme provést rychlou změnu, aby náš ISP správně komunikoval s Arduino IDE.

Na řádku 220 najdeme založit() funkce.

void setup () SERIAL.begin (BAUDRATE); pinMode (LED_PMODE, VÝSTUP); pulzní (LED_PMODE, 2); pinMode (LED_ERR, OUTPUT); pulzní (LED_ERR, 2); pinMode (LED_HB, VÝSTUP); pulzní (LED_HB, 2); 

Musíme se změnit PŘENOSOVÁ RYCHLOST do roku 19200, takže řádek přečte

SERIAL.begin (19200);

Z toho, co jsem četl, dostal Arduino IDE aktualizaci, která narušila kompatibilitu s tímto firmwarem ArduinoISP. Arduino a IDE se pokoušely komunikovat při různých přenosových rychlostech, což vedlo k neúspěchu využívat Arduino jako ISP, přestože firmware správně blikal.

Drobné knihovny

Arduino IDE podporuje celou řadu různých mikrokontrolérů a desek, ale bohužel není zahrnuta řada ATtiny. To znamená, že jim musíme pomoci sami.

Způsob, který pro mě fungoval, bylo přidání níže uvedené adresy URL do adres URL Dalších správců desek v předvolbách IDE Arduino,

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

restartujte IDE, otevřete Správce desek v části Nástroje -> Deska -> Správce desek a poté vyhledejte balíček ATtiny a nainstalujte jej.

Jakmile to bude hotové, můžete začít budovat svůj obvod pro programování ATtiny.

Budování vašeho ISP

Existuje několik způsobů, jak můžete sestavit svého ISP. Můžete je postavit do nepájené nepájivové desky, abyste mohli díly znovu použít, nebo můžete vytvořit polotrvalé řešení pájením dohromady, jako jsem to udělal já. Pokud to pečlivě pájíte dohromady, můžete Arduino znovu použít pro jiný projekt, pokud se rozhodnete.

Při pohledu na prvních třicet zvláštních řádků náčrtu ArduinoISP můžeme najít následující informace o nastavení Arduina, aby fungovalo jako ISP.

Kolík 10 Obnovit PIN pro
Cílový mikrokontrolér
Kolík 11 SPI Master Out
Slave In
Kolík 12 SPI Master In
Slave Out
Kolík 13 Sériové hodiny SPI

Volitelně můžete připojit LED k následujícím pinům pro indikaci stavu

Pamatujte, že tyto LED diody budou vyžadovat rezistory.

Zde vidíme pinout pro ATtiny85 a příslušná připojení, která musíme udělat zpět do Arduina. Je to docela hrubá kresba, ale pro pohodlí jsem označil piny na ATtiny85. Je však třeba poznamenat, že piny nejsou adresovány na 1,2,3… 8, jak jsou v diagramu, jsou označeny v Arduino IDE, protože byly označeny v diagonálním textu.

Toto je mnohem podrobnější schéma různých připojení. Všechny LED diody jsou volitelné, ale jsou užitečné při řešení potíží, kromě tří stavových LED diod, které byly doporučeny v souboru náčrtu ArduinoISP, existuje jedna, která se jednoduše připojuje od 5 V k zemi (samozřejmě s rezistorem), a pak je jeden připojen k druhému kolíku (Pin 3 v IDE) pro testování ATtiny testem mrknutí. Všimněte si kondenzátoru, který spojuje resetovací kolík se zemí, to je nutné, aby Arduino fungovalo jako ISP.

Toto je Arduino ISP, který jsem postavil pro mikrokontroléry ATtiny. Vidíte, že jsem použil zásuvku DIP-8 k držení ATtiny, když se programuje. Rovněž jsem nechal dostatek místa na pravé straně pro instalaci zásuvky DIP-28 pro programování čipů ATmega, jako je ATmega328P. Upgrade bude velmi přímočarý, vyžaduje pouze připojení nezbytných pinů pro čipy Atmega, jako je tomu u ATtiny.

Jakmile sestavíte svého poskytovatele Arduino ISP, určitě ho budete chtít vyzkoušet. Nezapomeňte zvolit příslušná nastavení, která chcete programovat prostřednictvím připojeného Arduina, a neprogramovat samotné Arduino.

U desky zvolíme možnost ATiny 25/45/85, poté ve výběru procesoru vybereme ATtiny85 a nakonec z programátorů vybereme Arduino jako ISP. To říká IDE vše, co potřebuje vědět o cílovém systému, včetně toho, jak s ním bude komunikovat. Nyní jsme připraveni vyvolat Blink skicu (nebo napište sami, pokud jste tak hardcore) a vyzkoušejte to, nezapomeňte přepnout kolík používaný k blikání LED na ten, který jste použili ve svém obvodu, to je kolík 3, pokud používáte schéma, které jsem uvedl. Nakonec skicu sestavíme a nahrajeme kliknutím na Skica -> Nahrát pomocí programátoru.

void setup () pinMode (3, OUTPUT);  void loop () digitalWrite (3, HIGH); zpoždění (1000); digitalWrite (3, LOW); zpoždění (1000); 

Celkově můj ISP Arduino, který je připájen, pravděpodobně stojí kolem tří nebo čtyř dolarů. Čipy ATtiny mohou být také extrémně levné, obvykle jen za dolar za kus. Doporučuji koupit patice DIP-8, pokud máte v plánu vkládat čipy ATtiny do projektů, protože možná budete chtít aktualizovat nějaký kód nebo změnit účel čipu. Pájení IC na místě je proveditelné, ale IC můžete snadno poškodit, zejména při opakované expozici, jako by tomu bylo v případě, že byste kód aktualizovali několikrát.

Udělal někdo jiný něco takového? Chtěli byste vidět více věcí Arduino? Dejte nám vědět v komentářích níže.

Přečtěte si také: Raspberry Pi nebo Arduino - která deska je pro začátečníka nejlepší?
Náš výběr nejlepšího rozbočovače USB typu C pro smartphony Android
Nový port USB typu C je zabudován do většiny nových zařízení a často je jediným dostupným portem. Zahrnuje nová zařízení Android od smartphonů po And...
Co je to Android TV Box a jak to funguje?
Box Android TV je malý levný multimediální box, který se připojuje k televizi a přehrává filmy, televizní pořady a aplikace, jako jsou hry. Boxy pro ...
Naše tipy pro nejlepší levné nízkonákladové TV boxy pro Android do roku 2021
TV boxy založené na Androidu se staly populární, protože jsou levné a fungují dobře při streamování videí a základních hrách. Rozpočtová skříň Androi...