Digispark - Malé Arduino

Digispark - Malé Arduino
SakulRaider Pridal  SakulRaider
  355 zobrazení
3
 0
Arduino a príbuzné platformy

Je to takový malý plošný spoj buď osazený mikro USB konektorem nebo je přímo USB konektor vytvořen na desce (viz foto v úvodu). Na této desce je pak mikroprocesor ATTINY85-20PU plus několik podpůrných součástek jako je stabilizátor napětí a nějaké ochrany pro USB. Nechybí ani 2 signalizační LED. No a to je asi tak vše. Tento celek je vlastně velmi malé vývojové prostředí pro již zmiňovaný procesor ATTINY85. Programování se provádí přes upravené Arduino IDE, do kterého je doplněna podpora pro tuto desku. Navíc je však ještě nutno do PC nainstalovat speciální USB ovladač, aby Digispark mohl správně s prostředím Arduino IDE fungovat. Kdo se programováním a vývojem aplikací na platformě Arduino zabývá určitě již řešil problém s tím, že na zcela jednoduchou aplikaci, kde by stačil právě i malý procesor o 8 vývodech musel použít například procesor z desky UNO, kde je ATMEGA328P, který má vývodů 28. To se tímto mění a lze použít právě ATTINY85, případně existuje i verze Digispark Pro, kde je použit procesor ATTIMY87/167 s 20 vývody.

Technické specifikace

Podpora pro Arduino IDE (OSX/Win/Linux)
Napájení z USB nebo z externího zdroje 7-35V (doporučeno 12V a méně)
Integrovaný stabilizátor 5V/500mA
Připojení přes USB (programování)
6 I/O vývodů (2 jsou použity pro USB - pouze pro programování a komunikaci přes USB, pokud je není třeba dají se využít jako vstupy nebo výstupy)
8k Flash paměti (cca 2 jsou pro Bootloader a zbytek pro uživatelský program, tedy cca 6k)
I2C a SPI rozhraní
PWM na 3 pinech (další s možností softwarového PWM)
ADC na 4 pinech
Kontrolka napájení a Test/Status kontrolka (obdoba LED na Arduino deskách UNO-13)

Jak si postavit vlastní Digispark

V tomto článku bych se chtěl hlavně zabývat jak si postavit vlastní Digispark. A to ne ani tak jak si postavit tuto vývojovou desku, ale spíše jak nahrát do procesoru ATTINY85-20PU správný bootloader a jak tam následně nahrát Váš program, tak aby jste mohli tento procesor použít v nějaké Vaší aplikaci. Pro samotné ladění aplikace je možno použít přímo desku Digisparku nebo pokud si ve Vaší aplikaci osadíte USB konektor lze ladit přímo v aplikaci.

Schéma zapojení Digisparku

Jak vidíte schéma je celkem jednoduché. Základem je procesor ATTINY85-20PU, konektor USB, stabilizátor, 2 Ledky a pár součástek okolo. V podstatě by se to dalo ještě podstatně zjednodušit a to asi takto:

Zde už máme jen procesor a připojení USB konektoru včetně ochran. Jedná se o nejjednodušší zapojení, aby šel do procesoru přes Arduino IDE nahrát Váš program. Další zapojení už je na Vás, dle Vašich požadavků.

Nahrání Bootloaderu

