AVR Online Flasher to narzędzie do wgrywania firmware do mikrokontrolerów AVR wyposażonych w bootloader.
AVR Flasher Online to darmowe narzędzie pozwalające wgrywać firmware do mikrokontrolerów AVR wyposażonych w bootloader bezpośrednio z poziomu przeglądarki internetowej. Nie musisz instalować Arduino IDE, AVRDUDE ani dodatkowego programu do flashowania mikrokontrolera.
Wystarczy podłączyć urządzenie do komputera przez USB lub konwerter USB–UART, wybrać odpowiedni mikrokontroler albo płytkę Arduino, wskazać plik Intel HEX i rozpocząć programowanie.
Narzędzie zostało przygotowane przez ELNODO z myślą o elektronikach, programistach systemów embedded, serwisach urządzeń elektronicznych oraz osobach pracujących z mikrokontrolerami AVR.
Programowanie mikrokontrolerów AVR bezpośrednio z przeglądarki
Standardowo wgranie programu do mikrokontrolera AVR kojarzy się z koniecznością instalacji Arduino IDE, konfiguracją AVRDUDE albo użyciem zewnętrznego programatora ISP. Jeżeli jednak mikrokontroler posiada już odpowiedni bootloader, firmware może zostać przesłany przez port szeregowy. AVR Flasher Online upraszcza cały proces i umożliwia wykonanie go bezpośrednio w przeglądarce. Narzędzie wykorzystuje komunikację szeregową z urządzeniem i obsługuje popularne protokoły bootloaderów stosowane w płytkach Arduino oraz innych urządzeniach opartych o mikrokontrolery AVR.
Dzięki temu możesz wykorzystać je m.in. do:
- wgrywania gotowych plików
.hexdo Arduino, - aktualizacji firmware urządzeń wykorzystujących AVR,
- programowania ATmega328P przez bootloader,
- aktualizacji oprogramowania urządzenia bez udostępniania kodu źródłowego,
- szybkiego testowania kolejnych wersji firmware,
- serwisowania urządzeń elektronicznych,
- wgrywania oprogramowania produkcyjnego do gotowych urządzeń.
Cały proces odbywa się lokalnie pomiędzy przeglądarką a podłączonym urządzeniem.
Obsługiwane mikrokontrolery i płytki Arduino
AVR Flasher został przygotowany jako narzędzie uniwersalne, dlatego nie ogranicza się wyłącznie do jednej płytki Arduino. Wbudowane profile pozwalają szybko skonfigurować parametry dla popularnych urządzeń, między innymi:
- Arduino Uno – ATmega328P
- Arduino Nano – ATmega328P
- Arduino Nano Old Bootloader
- Arduino Pro Mini – ATmega328P
- Arduino Nano / Diecimila – ATmega168
- Arduino Mega – ATmega1280
- Arduino Mega 2560 – ATmega2560
- Arduino Leonardo – ATmega32U4
- Arduino Micro – ATmega32U4
Dostępny jest również tryb Custom AVR, który pozwala ręcznie określić parametry komunikacji i bootloadera. Dzięki temu narzędzie może być wykorzystane także z własnymi urządzeniami elektronicznymi wykorzystującymi mikrokontrolery AVR.
Obsługiwane bootloadery AVR
Różne płytki i mikrokontrolery mogą korzystać z różnych sposobów komunikacji z bootloaderem. AVR Flasher Online został zaprojektowany tak, aby obsługiwać kilka najpopularniejszych protokołów.
STK500v1 / Arduino / Optiboot
To jeden z najczęściej spotykanych sposobów programowania mikrokontrolerów AVR przez bootloader. Jest wykorzystywany między innymi w urządzeniach bazujących na:
- ATmega328P,
- ATmega168,
- Arduino Uno,
- Arduino Nano,
- Arduino Pro Mini.
Narzędzie umożliwia ustawienie odpowiedniej prędkości transmisji i automatyczne wykonanie resetu przed rozpoczęciem programowania.
STK500v2 / Wiring
Protokół wykorzystywany między innymi przez większe mikrokontrolery AVR oraz płytki takie jak Arduino Mega 2560. AVR Flasher uwzględnia sposób programowania dużych pamięci FLASH oraz odpowiednią obsługę stron pamięci.
AVR109 / Caterina
Protokół spotykany między innymi w płytkach wykorzystujących mikrokontroler ATmega32U4, takich jak:
- Arduino Leonardo,
- Arduino Micro.
W przypadku tych urządzeń dostępna jest również funkcja uruchamiania bootloadera przy wykorzystaniu mechanizmu 1200 bps touch.
Jak wgrać plik HEX do Arduino online?
Obsługa AVR Flashera została zaprojektowana tak, aby cały proces programowania można było wykonać w kilku krokach.
1. Podłącz urządzenie do komputera
Podłącz płytkę Arduino lub własne urządzenie AVR do komputera. W zależności od konstrukcji urządzenia komunikacja może odbywać się przez:
- wbudowany interfejs USB,
- konwerter USB–UART,
- układ CH340,
- FT232,
- CP2102,
- inny interfejs portu szeregowego.
Mikrokontroler musi posiadać działający bootloader umożliwiający programowanie przez interfejs szeregowy.
2. Wybierz płytkę lub mikrokontroler
W sekcji Wybierz urządzenie wybierz odpowiedni profil. Przykładowo dla standardowego Arduino Uno wybierz:
Arduino Uno / ATmega328P (Optiboot)
Program automatycznie ustawi między innymi:
- protokół bootloadera,
- prędkość transmisji,
- wielkość strony pamięci FLASH,
- maksymalny obszar programu,
- oczekiwaną sygnaturę mikrokontrolera.
Jeżeli korzystasz z własnego urządzenia, możesz wybrać Custom AVR i ręcznie skonfigurować wymagane parametry.
3. Wybierz port COM
Kliknij:
Wybierz port COM
Przeglądarka wyświetli listę dostępnych urządzeń szeregowych. Wybierz port odpowiadający programowanemu urządzeniu. AVR Flasher komunikuje się z urządzeniem bezpośrednio z przeglądarki. Nie jest wymagane instalowanie dodatkowej aplikacji do programowania.
4. Wczytaj firmware HEX
Przeciągnij plik .hex do pola Wczytaj firmware albo kliknij przycisk wyboru pliku. Obsługiwany jest standardowy format:
Intel HEX
Jest to format bardzo często generowany przez kompilatory i środowiska przeznaczone dla mikrokontrolerów AVR. Po wczytaniu pliku aplikacja analizuje jego zawartość oraz wyświetla informacje takie jak:
- nazwa pliku,
- ilość danych przeznaczonych do zapisania,
- zakres adresów pamięci,
- procent zajętości pamięci programu.
Dodatkowo wyświetlany jest wykres kołowy zajętości pamięci FLASH, dzięki któremu można szybko ocenić, jak dużą część dostępnej pamięci zajmuje firmware.
5. Sprawdź zajętość pamięci FLASH
Przed rozpoczęciem programowania AVR Flasher porównuje firmware z limitem pamięci określonym dla wybranego urządzenia. Wizualizacja pokazuje:
- ilość danych zapisanych przez firmware,
- wolne miejsce w pamięci,
- procent wykorzystania dostępnej przestrzeni,
- najwyższy używany adres programu.
Jeżeli firmware przekracza dozwolony zakres pamięci, aplikacja zgłosi błąd jeszcze przed rozpoczęciem programowania. Pozwala to zmniejszyć ryzyko wybrania niewłaściwego pliku lub profilu mikrokontrolera.
6. Wybierz opcje programowania
Przed flashowaniem możesz wybrać dodatkowe opcje.
Automatyczny reset
Aplikacja może wykorzystać linie DTR/RTS, aby automatycznie uruchomić bootloader przed rozpoczęciem programowania. Jest to standardowy sposób wykorzystywany przez wiele płytek Arduino.
Weryfikacja po zapisie
Po zakończeniu programowania pamięć FLASH może zostać ponownie odczytana i porównana z plikiem firmware. Pozwala to sprawdzić, czy program został zapisany prawidłowo.
Pomijanie pustych stron
Jeżeli jest to obsługiwane przez wybrany protokół, aplikacja może pominąć strony pamięci zawierające wyłącznie wartości 0xFF. Może to przyspieszyć proces programowania.
Sprawdzenie sygnatury mikrokontrolera
AVR Flasher może odczytać sygnaturę podłączonego mikrokontrolera i porównać ją z wybranym profilem. Jeżeli przykładowo wybrano ATmega328P, a urządzenie zgłosi inną sygnaturę, programowanie może zostać zatrzymane. Jest to dodatkowe zabezpieczenie przed przypadkowym użyciem niewłaściwego profilu.
7. Kliknij „Flashuj mikrokontroler”
Jeżeli port, firmware i konfiguracja są poprawne, aktywowany zostanie przycisk:
Flashuj mikrokontroler
Po jego wybraniu aplikacja:
- otworzy port szeregowy,
- uruchomi bootloader,
- wykona synchronizację,
- sprawdzi mikrokontroler,
- zapisze pamięć FLASH,
- opcjonalnie zweryfikuje zapisane dane.
Postęp operacji jest prezentowany na bieżąco. Podczas programowania nie należy odłączać przewodu USB ani zasilania urządzenia.
Jak uzyskać plik HEX z Arduino IDE?
AVR Flasher nie kompiluje kodu Arduino. Do programowania potrzebny jest wcześniej przygotowany plik .hex. Jeżeli korzystasz z Arduino IDE, możesz skompilować swój projekt i wyeksportować wynikową wersję programu. Następnie uzyskany plik HEX można wykorzystać w AVR Flasher. Takie rozwiązanie jest szczególnie wygodne, gdy chcesz przekazać gotowe firmware innej osobie. Użytkownik nie potrzebuje wtedy:
- kodu źródłowego,
- zainstalowanego Arduino IDE,
- bibliotek użytych w projekcie,
- skonfigurowanego środowiska programistycznego.
Wystarczy przekazać mu gotowy plik .hex.
Czy AVR Flasher zastępuje programator ISP?
Nie.
AVR Flasher komunikuje się z mikrokontrolerem poprzez bootloader znajdujący się już w pamięci mikrokontrolera.
Jeżeli mikrokontroler:
- nie posiada bootloadera,
- ma uszkodzony bootloader,
- posiada nieprawidłowo skonfigurowane fuse bity,
- nie uruchamia interfejsu komunikacyjnego,
może być konieczne wykorzystanie zewnętrznego programatora ISP.
Programator ISP jest również wymagany podczas pierwszego wgrywania bootloadera do nowego mikrokontrolera.
AVR Flasher a AVRDUDE
AVRDUDE jest bardzo popularnym i rozbudowanym narzędziem do obsługi mikrokontrolerów AVR.
Wymaga jednak uruchomienia lokalnej aplikacji oraz odpowiedniej konfiguracji parametrów programowania.
AVR Flasher Online został przygotowany do innego zastosowania.
Jego zadaniem jest maksymalne uproszczenie procesu wgrywania gotowego firmware przez bootloader.
Użytkownik korzysta z graficznego interfejsu, wybiera urządzenie oraz plik HEX, a aplikacja przeprowadza pozostałe etapy programowania.
Najczęstsze problemy podczas flashowania AVR
Flasher nie może połączyć się z bootloaderem
Najczęstsze przyczyny to:
- wybrany niewłaściwy port COM,
- niewłaściwy baud rate,
- wybrany zły bootloader,
- brak automatycznego resetu,
- bootloader nie znajduje się w mikrokontrolerze.
W przypadku Arduino Nano warto również sprawdzić, czy urządzenie korzysta z nowego czy starego bootloadera.
Arduino Nano nie chce się programować
Starsze wersje Arduino Nano mogą korzystać z innego bootloadera i innej prędkości transmisji niż nowsze egzemplarze.
W AVR Flasherze dostępne są dlatego dwa osobne profile:
- Arduino Nano – nowy bootloader,
- Arduino Nano – Old Bootloader.
Jeżeli jeden profil nie działa, sprawdź drugi.
Leonardo lub Micro zmienia port COM
Arduino Leonardo i Micro wykorzystują mikrokontroler ATmega32U4 i bootloader Caterina.
Po uruchomieniu bootloadera urządzenie może ponownie zgłosić się do systemu jako inny port szeregowy.
W takim przypadku po uruchomieniu trybu bootloadera może być konieczne ponowne wskazanie portu.
Firmware jest zbyt duży
Jeżeli plik HEX przekracza maksymalny obszar programu dostępny dla wybranego profilu, AVR Flasher nie pozwoli rozpocząć programowania.
Sprawdź:
- czy wybrano właściwy mikrokontroler,
- czy firmware został skompilowany dla właściwej płytki,
- czy rozmiar programu nie przekracza dostępnej pamięci.
Bezpieczeństwo i prywatność
AVR Flasher komunikuje się bezpośrednio z portem szeregowym udostępnionym przez przeglądarkę.
Użytkownik sam wybiera urządzenie, do którego strona otrzyma dostęp.
Firmware jest analizowany lokalnie przez aplikację.
Narzędzie zostało przygotowane przede wszystkim do wygodnego programowania urządzeń poprzez bootloader i nie umożliwia zmiany fuse bitów ani lock bitów mikrokontrolera.
Najczęściej zadawane pytania – AVR Flasher Online
Czy mogę wgrać plik HEX do Arduino bez Arduino IDE?
Tak. Jeżeli posiadasz gotowy plik Intel HEX i płytka posiada kompatybilny bootloader, możesz wykorzystać AVR Flasher Online bez uruchamiania Arduino IDE.
Czy potrzebuję programatora USBasp?
Nie, jeżeli mikrokontroler posiada działający bootloader i może być programowany przez port szeregowy.
USBasp lub inny programator ISP będzie potrzebny między innymi wtedy, gdy bootloader nie jest jeszcze wgrany.
Czy AVR Flasher działa z ATmega328P?
Tak. Narzędzie posiada gotowe profile między innymi dla Arduino Uno, Nano i Pro Mini wykorzystujących ATmega328P.
Czy można programować Arduino Mega 2560?
Tak. Dostępny jest profil Arduino Mega 2560 wykorzystujący protokół STK500v2/Wiring.
Czy można programować Arduino Leonardo?
Tak. Obsługiwany jest ATmega32U4 oraz bootloader Caterina/AVR109.
Czy mogę używać własnej płytki AVR?
Tak. Tryb Custom AVR umożliwia ręczne skonfigurowanie podstawowych parametrów bootloadera i pamięci.
Czy można wgrać bootloader tym narzędziem?
Nie. AVR Flasher wykorzystuje bootloader już znajdujący się w mikrokontrolerze. Do pierwszego wgrania bootloadera zazwyczaj potrzebny jest programator ISP i narzędzie np. avrdude.
Czy narzędzie działa na telefonie?
Do działania wymagane jest środowisko przeglądarki umożliwiające bezpośrednią komunikację z portem szeregowym urządzenia. Najlepszym rozwiązaniem jest korzystanie z komputera i kompatybilnej przeglądarki Chromium.
Darmowe narzędzia dla elektroników od ELNODO
AVR Flasher Online jest częścią zestawu darmowych narzędzi przygotowanych przez ELNODO dla elektroników, programistów embedded i osób zajmujących się projektowaniem urządzeń elektronicznych.
ELNODO zajmuje się profesjonalnym projektowaniem elektroniki – od koncepcji i schematu, poprzez PCB i firmware, aż po wykonanie prototypów oraz przygotowanie urządzenia do produkcji.
Jeżeli tworzysz własne urządzenie elektroniczne i potrzebujesz wsparcia w zaprojektowaniu elektroniki, oprogramowania mikrokontrolera lub przygotowaniu produktu do produkcji, zapraszamy do kontaktu.