1 lutego, 2022

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.

mcu

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.

ATmega328

schemat pinów mikrokontrolera ATMEGA328 jest pokazany poniżej.

ATMEGA328

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.

ATMEGA328

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.

ATMEGA328

po prostu przejdź do „Narzędzia” i kliknij „BurnBootloader”. Docelowy mikrokontroler ATMEGA328 zostanie zaprogramowany za pomocą bootloadera.

ATMEGA328

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.

ATMEGA328

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”.

ATMEGA328

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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.