Innholdsfortegnelse:

Atmega328P-PU Bootloader (Optiboot) Brennguide: 12 trinn
Atmega328P-PU Bootloader (Optiboot) Brennguide: 12 trinn

Video: Atmega328P-PU Bootloader (Optiboot) Brennguide: 12 trinn

Video: Atmega328P-PU Bootloader (Optiboot) Brennguide: 12 trinn
Video: M#1: Настройка ПЛК Outseal Mega с отладочной платой ATmega128 | Аутсил Дев. ПЛК Мега 2024, November
Anonim
Atmega328P-PU Bootloader (Optiboot) Burning Guide
Atmega328P-PU Bootloader (Optiboot) Burning Guide

Nok en Atmega bootloader som brenner giude. Men denne gangen satser jeg på det første forsøket du vil lykkes !!

Dette er Nick Gammons bootloader -opplæringsopplæring for Arduino -kort.

Trinn 1: Noen få ord

Noen få ord
Noen få ord

Atmega328P-PU mikrokontroller er en av de mest populære Arduino-brikkene som brukes i et bredt spekter over hele verden. Men viktigst av alt, de bare beinene Atmega gjør fortsatt det som standard Uno R3 kan gjøre. Hovedårsaken til at jeg elsker denne mikrokontrolleren er "Low Power" -modus. Jeg har skrevet noen nye skisser for noen få sensorer, og jeg tester dem en stund nå.

På noen få år da jeg begynte å spille med Arduino, var min første bestilling en Atmega328P mikrokontroller. Senere innså jeg at de jeg bestilte fra Aliexpress er blanke sjetonger. Sjetongene er veldig billige på Ali, du kan kjøpe dem fra 1,40 $. Men de har ikke inneholdt Uno Bootloader (Optiboot), og uten den kunne jeg ikke laste opp noen skisser. Tøff pause ha ?? !! Det var en skikkelig kald dusj for meg …. Så jeg var på utkikk etter en måte å brenne oppstartslasteren i sjetongene. Jeg har prøvd 5 eller 6 metoder, men uten hell. Etter en uke fant jeg et emne på et nettstedforum som nevnte Nick Gammons opplasting av opplasting av bootloader. Første forsøk og suksess !!: D Nå skal jeg vise deg hvordan du enkelt kan brenne oppstartslasteren til tomme Atmega328P-PU-brikker uten å rote opp ting i Arduino IDE.

Trinn 2: Hva er oppstartslaster? (Optiboot)

Bootloader er et lite program (HEX -fil, 0,5Kbyte) som lar deg laste opp skisser til flashminnet direkte fra Arduino IDE. HEX -filen kjører alltid før hovedprogrammet, og det er derfor den er nødvendig.

Uten oppstartslaster:

-Mikrokontrolleren KAN fortsatt programmeres! (Ja, det er mulig), men du trenger en dedikert AVR -programmerer for å gjøre det. Og det er ikke billig!

- Det kan ikke programmeres gjennom Arduino IDE.

Støttede bootloadere av denne metoden:

Atmega8 (1024 byte)

Atmega168 Optiboot (512 byte)

Atmega328 Optiboot (for Uno etc. ved 16 MHz) (512 byte)

Atmega328 (8 MHz) for Lilypad etc. (2048 byte)

Atmega32U4 for Leonardo (4096 byte) Atmega1280 Optiboot (1024 byte)

Atmega1284 Optiboot (1024 byte)

Atmega2560 med reparasjoner for vekterhunder -timerproblem (8192 byte)

Atmega16U2 - oppstartslasteren på USB -grensesnittbrikken til Uno

Atmega256RFR2 - oppstartslasteren på Pinoccio Scout -brettet

Koden for følgende oppstartslastere er innarbeidet i skissen, og vil bli lastet ned avhengig av hvilken signatur som oppdages.

Så vi har alt vi trenger.

Trinn 3: Arduino Sketches Master

Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master

Først av alt trenger du arduino -biblioteket.

Last den ned her:

Eller last den ned herfra.

Etter at du har lastet ned pakke den ut til Arduino biblioteker forlder og se etter Board Programmer. Åpne den og kjør Board Programmer.ino.

Trinn 4: Maskinvareoppsettet

Maskinvareoppsettet
Maskinvareoppsettet
Maskinvareoppsettet
Maskinvareoppsettet
Maskinvareoppsettet
Maskinvareoppsettet
Maskinvareoppsettet
Maskinvareoppsettet

Det er 3 måter å koble til før du programmerer:

- Bruk AVR ISP -skjoldet

- Arduino A til Arduino B

- Og brødbrettmetoden

På bildet kan du se hvordan du kobler til. På brødbrettet er de keramiske kondensatorene egentlig ikke nødvendig, men 16Mhz krystall må legges til.

Jeg bruker mitt AVR ISP -skjold denne gangen.

Målet med denne metoden er at programmet bruker den serielle skjermen for å få tilgang til flashminnet for å skrive Optiboot (bootloader)

Trinn 5: Programmeringen

Programmeringen!
Programmeringen!
Programmeringen!
Programmeringen!

Etter at maskinvareoppsettet er fullført, kjør Board Programmer.ino!

Kompiler og last opp til Arduino, men ikke lukk vinduet !! Du trenger det:)

Opplastingen tar noen sekunder.

Trinn 6: Koble fra

Etter at du har lastet opp skissen, kobler du Arduino fra PCen og kabler alt hvis du planlegger å gjøre dette på brødbrettet.

Hvis du bruker AVR -skjoldet, legger du Atmega -brikken i ZIF -kontakten og "låser" den.

Veldig viktig: Så lenge maskinvaren ikke er satt opp, må ikke prosessoren få VCC !! På den måten risikerer du skader !!

Trinn 7: Koble til

Koble!
Koble!

Ok! Maskinvaren er satt opp og alt er på plass, vi kobler Arduino til PCen.

Åpne deretter seriell skjerm og angi overføringshastigheten 115200, og du vil se dette.

I den serielle skjermen kan du se at Arduino har gått inn i programmeringsmodus. Kul!!:)

Siden vi ønsker å programmere Uno (Atmega328P), skriver du en "U" på meldingsmeldingen og trykker enter.

Trinn 8: Programmeringsstat

Programmeringsstat!
Programmeringsstat!

I det neste vinduet ser du dette.

Vi vil ikke avslutte eller bekrefte, skriv inn G og trykk enter!

Trinn 9: Moroa begynner!:)

Moroa begynner!:)
Moroa begynner!:)

Etter å ha trykket enter vil du se dette:

Sletter brikke … Skriver oppstartslaster …

Forpliktende side som starter med 0x7E00 Forplikter side som starter på 0x7E80

Forpliktende side som starter på 0x7F00

Forpliktende side som starter på 0x7F80

Skrevet. Verifiserer …

Ingen feil funnet.

Skriver sikringer … LFuse = 0xFF

HFuse = 0xDE

EFuse = 0xFD

Lås byte = 0xEF Klokkekalibrering = 0x9E

Ferdig.

Programmeringsmodus av. Skriv 'C' når du er klar til å fortsette med en annen brikke …

Og god dag !!: D Atmega328P -brikken din er nå klar til å laste opp skisser!

Dette var lett ikke sant?:)

Trinn 10: En ny brikke

Hvis du vil programmere en annen brikke, koble Arduino fra PCen, bytt ut brikken med en tom. Koble Arduino til igjen og gjør trinnene igjen.

Hvis den serielle skjermen ikke reagerer etter at du har koblet Arduino til igjen, ikke få panikk, bare lukk den og åpne en ny.

Trinn 11: ANSVARSFRASKRIVELSE

JEG EIER IKKE NOE AV DETTE !! All æren går til Nick Gammon !!

Jeg viste nettopp denne metoden i denne Instructable.

Håper du finner dette nyttig.

Ha en fin dag.

Trinn 12: Når rare ting skjer

Når rare ting skjer
Når rare ting skjer
Når rare ting skjer
Når rare ting skjer

Nylig mottok jeg denne Arduino Nano med Atmega328P-MU prosessor.

Så jeg har prøvd å laste opp en skisse til den, men jeg kunne ikke. Prosessoren reagerte ikke på noe med alternativer Atmega328.

OK! Så kanskje er bootloaderen ødelagt og trenger en omskriving. Jeg koblet den sammen med en annen arduino og brente oppstartslasteren. Fortsatt ingenting……!!!!

Ok da, jeg trenger en brems (kaffe og en sigarett) !! Som en siste sjanse valgte jeg Arduino Uno igjen som et mål. Last opp fullført: D

På dette tidspunktet har jeg en Nano som fungerer som en Arduino Uno. Jeg vet ikke hvorfor dette skjedde, men jeg tror dette er på grunn av prosessorsignaturen. Uansett, det gjorde virkelig dagen min og det var litt morsomt:)

Anbefalt: