Spisu treści:

Przewodnik spalania Atmega328P-PU Bootloader (Optiboot): 12 kroków
Przewodnik spalania Atmega328P-PU Bootloader (Optiboot): 12 kroków

Wideo: Przewodnik spalania Atmega328P-PU Bootloader (Optiboot): 12 kroków

Wideo: Przewodnik spalania Atmega328P-PU Bootloader (Optiboot): 12 kroków
Wideo: Daj się wygadać #33 - JAK SPRAWDZIĆ SPALANIE, SILNIKI CZY DANE TECHNICZNE? *PRZEWODNIK PO FORACH* 2024, Listopad
Anonim
Instrukcja nagrywania bootloadera Atmega328P-PU (Optiboot)
Instrukcja nagrywania bootloadera Atmega328P-PU (Optiboot)

Kolejny przewodnik dotyczący nagrywania bootloadera Atmega. Ale tym razem stawiam na pierwszą próbę, że ci się uda!!

To jest samouczek dotyczący nagrywania bootloadera Nicka Gammonsa dla płyt Arduino.

Krok 1: Kilka słów

Kilka słów
Kilka słów

Mikrokontroler Atmega328P-PU to jeden z najpopularniejszych układów Arduino, które są stosowane w szerokim zakresie na całym świecie. Ale co najważniejsze, Atmega z nagimi kośćmi nadal robi to, co potrafi standardowy Uno R3. Głównym powodem, dla którego uwielbiam ten mikrokontroler, jest tryb „Low Power”. Napisałem kilka nowych szkiców do kilku czujników i od jakiegoś czasu je testuję.

Za kilka lat, kiedy zacząłem bawić się Arduino, moim pierwszym zamówieniem był mikrokontroler Atmega328P. Później zdałem sobie sprawę, że te, które zamówiłem z Aliexpress, to puste żetony. Żetony na Ali są bardzo tanie, można je kupić już od 1,40$. Ale nie zawierały Uno Bootloadera (Optiboot) i bez niego nie mogłem wgrać żadnych szkiców. Ciężka przerwa ha??!! To był dla mnie naprawdę zimny prysznic……. Więc szukałem sposobu na spalenie bootloadera w żetony. Próbowałem 5 lub 6 metod, ale bez powodzenia. Po tygodniu znalazłem na forum strony temat, który wspomniał o samouczku nagrywania bootloadera Nicka Gammona. Pierwsza próba i SUKCES!!:D Teraz pokażę ci, jak łatwo nagrać bootloader do pustych układów Atmega328P-PU bez zepsucia rzeczy w Arduino IDE.

Krok 2: Co to jest bootloader? (Optiboot)

Bootloader to niewielki program (plik HEX, 0.5Kbyte) pozwalający na wgrywanie szkiców do pamięci flash bezpośrednio z Arduino IDE. Plik HEX zawsze działa przed programem głównym i dlatego jest potrzebny.

Bez bootloadera:

-Mikrokontroler nadal MOŻNA ZAPROGRAMOWAĆ!(tak, jest to możliwe), ale do tego potrzebny byłby dedykowany programator AVR. I nie jest tanio!

- Nie można go zaprogramować przez Arduino IDE.

Obsługiwane bootloadery tej metody:

Atmega8 (1024 bajty)

Atmega168 Optiboot (512 bajtów)

Atmega328 Optiboot (dla Uno itp. przy 16 MHz) (512 bajtów)

Atmega328 (8 MHz) dla Lilypad itp. (2048 bajtów)

Atmega32U4 dla Leonardo (4096 bajtów) Atmega1280 Optiboot (1024 bajty)

Atmega1284 Optiboot (1024 bajty)

Atmega2560 z poprawkami problemu z zegarem watchdoga (8192 bajty)

Atmega16U2 - bootloader w układzie interfejsu USB Uno

Atmega256RFR2 - bootloader na płycie Pinoccio Scout

Kod dla następujących bootloaderów jest zawarty w szkicu i zostanie pobrany w zależności od wykrytej sygnatury.

Mamy więc wszystko, czego potrzebujemy.

Krok 3: Mistrz szkiców Arduino

Mistrz szkiców Arduino
Mistrz szkiców Arduino
Mistrz szkiców Arduino
Mistrz szkiców Arduino
Mistrz szkiców Arduino
Mistrz szkiców Arduino

Przede wszystkim potrzebujesz biblioteki arduino.

Pobierz go stąd:

Lub pobierz go stąd.

Po pobraniu rozpakuj go do biblioteki Arduino forlder i poszukaj Board Programmer. Otwórz go i uruchom Board Programmer.ino.

Krok 4: Konfiguracja sprzętu

Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu

Istnieją 3 sposoby podłączenia przed programowaniem:

- Użyj osłony AVR ISP

- Arduino A do Arduino B

- I metoda tabliczki do krojenia chleba

Na zdjęciu widać jak podłączyć. Na płytce stykowej kondensatory ceramiczne nie są tak naprawdę potrzebne, ale trzeba dodać kryształ 16 MHz.

Tym razem używam tarczy AVR ISP.

Celem tej metody jest to, że program używa monitora szeregowego do uzyskania dostępu do pamięci flash w celu zapisania Optiboot (bootloader)

Krok 5: Programowanie

Programowanie!
Programowanie!
Programowanie!
Programowanie!

Po zakończeniu konfiguracji sprzętu uruchom Board Programmer.ino!

Skompiluj i prześlij do Arduino, ale nie zamykaj okna!! Będziesz tego potrzebował:)

Przesyłanie zajmie kilka sekund.

Krok 6: Odłącz

Po przesłaniu szkicu odłącz Arduino od komputera i podłącz wszystko, jeśli planujesz to zrobić na płytce prototypowej.

Jeśli korzystasz z nakładki AVR, umieść układ Atmega w gnieździe ZIF i "zablokuj" go.

Bardzo ważne: Dopóki sprzęt nie jest skonfigurowany, procesor nie może otrzymać VCC!! W ten sposób ryzykujesz uszkodzenie!

Krok 7: Połącz

Łączyć!
Łączyć!

Ok! Sprzęt jest skonfigurowany i wszystko jest na swoim miejscu, podłączamy Arduino do komputera.

Następnie otwórz monitor szeregowy i ustaw szybkość transmisji 115200, a zobaczysz to.

W monitorze szeregowym widać, że Arduino wszedł w tryb programowania. Fajny!!:)

Ponieważ chcemy zaprogramować Uno (Atmega328P) wpisz w komunikacie „U” i naciśnij enter.

Krok 8: Stan programowania

Stan programowania!
Stan programowania!

W następnym oknie zobaczysz to.

Nie wyjdziemy ani nie zweryfikujemy, wpiszemy G i wciśniemy Enter!

Krok 9: Zaczyna się zabawa!:)

Zaczyna się zabawa!:)
Zaczyna się zabawa!:)

Po wciśnięciu Enter zobaczysz to:

Kasowanie chipa…Pisanie bootloadera…

Potwierdzam stronę zaczynającą się od 0x7E00Potwierdzam stronę zaczynającą się od 0x7E80

Potwierdzam stronę zaczynającą się od 0x7F00

Zatwierdzam stronę zaczynającą się od 0x7F80

Napisane. Weryfikuję…

Nie znaleziono błędów.

Zapisywanie bezpieczników …LFuse = 0xFF

HFuse = 0xDE

EFuse = 0xFD

Bajt blokady = 0xEF Kalibracja zegara = 0x9E

Gotowe.

Tryb programowania wyłączony. Wpisz „C”, gdy będziesz gotowy, aby kontynuować z innym chipem…

I szczęśliwego dnia!!:D Twój układ Atmega328P jest teraz gotowy do przesyłania szkiców!

To było łatwe, prawda?:)

Krok 10: Nowy chip

Jeśli chcesz zaprogramować inny układ, odłącz Arduino od komputera, wymień układ na pusty. Podłącz ponownie Arduino i ponownie wykonaj te czynności.

Jeśli monitor szeregowy nie odpowiada po ponownym podłączeniu Arduino, nie panikuj tylko go zamknij i otwórz nowy.

Krok 11: ZRZECZENIE SIĘ

NIE POSIADAM ŻADNEGO Z TEGO!! Cała zasługa należy do Nicka Gammona!!

Właśnie pokazałem tę metodę w tym Instruktażowym.

Mam nadzieję, że okaże się to przydatne.

Miłego dnia.

Krok 12: Kiedy wydarzą się dziwne rzeczy

Kiedy dzieją się dziwne rzeczy
Kiedy dzieją się dziwne rzeczy
Kiedy dzieją się dziwne rzeczy
Kiedy dzieją się dziwne rzeczy

Niedawno otrzymałem Arduino Nano z procesorem Atmega328P-MU.

Więc próbowałem przesłać do niego szkic, ale nie mogłem. Procesor na nic nie odpowiedział opcjami Atmega328.

OK! Więc może bootloader jest uszkodzony i wymaga przepisania. Połączyłem go z innym arduino i wykonałem wypalanie bootloadera. Wciąż nic……!!!!

Ok, potrzebuję przerwy (kawa i papieros)!! Jako ostatnią szansę ponownie wybrałem Arduino Uno jako cel. Przesyłanie zakończone:D

W tej chwili mam Nano, który działa jak Arduino Uno. Nie wiem, dlaczego tak się stało, ale myślę, że jest to spowodowane podpisem procesora. W każdym razie to naprawdę uprzyjemniło mi dzień i jest trochę zabawne:)

Zalecana: