ATtiny a Arduino

V EduShieldu jsem použil pro řízení displeje jednočip ATtiny2313. Je to vlastně legendární AT90S2313, ale s novějším jádrem a novými periferiemi. Původně jsem sice chtěl použít jiný typ, ale ten nebyl dostupný. Inu co už, použil jsem tento.

Otázka ale byla: Jak tu Atinu (familiární označení, jistě to říkáte taky…) naprogramovat. A protože jde o shield pro Arduino, nabízelo se naprosto jednoduché řešení, totiž využít Arduino jako programátor.

Dokonce na to mají i tutoriály – Arduino as ISP. Stačí k tomu pár propojovacích drátů a jeden kondenzátor (ten tam neukazují, ale je zapojený mezi RESET a zem na Arduinu).

pinoutattiny2313

Propojení je prosté:

Arduino ATTiny
digital 10 pin 1 (RESET)
digital 11 pin 17 (MOSI)
digital 12 pin 18 (MISO)
digital 13 pin 19 (SCK)
GND pin 10
5V pin 20

Nejprve ale nahrajte do Arduina sketch „ArduinoISP“. Najdete ho mezi Examples.

Jako druhý krok připojte elektrolyt ~10µF mezi zem a RESET na Arduinu (záporným pólem k zemi, logicky).

Teď můžete vesele připojit ATTiny2313 a programovat.

No jo, to se řekne – programovat. Ale čím?

Já jsem si řekl, že bude kůl a vůbec užitečné, když firmware bude taky sketch pro Arduino. A jak jsem řekl, tak jsem i udělal. K tomu, aby to celé fungovalo, ale musíte do Arduina přidat podporu pro ATtiny. Já použil tuto, ale chtělo to trošku laborovat s cestami v souboru boards. Ony se totiž mezi verzí 1.5 a aktuální 1.6 změnily, a tak byl překlad spíš festival chyb než radostná událost. Ale nakonec se podařilo.

Vybral jsem příklad „blink“, přeložil ho pro desku „ATtiny2313@1MHz“, vybral jsem programátor „Arduino as ISP“ a tradá – vše fungovalo.

Trošku trápení bylo s I2C v roli „slave“, ale nakonec po chvilce bastlení s přerušením začala Atina přijímat povely a reagovala na ně. Standardní knihovna Wire totiž moc nešlape, tak jsem zvolil TinyWireS.

(Netestoval jsem Arduino Tiny Core od Spencera Konde, vypadá zajímavě).

S touto sestavou tedy trvalo vytvoření firmware pro EduShield jedno odpoledne. Naprogramování pak vyžaduje jen šest drátů, kondenzátor a pět minut práce.

banner