Chciałbym dziś opisać sposób w jaki można wgrać program napisany w Arduino do mikrokontrolera przy użyciu programatora ISP. Operacja ta umożliwia także wgranie bootloadera Arduino, jeśli z jakiegoś powodu przestał działać.
Co będzie potrzebne?
- płytka z mikrokontrolerem AVR i złączem ISP
- programator ISP, ja używam programatora KamPROG AVR, można użyć dowolnego innego
- ponieważ powszechnie używa się dwóch standardów złącz ISP (6-pinowe i 10-pinowe), może przydać się przejściówka, np. KAmodISP. Połączenie można również wykonać przewodami połączeniowymi do goldpinów, ale przejściówka redukuje prawdopodobieństwo spalenia czegoś prawie do zera
Pliki wynikowe lądują w katalogu tymczasowym systemu Windows, ale można to zmienić, należy otworzyć plik preferences.txt (zmian w pliku dokonujemy, kiedy Arduino IDE jest wyłączone!), który jest w katalogu <katalog Arduino>/lib. W tym pliku wyszukujemy linię:
#build.path=build
Dopisujemy poniżej linię z nowym katalogiem, w moim przypadku:
build.path=d:\arduino-1.6.5-r2\build\
Od tej pory pliki wynikowe będą pojawiać się w tym katalogu. Teraz kompilujemy program (przycisk Weryfikuj), zaglądamy do wskazanego wcześniej katalogu, powinny się tam pojawić pliki wynikowe, plik który nas interesuje to <nazwa szkicu>.cpp.hex. Teraz możemy użyć programatora ISP, aby wgrać plik, w moim przypadku muszę uruchomić aplikację programatora KamPROG, wskazać plik HEX i nacisnąć przycisk Write:

Tekst poniżej dotyczy konfiguracji fuse bitów mikrokontrolera AVR, operacji należy dokonywać ostrożnie, wszystko sprawdź dwa razy, bo pomyłka może doprowadzić do zablokowania mikrokontrolera!
Co jest istotne: programy Arduino (w szczególności bootloadery) działają prawidłowo tylko przy odpowiedniej konfiguracji fuse bitów, więc należy je odpowiednio skonfigurować. Przygotowałem ściągę z listą wartości fuse bitów dla popularnych płytek Arduino. Jeśli już odnajdziesz właściwe wartości, to należy je wpisać w odpowiednie okienka (od lewej low, high, extended), następnie nacisnąć przycisk Write.
