Jak zainstalować program ładujący Arduino

Jak zainstalować program ładujący Arduino

Instalacja bootloadera to pierwszy krok do ożywienia projektów Arduino. Jest to oprogramowanie, które pomaga często z łatwością przesyłać szkice Arduino na płytkę bez potrzeby stosowania specjalnego sprzętu do programowania.

Choć może to brzmieć jak nauka o rakietach, w rzeczywistości jest to prostsze niż myślisz — nawet dla początkujących. Pokażemy Ci, jak łatwo zainstalować (lub ponownie zainstalować) program ładujący na płycie Arduino w zaledwie kilku prostych krokach.

Ale najpierw, czym dokładnie jest bootloader na płycie Arduino?

Co to jest program ładujący?

Bootloader Arduino to mały program przechowywany w nieulotnej pamięci płyty, który jest wykonywany za każdym razem, gdy płyta jest włączana, ładowana z nowym kodem lub resetowana. Za każdym razem, gdy program ładujący jest wykonywany, inicjuje sprzęt płyty, a następnie ładuje główny szkic lub program, który jest przechowywany w pamięci flash płyty.

Warto zauważyć, że wszystkie płyty Arduino są dostarczane z fabrycznie zainstalowanym programem ładującym od ich producentów. Czasami możesz znaleźć płyty z wadliwymi programami ładującymi od razu po wyjęciu z pudełka. Jednak zdarza się to rzadko.

Dlaczego warto używać programu ładującego?

Istnieje kilka sytuacji, w których użycie programu ładującego Arduino może być przydatne. Na przykład, jeśli jesteś początkującym użytkownikiem platformy Arduino, użycie programu ładującego może ułatwić i przyspieszyć przesyłanie nowych programów na płytę główną. Dzieje się tak dlatego, że nie musisz używać zewnętrznych urządzeń programujących, takich jak programator lub konwerter USB-szeregowy, aby przesłać swój kod.

Jeśli pracujesz nad projektem, który wymaga częstych aktualizacji kodu, okaże się to bardzo przydatne. W takim przypadku użycie bootloadera może zaoszczędzić czas i wysiłek, ponieważ możesz po prostu przesłać nowy kod na płytkę bez konieczności korzystania z zewnętrznych urządzeń programujących.

Ponadto, jeśli pracujesz nad projektem, który wymaga, aby Arduino znajdowało się w określonym stanie po włączeniu, na przykład uruchamiając określony program, przydatne może być użycie programu ładującego. Bootloader pozwala ustawić początkowy stan płyty tak, aby po włączeniu automatycznie uruchamiał żądany program.

Wreszcie zapewnia sposób na odzyskanie Arduino, jeśli główny szkic zostanie uszkodzony lub w inny sposób nie działa.

Dlaczego brakuje mojego programu ładującego?

Obraz błędu z zielonymi jedynkami i zerami.

Mogą istnieć cztery możliwe powody, dla których Twoja płyta może potrzebować nowego programu ładującego:

  1. Brak wstępnie zainstalowanego programu ładującego : dość często zdarza się, że istnieje wiele samodzielnych projektów ATMEGA328P, w których lutujesz chip na płytce drukowanej i zdarza się, że chip się smaży. Możliwe więc, że wymieniłeś płytę na chip bez wcześniejszej instalacji bootloadera.
  2. Zastąpiony program ładujący : Twój program ładujący mógł zostać zastąpiony zmodyfikowanym programem ładującym innej firmy, który może być uszkodzony.
  3. Uszkodzony program ładujący : Jest to najmniej prawdopodobny scenariusz. Jednak w niektórych przypadkach pamięć flash Arduino może ulec uszkodzeniu.
  4. Rozszerzona pamięć : Jeśli wymieniłeś (flashowałeś) cały program ładujący swoją aplikacją, aby cieszyć się pozostałymi 2K pamięci programu, zdecydowanie brakuje twojego programu ładującego.

Oto, co musisz zrobić.

Instalowanie/ponowna instalacja programu ładującego Arduino

Mikrokontrolery są zwykle programowane przed lutowaniem na płytce drukowanej. Zwykle odbywa się to za pomocą programowania w systemie (ISP), takiego jak programowanie szeregowe w obwodzie (ICSP), które umożliwia programowanie mikrokontrolera za pomocą zewnętrznego programatora. Wielu producentów mikrokontrolerów, takich jak Atmel i Microchip, umieszcza na swoich płytach nagłówek ISP w tym celu.

