jak nagrać bootloader na mikrokontrolerze ATMEGA328
wprowadzenie
jeśli oglądasz ten projekt, być może użyłeś płyty Arduino. Mikrokontroler ATmega328 na ArduinoUNO może ulec awarii po pewnym czasie (lub nieprawidłowym połączeniu). Aby ponownie użyć ArduinoBoard, potrzebujesz nowego ATmega328IC z bootloaderem. Istnieją inne powody, aby nagrać na nim bootloader ATmega328, jeśli napisałeś własny Bootloader i chcesz go przetestować, lub chcesz dowiedzieć się więcej o sytuacji pracy mikrokontrolerów.
ostrzeżenie: jeśli nie znasz tego rodzaju rzeczy, nie zaleca się dostosowywania bootloadera w Arduino.
co to jest Bootloader?
Mówiąc najprościej, Bootloader jest małym kawałkiem kodu (kod wykonywalny w .format hex), który znajduje się w pamięci mikrokontrolera. Bootloader w Arduino pozwala nam zaprogramować Arduino przez port szeregowy, czyli za pomocą kabla USB.
zadaniem bootloadera w Arduino jest zaakceptowanie kodu z komputera i umieszczenie go w pamięci mikrokontrolera.
po co nam Bootloader?
tradycyjnie mikrokontrolery takie jak ATMEL ATMEGA328 MCU są programowane za pomocą dedykowanych programistów, które wiążą się z pewnymi osobliwymi połączeniami. Bootloader eliminuje tę złożoność i zapewnia nam prosty sposób programowania mikrokontrolera, czyli za pomocą kabla USB.
Bootloader znajduje się w specjalnym bezpiecznym miejscu programowalnej pamięci flash. Mikrokontrolery zwykle zajmują mniej niż 1KB pamięci.
czego potrzebuję, aby wypalić Bootloader na ATMEL ATMEGA328?
jak wspomniano wcześniej, jeśli chcesz przesłać program do zupełnie nowego mikrokontrolera ATMEGA328, musisz użyć specjalnego programatora (i ustawić bit bezpiecznika). Ale jeśli wypalisz Bootloader na chipie ATMEGA328, wystarczy tylko zaprogramować mikrokontroler przez port szeregowy (kabel USB).
gdy mikrokontroler ATMEGA328 jest gotowy do Bootloadera, możesz go po prostu użyć. Jeśli planujesz stworzyć własną płytkę Arduino, użyj jej jako płyty Arduino (jako alternatywy) lub użyj jej jako mikrokontrolera.
jak wypalić Bootloader na ATMEGA328?
istnieje kilka sposobów na wypalenie bootloadera na ATMEGA328IC. Pierwszą metodą jest użycie dedykowanego sprzętu programistycznego AVR. Drugą metodą jest użycie działającej płyty Arduino jako programatora i wypalenie bootloadera na docelowym mikrokontrolerze Arduino ATMEGA328.
w tym projekcie użyję drugiej metody, którą jest użycie Arduino jako programisty.
schemat obwodu
schemat obwodu do wypalania bootloadera na ATMEGA328 przy użyciu mikrokontrolera Arduino jest pokazany poniżej.
schemat pinów mikrokontrolera ATMEGA328 jest pokazany poniżej.
wymagane komponenty
ArduinoUNO
mikrokontroler ATmega328 IC
kryształ 16MHz
Kondensator ceramiczny 22pfx2
rezystor 10kω
przycisk
rezystor 330ω
LED
płyta chlebowa
podłącz przewody
zasilacz 5V
proces programowania bootloadera na arkuszu danych atmega328.
jak wspomniano wcześniej, ArduinoUNO jest używany jako programista AVR tutaj. Aby to osiągnąć, musisz przesłać specjalny program do swojej działającej tablicy ArduinoUNO, o nazwie „ArduinoISP”.
przed nawiązaniem połączenia podłącz działający Arduino, aby podłączyć UNO do komputera za pomocą kabla USB i wybierz odpowiednią płytę i PORT w ArduinoIDE.
teraz przejdź do ArduinoISP. Prześlij ten kod do ArduinoUNO, aby przekonwertować płytę ArduinoUNO na programator AVRISP.
po zakończeniu tego kroku wykonaj niezbędne połączenia (jeśli nie). Teraz przejdź do Narzędzia > programator i wybierz opcję” ArduinoasISP”. Po tym jesteś gotowy do wypalenia bootloadera.
po prostu przejdź do „Narzędzia” i kliknij „BurnBootloader”. Docelowy mikrokontroler ATMEGA328 zostanie zaprogramowany za pomocą bootloadera.
Prześlij obraz do pakietów ATMEGA328
po przesłaniu Bootloadera do mikrokontrolera ATmega328 możesz kontynuować przesyłanie szkicu testowego. Aby to zrobić, zachowaj te same połączenia jak wcześniej i otwórz wszelkie szkice, takie jak BlinkSketch.
nie zmieniaj żadnych opcji, to znaczy, że programator jest nadal ustawiony na „ArduinoasISP”. Teraz przytrzymaj przycisk ” Shift „na klawiaturze i kliknij ikonę” Prześlij”. Spowoduje to przesłanie szkicu do układu scalonego mikrokontrolera ATMEGA328 przy użyciu ArduinoUNO jako programisty.
po zakończeniu tej operacji możesz odłączyć ArduinoUNO od mikrokontrolera ATMEL ATMEGA328 i użyć ATMEGA328IC jako samodzielnego urządzenia, aby uruchomić na nim Blinksketch.
poniższy rysunek pokazuje mikrokontroler ATmega328 uruchomiony Blinksketch po przesłaniu za pomocą ArduinoUNO.
Uwaga: Aby przesłać kod do ArduinoUNO, upewnij się, że przełączasz programator z powrotem na „AVRISPmkII”.
podsumowanie
w tym projekcie pokazałem, jak wypalić Bootloader na mikrokontrolerze ATMEGA328. Jako dodatkową opcję pokazałem również, jak używać ArduinoUNO, aby przesłać szkic Arduino do ATMEGA328 za pomocą Bootloadera.