Ovšem abychom mohli přes Arduino IDE nahrát nějaký program, musíme do ATTINY85 nahrát bootloader. No a tady to začíná být zajímavé, neb jsem s tím dost zápasil. První problém vyvstal z programátorem. Na internetu a v různých návodech popisují postup za použití programátoru AVRISP MKII. Ten já bohužel nevlastním. Pro mikroprocesory od Atmelu mám pouze programátor Presto nebo USBasp. Protože programátor USBasp je cenově velmi výhodný (např. ZDE) včetně toho, že se dá postavit v domácích podmínkách popíšu postup právě s ním. Aby tento programátor mohl pracovat budeme ještě potřebovat nějaký program, který ho podporuje. Na stránkách USBasp je k dispozici hned několik odkazů na vhodný program. Já jsem některé otestoval a nakonec jsem si vybral eXtreme Burner - AVR (podporuje i Češtinu). Problém tohoto programu je ten, že jaksi v základu neumí procesor ATTINY85-20PU. To se dá vyřešit upravením souboru chips.xml.
Takže pokud máme programátor USBasp a k němu nainstalovaný program eXtreme Burner - AVR s upraveným souborem chips.xml (nachází se v eXtreme Burner - AVRData) a samotný mikroprocesor ATTINY85-20PU, můžeme přistoupit k nahrání bootloaderu. Zde je nutno upozornit na to, že existuje celkem dost verzí bootloaderů a ne všechny zrovna dobře fungují. Já zmíním dvě verze, které jsem otestoval, a které fungují.

  • micronucleus-1.06 - toto je stará verze, která je funkční s verzí Digispark-Arduino-1.0.4 a na operačním systému WinXP. Pokud jsem procesor s touto verzí chtěl připojit k Win7 i přes správně nainstalované ovladače ho Windows nechtěl detekovat a neustále hlásil po připojení pouze neznámé zařízení. I na WinXP to bylo trochu záhadné. Po připojení vždy na chvilku došlo k připojení a poté se procesor sám odpojil a po chvilce opět připojil. Takto se to opakovalo stále dokola. Nicméně přes Digispark-Arduino-1.0.4 šel nahrát program a okamžitě po jeho nahrání již zůstal procesor do systému připojený. Pravděpodobně i tento bootloader má většina prodávaných Digispark desek. Ty co mám já ho zřejmě mají, neb se na Win7 nechtějí přihlásit a pracují jen na WinXP. Vzhledem k tomu, že v mích deskách je již nahrán testovací program pro blikání, tak se deska již cyklicky neodpojuje a je normálně připojena.
  • t85_default - toto je v současnosti nejnovější bootloader. Pozor však na to, že napracuje se starou verzí Digispark-Arduino-1.0.4, ale potřebuje DigistumpIDE1.5.8C. Na starší verzi se sice vše tváří, že funguje jak na WinXP, tak na Win7, i program jde normálně nahrát, jen s drobným detailem vůbec nefunguje! Zde jsem hodně bádal, když jsem to poprvé testoval. Mojí smůlou bylo, že v den kdy jsem to začal bádat vyšla nová verze bootloaderu (t85_default) včetně arduino prostředí. Ovšem já jsem měl z minulého dne stažené staré verze, takže jsem se dost zapotil než jsem to zjistil.

V tuto chvíli tedy používám verzi t85_default s DigistumpIDE1.5.8C a v této konfiguraci mi vše funguje i na Win7.
Nyní tedy jak nahrajeme do procesoru bootloader (t85_default). Celkem snadno. Propojíme procesor a programátor dle následujícího obrázku:

Je třeba zapojit všech 6 vývodů na procesoru. Poté již stačí pustit program eXtreme Burner - AVR a načíst do něho soubor t85_default.hex a nastavit správný typ procesoru na ATTINY85-20PU. Ještě před tím, než ale program nahrajete do procesoru musíte správně nastavit pojistky procesoru. Zde je třeba si dávat velký pozor, neboť nesprávné nastavení pojistek může znemožnit další nahrávání a konfiguraci procesoru (taktéž se mi povedlo). Optimální postup je přepnout se na kartu Fuse Bits/Nastavení a zde dát s připojeným procesorem Přečíst vše. Tímto krokem ověříme, že procesor a programátor spolu správně komunikují. Po vyčtení dat bychom měli ve všech políčkách mít nějaká data. My nastavíme následující hodnoty:

  • Low Fuse: 0xE1
  • High Fuse: 0xDD
  • Extended Fuse: 0xFE

Zároveň u těchto polí zaškrtneme volbu Zapsat. Ostatní pole necháme beze změny. Poté můžeme stisknout tlačítko Zapsat, čímž dojde k zapsání konfigurace pojistek do procesoru, nebo můžeme stisknout tlačítko nahoře Zapsat vše, čímž dojde k zapsáním pojistek a samotného programu t85_default.hex do procesoru.

Na obrázku výše je ukázka nastavení pojistek s načteným bootloaderem t85_default.hex.

