Odtworzenie bootloadera w Arduino Uno z wykorzystaniem programatora AVRISP mkII

Jeżeli dotknie nas nieszczęście spalenia mikrokontrolera na płytce Arduino Uno lub po prostu jakimś dziwnym trafem z naszego układu „zniknie” bootloader, próba zaprogramowania zakończy się niepowodzeniem i komunikatem o błędzie pokazanym na rysunku 1:

 

Rys. 1. Przy usuniętym bootloaderze próba zaprogramowania zakończy się komunikatem błędu

Rys. 1. Przy usuniętym bootloaderze próba zaprogramowania zakończy się komunikatem błędu

 

W przypadku uszkodzenia mikrokontrolera ATmega328, niestety trzeba go wymienić na inny egzemplarz. Natomiast w obu wymienionych wyżej sytuacjach konieczne jest wgranie do mikrokontrolera odpowiedniego bootloadera. Mogłoby się wydawać, że zaprogramowanie układu bootloaderem jest operacją trywialną, gdyż w środowisku Arduino IDE przewidziano do tego odpowiednią funkcję – w menu Tools pozycja Burn Bootloader (rysunek 2). Niestety opcja ta prawidłowo działa w przypadku wykorzystania programatorów USBasp czy Arduino ISP (zestaw Arduino pracujący jako programator). Natomiast próba zaprogramowania bootloadera popularnym programatorem AVRISP mkII często kończy się niepowodzeniem pokazanym na rysunku 3:

 

Rys. 2. W Arduino wyróżniono funkcję do zaprogramowania bootloadera

Rys. 2. W Arduino wyróżniono funkcję do zaprogramowania bootloadera

 

Rys. 3. Próba wgrania bootloadera programatorem AVRISP mkII zwykle kończy się komunikatem o błędzie

Rys. 3. Próba wgrania bootloadera programatorem AVRISP mkII zwykle kończy się komunikatem o błędzie

 

Wynika to z tego, że Arduino IDE używa do współpracy z programatorem AVRISP mkII sterownika libusb , natomiast niemal każdy użytkownik mikrokontrolerów AVR ma zainstalowane środowisko AVR Studio lub Atmel Studio, które do współpracy z programatorem AVRISP mkII wykorzystuje sterowniki firmy Jungo (rysunek 4 ). Można oczywiście odinstalować sterownik firmy Jungo, jednak w takim przypadku nie będzie można korzystać z programatora w środowisku firmy Atmel.

 

Rys. 4. Po zainstalowaniu środowiska AVR Studio lub Atmel Studio do obsługi programatora AVRISP mkII jest przeznaczony sterownik firmy Jungo, z który nie współpracuje Arduino

Rys. 4. Po zainstalowaniu środowiska AVR Studio lub Atmel Studio do obsługi programatora AVRISP mkII jest przeznaczony sterownik firmy Jungo, z który nie współpracuje Arduino

 

O autorze