Korzystanie z innej płyty Arduino

Aby sflashować program ładujący na mikrokontrolerze ATmega328, musisz użyć nagłówka ICSP na płycie, zanim będziesz mógł zainstalować program ładujący przy użyciu drugiej płyty jako programisty ISP.

Uruchom Arduino IDE, przejdź do ArduinoISP , jak pokazano poniżej, i prześlij przykładowy kod na płytkę, której zamierzasz używać jako programista. (Postępuj zgodnie z samouczkiem wideo dotyczącym podłączania sprzętu).

Zrzut ekranu przedstawiający nawigację Arduino IDE Plik>>Przykłady>>ArduinoISP>>ArduinoISP

Kod powinien wyglądać tak, abyś wiedział, że jesteś na dobrej drodze.

Przykładowy kod Arduino-IDE dla ISP

Z zakładki Narzędzia przejdź do Programisty , a następnie kliknij Arduino jako ISP , jak pokazano poniżej.

Zrzut ekranu narzędzi nawigacyjnych Arduino-IDE>>Programista>>Arduino jako ISP

Na koniec ponownie na karcie Narzędzia kliknij opcję Nagraj program ładujący , jak pokazano.

Zrzut ekranu przedstawiający nawigację Arduino-IDE przez Narzędzia>>Burn Bootloader

Po zakończeniu procesu płytka docelowa jest teraz gotowa do zaprogramowania.

Korzystanie z dedykowanego programatora

Dostępnych jest wiele urządzeń do programowania AVR dla tego rodzaju instalacji. Jedną z dobrych opcji, które możesz wypróbować, jest AVR Pocket Programmer (tylko Windows) oparty na USBtiny Dicka Streeflanda i USBtinyISP Limora Frieda . Oferuje prostszy sposób programowania mikrokontrolerów AVR, takich jak te, które można znaleźć na płytach Arduino. Poza tym, że jest zasilany przez złącze USB, jest najlepszą opcją, ponieważ jest kompatybilny z różnymi językami programowania i oprogramowaniem, co czyni go wszechstronnym narzędziem dla każdego użytkownika Arduino.

Możesz także wypróbować inne opcje, takie jak oficjalny programator Atmel-ICE dla mikrokontrolerów ARM — zwłaszcza jeśli nie korzystasz z systemu Windows.

Podłącz płytkę Arduino do programatora i sflashuj bootloader. Zapoznaj się z poniższym samouczkiem wideo.

Proces powinien być prosty i nie powinien zająć więcej niż 20 sekund.

Uwaga: Płyta docelowa powinna być prawidłowo włączona przed wypróbowaniem tej metody. W przeciwnym razie nie będziesz mógł sflashować pliku .hex do swojego celu.

Dla zaawansowanych użytkowników istnieje bardziej złożony sposób instalacji programu ładującego za pomocą wiersza poleceń. Przejście do tego etapu nie jest konieczne, ale daje możliwość modyfikowania lub ponownej kompilacji kodu w celu uzyskania bardziej dostosowanego środowiska.

Pierwszym krokiem w tym procesie jest skonfigurowanie bitów bezpieczników, które są częścią układu AVR, oraz ustawień kontrolnych, takich jak użycie zewnętrznego kryształu. Użyj następującego polecenia, aby ustawić swoje bity bezpieczników:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

Po skonfigurowaniu bitów bezpiecznika następnym krokiem jest przesłanie skompilowanego pliku. hex na płytkę docelową i ustaw bity blokujące. Umożliwi to uruchomienie programu na płycie. Upewnij się, że znajdujesz się w tym samym katalogu co plik optiboot_atmega328.hex przed wprowadzeniem tego polecenia:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

Uwaga: te polecenia dotyczą Arduino Uno. Będziesz musiał zrefaktoryzować bity bezpieczników dla twojej płyty znalezione w pliku board.txt i dostosować parametry numeru części AVRDUDE, aby działały.

Co dalej zrobisz z Arduino?

Bootloader Arduino sprawia, że ​​programowanie jest tak łatwe, nawet dla początkujących. Miejmy nadzieję, że teraz możesz przesłać własne niestandardowe szkice do Arduino i przywrócić program ładujący dla przyszłych projektów Arduino DIY.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *