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.
Dodatkowo, jeśli pracujesz nad projekt wymagający Arduino być w określonym stanie, gdy jest włączony, na przykład uruchamiając określony program, wtedy użycie programu ładującego może być przydatne. 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?
Mogą istnieć cztery możliwe powody, dla których Twoja płyta może potrzebować nowego programu ładującego:
- Brak preinstalowanego bootloadera: Często zdarza się, że istnieje wiele samodzielnych projektów ATMEGA328P, w których lutujesz swój 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.
- Wymieniony bootloader: Mogłeś zastąpić swój program ładujący zmodyfikowanym programem ładującym innej firmy, który mógł być uszkodzony.
- Uszkodzony program ładujący: To najmniej prawdopodobny scenariusz. Jednak w niektórych przypadkach pamięć flash Arduino może ulec uszkodzeniu.
- Rozszerzona pamięć: Jeśli zastąpił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).
Kod powinien wyglądać tak, abyś wiedział, że jesteś na dobrej drodze.
od Narzędzia zakładka, przejdź do Programista następnie kliknij Arduino jako dostawca usług internetowych jak pokazano niżej.
Wreszcie od Narzędzia kartę ponownie, kliknij Wypal program ładujący jak pokazano.
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 Dick Streefland Mały USB i Limor Fried's USBtinyISP. 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 to najlepsza opcja, ponieważ tak jest kompatybilny z różnymi językami programowania i oprogramowaniem, dzięki czemu jest wszechstronnym narzędziem dla każdego Użytkownik 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.
Notatka: Płytka docelowa powinna być prawidłowo włączona przed wypróbowaniem tej metody. W przeciwnym razie nie będziesz mógł sflashować .klątwa plik do celu.
Dla zaawansowanych użytkowników istnieje bardziej złożony sposób instalacji programu ładującego za pomocą wiersza poleceń. Przechodzenie do tego etapu nie jest konieczne, ale daje możliwość modyfikowania lub ponownej kompilacji kodu w celu uzyskania bardziej spersonalizowanego doświadczenia.
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 -Cusbtiny-Pm328p-w-mi-Uwylewać:w:0x05:M-Ubezpiecznik:w:0xD6:M-Uluz:w:0xFF:M
Po skonfigurowaniu bitów bezpiecznika następnym krokiem jest przesłanie skompilowanego pliku .hex na płytkę docelową i ustawienie bitów blokujących. Umożliwi to uruchomienie programu na płycie. Upewnij się, że jesteś w tym samym katalogu, co plik optiboot_atmega328.hex plik przed wprowadzeniem tego polecenia:
avrdude-B 19200 -Cusbtiny-Pm328p-w-mi-Ubłysk:w:hexnazwapliku.hex-Uzamek:w:0x0F:M
Notatka: Te polecenia są przeznaczone dla Arduino Uno. Będziesz musiał zrefaktoryzować bity bezpieczników dla swojej płyty, które znajdują się w pliku tablica.txt plik i dostosuj Parametry numeru części AVRDUDE jak również dla nich do pracy.
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.