Vastaan itse, koska kerrankin onnisti.
Eli
- ohjelmoinnissa Arduinon IDE (v. 0022 minun tapauksessani)
- rautapuolella breadbordille istutettu Atmelin 328p, jossa ISP-liitin (minulla 6 pinnaa)
- välissä LadyAdan USBTiny
Arduinon IDEllä pääsee lataamaan Bootloaderin, löytyy Tools-valikosta BurnBootloaderin yhtenä valintana. Bootloaderin polttamalla voi tarkistaa, että yhteydet (COM-asetukset, Tiny, ajurit) toimivat.
Sitten tuli ongelma. Kuinka polttaa Arduinon IDEllä tehty koodi piirille?
Tätä ei ole tehty ihan yksinkertaiseksi. Arduino tekee .hex -tiedoston, jonka voi polttaa AvrDudella (Dude tulee USBTinya). Ihmettelin aikani, mihin piruun .hex -tiedosto menee, ja löytyihän se. Käännösvaiheessa Arduinon IDEssa voi painaa SHIFT-näppäimen pohjaan, ja käynnistää käännöksen, jolloin näkee, mitä mihinkin hakemistoon menee.
.hex -tiedostot menevät temppihakemistoon, esim.
C:\Documents and Settings\User1\Local Settings\Temp\build7849452436754059347.tmp
Alku on aina vakio, eli C:\Documents and Settings<owner>\Local Settings\Temp\ ja buildin ajantasaisuuden näkee kansion aikaleimasta. Tosin en ensin nähnyt koko Local Settings -hakemistoa, koska se on ilmeisesti Windowsin oletusarvona “hidden”! Aseta Explorerilla näkyväksi.
Lähdetiedostoni nimi oli SleepCode.pde, ja tuon build…-hakemiston alta löytyy kääntämisen jälkeen SleepCode.cpp.hex, joka on siis poltettava data. HUOM! Arduinon IDE täytyy pitää auki, sillä temppihakemistot ja -tiedostot (myös .hex) häipyvät IDEn sulkemisen jälkeen huitsin Nevadaan.
Sitten vaan copy-paste SleepCode.cpp.hex, ja AvrDudella piirille.
Hyväksi koetun käytännön mukaan kopioin .hex -tiedoston C:-levyn juurihakemistoon, mistä käynnistän avrduden (luonnollisesti avrdude.exe on kätketty polun C:\Documents and Settings\User1\Desktop\arduino-0022\hardware\tools\avr\bin taakse, mutta laitoin polun DOSsin pathiin, joten dude lähtee käyntiin C:n juuresta.
Ei tätä ihan helpoksi ole tehty, mutta tiettyjä etuja on:
- Ohjelman voi kirjoittaa Arduinon IDElla, jota varten on saatavana hyvin paljon ohjelmointia helpottavia kirjastoja ja apuja netistä. Lyhyen tuntuman perusteella Arduinon IDE on Lada, ja AVRStudio Mersu, mutta Mersussa on pirun paljon vaihteita… Arduinon IDEllä aloitus on aikakin helppoa.
- Ohjelman voi testata valmiiksi jollain Arduinon kortilla, mikä mielestäni helpottaa elämää, sillä Arduinon kortti on tietokoneessa kiinni USBilla, eikä erityisvälineitä (breadboard, poweri) tarvita protoiluun.
Komento C:>avrdude -c usbtiny -p m328p -e -U flash:w:SleepCode.cpp.hex
ja johan alkaa tapahtua. Ohjelmakoodi tippuu piirille ja toimiikin vielä niin kuin pitää.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f
avrdude: erasing chip
avrdude: reading input file “SleepCode.cpp.hex”
avrdude: input file SleepCode.cpp.hex auto detected as Intel Hex
avrdude: writing flash (3430 bytes):
Writing | ################################################## | 100% 2.02s
avrdude: 3430 bytes of flash written
avrdude: verifying flash memory against SleepCode.cpp.hex:
avrdude: load data flash data from input file SleepCode.cpp.hex:
avrdude: input file SleepCode.cpp.hex auto detected as Intel Hex
avrdude: input file SleepCode.cpp.hex contains 3430 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 1.80s
avrdude: verifying …
avrdude: 3430 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.