Tímto máme bootloader nahrán v procesoru a nyní již budeme vždy nahrávat uživatelský program přes prostředí DigistumpIDE1.5.8C a přes USB konektor připojený k našemu procesoru.

Ovladače USB pro Windows

Pokud jste se dostali až sem je to stejné jako kdyby jste si koupili vývojovou desku Digispark USB. Nyní stačí nahrát svůj první program. My si nahrajeme pro Arduino obvyklé blikání ledkou.
Abychom mohly náš procesor připojit k PC musíme nainstalovat ovladače. Stačí tedy připojit procesor, počítač by měl najít nové zařízení na USB a měl by nám nabídnout instalaci ovladače. Zde je vhodné zadat výběr ovladače ze složky a najít cestu ke složce s ovladačem. Následně by již měl Windows v této složce najít vhodný ovladač a nainstalovat ho. To by mělo vypadat asi nějak takto ve správci zařízení:

Ukázka správně nainstalovaného ovladače pro USB s připojenou Digispark deskou.

Jak nahrát první program

Potřebujeme tedy DigistumpIDE1.5.8C, které si můžeme stáhnout pro operační systém MAC, Windows nebo Linux. Po jeho instalaci musíme provést první nastavení, které se týká výběru správné vývojové desky: Board → Digispark (Default - 16.5Mhz). Na rozdíl od klasických Arduino desek nevybíráme žádný COM port, ale Programátor: Programmer → Micronucleus. Tímto máme nastavené prostředí DigistumpIDE1.5.8C.
V tuto chvíli již stačí otevřít nějaký příklad, například ono blikání LEDkou viz následující obrázek:

Ještě jedna důležitá věc. Při nahrávání programu je nutno dodržet určitý postup:

  1. Spustíme kompilaci s následným nahráním programu (Upload) v tuto chvíli není náš procesor připojen přes USB k počítači.
  2. Jakmile se provede kompilace bude chtít Arduino IDE nahrát program do procesoru. Ten ale není připojen, takže se nahrávání na 60s pauzne a v této době je nutno připojit procesor nebo Digispark USB desku. (Je nutno sledovat spodní černé stavové pole s informacemi o průběhu kompilace a uploadu)
  3. Jakmile je procesor připojen proběhne Upload a měli bychom dostat informaci o tom, že se podařilo nahrát 100% programu. Následně by nám již měla začít blikat dioda.

No a to by asi mohlo být vše k tomuto projektu. Samozřejmě mnoho informací se dá pohledat na internetu. Na oficiálních stránkách tohoto projektu DigiStump lze najít i různé příslušenství a můžete tam stáhnout veškerý potřebný software. Mě celkem tento projekt zaujal hlavně z důvodu možnosti programovat v Arduino IDE i menší procesory do jednodušších aplikací, což mi u plnohodnotného Arduina trochu chybělo.

Odkazy

DigiStump - Oficiální stránka tohoto projektu
DigiSpark - Stránka s vývojovou deskou ATTINY85
DigiSpark Pro - Stránka s vývojovou deskou ATTINY87/167
DigistumpIDE1.5.8C - Vývojové prostředí pro DidiSpark a DidiSpark Pro
Bootloader a Ovladače USB - Aktuální verze ovladačů USB a Bootlodery
USBasp - Jednoduchý a levný programátor
eXtreme Burner - AVR - Program pro programování procesorů Atmel
Chips pro eXtreme Burner - AVR - Článek o tom jak přidat podporu pro další procesory
Nákup USBasp - Kde snadno a levně koupit USBasp
Digispark DIY - Stránka s postupem stavby DigiStumpu
Asix - Presto - Programátor Presto od společnosti ASIX

 



Páčil sa Vám článok? Pridajte k nemu hodnotenie, alebo podporte jeho autora.
 

       

Komentáre k článku

Zatiaľ nebol pridaný žiadny komentár k článku. Pridáte prvý? Berte prosím na vedomie, že za obsah komentára je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.
Pre komentovanie sa musíte prihlásiť.

Vaša reklama na tomto mieste

Vyhľadajte niečo na našom blogu

PCBWay Promo

ourpcb Promo

PCBWay Promo

ourpcb Promo

PCBWay Promo

ourpcb Promo


Webwiki Button