Wgrywanie do Arduino pliku HEX programatorem ISP

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ę:

Dopisujemy poniżej linię z nowym katalogiem, w moim przypadku:

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:

arduino_isp_1
 

UWAGA!
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.

arduino_isp_2
 

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *