Indholdsfortegnelse:

BRUG AF EXtreme Burner til AVR -mikrokontrollerprogrammering: 8 trin
BRUG AF EXtreme Burner til AVR -mikrokontrollerprogrammering: 8 trin

Video: BRUG AF EXtreme Burner til AVR -mikrokontrollerprogrammering: 8 trin

Video: BRUG AF EXtreme Burner til AVR -mikrokontrollerprogrammering: 8 trin
Video: Part 3 - Around the World in 80 Days Audiobook by Jules Verne (Chs 26-37) 2024, Juli
Anonim
BRUG AF EXtreme Burner til AVR -mikrokontrollerprogrammering
BRUG AF EXtreme Burner til AVR -mikrokontrollerprogrammering

Alt du AVR -brugerbrorskab derude, og dem, der lige går ind i strømmen. Nogle af jer startede med PIC -mikrokontrollere og nogle startede med ATMEL AVR'er, dette er skrevet til dig!

Så du købte en USBASP, fordi det er billigt og effektivt at blinke ROM'en på din Atmega -enhed eller måske ATTINY -serien. Disse kan fås for under 5 $, som kinesiske kloner fra Open source USB-ASP! AVRdude er softwaren til at programmere dem.

Du ved utvivlsomt, hvordan du genererer en Hex -fil ved hjælp af Atmel Studio (jeg bruger stadig AVR Studio v4.19 i stedet for den nyeste v7, fordi den er hurtigere og hurtigere på min lette single -core CPU -bærbar computer)/ Netbook og WINAVR -installation, hvis du læser dette. Alt skrevet i DotNet kører SLOW! og de senere versioner er designet til at få din bærbare computer til at køre som en skildpadde! Du kan bruge Studio v4.19 den største version af Studio fra ATMEL til AVR -mikrokontrollere, skifte til version 7, når du virkelig har brug for det til de senere chips, og gøre din tid på den bærbare computer mere produktiv og arbejde i stedet for at vente! Dette er hvad jeg anbefaler.

En typisk AVR -kommandolinje til at programmere en Atmega med en Hex -fil, kører sådan:

SKRIV TIL FLASH: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

her er pwmeg1.hex Intel hex -filen, der skal "brændes" eller "blinkes" ind i "target MCU" i mikrokontroller Lingo

Det er en mundfuld at huske! Du kan skrive en batchfil og køre den på kommandolinjen i Windows, navngive den write_flash.bat. Tilsvarende for at læse sikringerne, en anden mundfuld af en linje at huske! Det bliver kedeligt.

til læseflash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Løsningen er at bruge et af de brugervenlige GUI-front-end-værktøjer til AVRdude som Bitburner, Khazama programmerer, som er næsten ens i fortjeneste. eXtreme brænder. Jeg har brugt gratisværktøjet: eXtreme Burner meget, dets alsidige, pålidelige, og denne vejledning handler om det. Det kan ikke kun blinke din hex -fil / program til MPU'en ved hjælp af kommandoer udstedt til AVRdude i baggrunden, det kan også hjælpe dig med at indstille FUSES, som er et kompliceret emne, der ofte forveksler begyndere til AVR -programmering. Her er et link til en fremragende tutorial om emnet sikringer, som du kan gå igennem eller børste op på. Et forsigtighedsord: ATMEL bruger '1' -tilstanden for en FUSE -bit til at angive dens 'standard' -tilstand (ikke -indstillet eller uprogrammeret tilstand) og' 0 'til at angive dens programmerede eller indstillede eller aktiverede tilstand! Dette er lige modsat af, hvad du gør med FUSE -bits i en PIC -mikrokontroller. Vær forsigtig, når du ændrer urets sikringsbits som at få det interne RC-ur til at skifte til ekstern krystal, fordi dette vil skabe problemer med at oprette forbindelse til chippen uden en ekstern krystalopsætning. Vær på samme måde forsigtig, når du ændrer tilstand for kritiske sikringsbits som SPIEN og RESET DISABLE (disse bør altid indstilles til SPIEN = 0 og RESET DISABLE = 1, hvis du ønsker at fortsætte med at kommunikere med MCU'en med din USB-ASP i ISP / SPI-tilstand ! Hvis du fejler dette, skal du bruge en højspændingsprogrammerer til at 'fjerne' din AVR.

Hvis du undrer dig over "hvad pokker er sikringer" og "hvad gør de"? Læs denne fremragende opskrift:

Et andet relateret emne er, hvordan du indstiller urets hastighed på din AVR MPU, som er i stand til hastigheder fra 1Mhz op til 16 eller 20Mhz. Der er også en særlig specialeffekt lavfrekvent krystalindstilling 31,25 kHz, som hvis den er korrekt designet, kan få din AVR til at køre AA -batterier i 3 måneder!

Begge disse Clock Fuse -bits (både frekvens og type ur intern RC/ekstern krystal og andre sikringsbits) kan indstilles via fanen FUSES i eXtreme Burner. Først viser vi dig læse ROM'en, og derefter hvordan du blinker hex -filen ved hjælp af eXtreme Burner. Selvfølgelig kan du også bruge online AVR -sikringswebsteder, men den mulighed, jeg forklarer, kan også bruges, når du er offline, hvor som helst.

Trin 1: Indstillinger, der skal foretages:

Indstillinger, der skal foretages
Indstillinger, der skal foretages
Indstillinger, der skal foretages
Indstillinger, der skal foretages
Indstillinger, der skal foretages
Indstillinger, der skal foretages
Indstillinger, der skal foretages
Indstillinger, der skal foretages

Billederne viser de INDSTILLINGER, der skal udføres, før du starter dit arbejde. (det er kun en gang). Under undermenuen 'Hardwareindstillinger' vælger vi 375Hz, fordi de fleste af MCU'erne fra ATMEL-fabrikken er indstillet til Standardindstillinger for 1 Mhz CPU-ur på intern RC-oscillator. ISP -hastigheden er en fjerdedel af F_cpu. Det giver os 375 Khz nærmeste hastighed. Du kan også gå til en lavere hastighed, det vil ikke gøre den store forskel. Du kan prøve at oprette forbindelse og lade dette forblive som standard og udstede en 'læs alt', hvis det mislykkes, kan du komme herover og ændre hastigheden, hvilket gør den lavere.

Fordi hvis du ikke kan oprette forbindelse (meddelelsen vil blive givet i programmeringsvinduet "ude af stand til at kommunikere med chip, kan SCC ikke" betyder, at urets signal fra din pc ikke kunne synkronisere med din chip, som du prøver at læse eller program)., ville du ikke være i stand til at ændre CPU -urets hastighed eller ændre dens hastighed og type! Så forbindelse er grundlaget for alt! Det er som "FØRSTE KONTAKT", som du ser i Spielberg -filmene. Hvis du lykkes med dette, kan du altid øge clockhastigheden på din MCU ved at programmere sikringerne i overensstemmelse hermed og senere bruge en højere hastighed til at oprette forbindelse.

Så gå igennem hardwareindstillingernes snapshots, der er angivet her, og indstil derefter også enhedstypen (den chip, du prøver at programmere, dens modelnummer).

Trin 2: Indstilling af din enhedstype

Indstilling af din enhedstype
Indstilling af din enhedstype
Indstilling af din enhedstype
Indstilling af din enhedstype
Indstilling af din enhedstype
Indstilling af din enhedstype

se skærmbilledet, Pic 1, vi har indstillet "ATTINY44A". Dette er en 14 -pins mikrokontroller uden UART. Jeg har brugt dette for nylig, SSU -versionen. Hvis du installerede Extreme burner -lagerversionen, vil du ikke se Attiny44A i rullemenuen til valg af enhed, du vil se en Attiny44, som vi til alle formål også kan bruge til at programmere Attiny44A for at introducere enhver enhed, der ikke er angivet på denne rulleliste, læs min anden instruerbare "Hacking eXtreme Burner".

Jeg har også brugt Atmega88PA-AU med eXtreme Burner, men i denne Instructable nævner vi "Attiny44A" overalt. Nu hvordan laver du en breadboard -version af den lille 7 mm firkantede SMD -chip og tester den med dine programmer? (se billederne, der angiver chipstørrelsen), For at se dette, kan du se min anden instruerbare, hvor jeg demonstrerer, hvordan jeg laver brødbræt passende plug-in-moduler ved hjælp af Attiny44A-SSU og ATmega88PA-AU

Når du har lært denne teknik, vil du kunne tjekke enhver chip, du er nysgerrig efter at pille ved, uanset om det er SMD- eller DIL -pakke. For eksempel har jeg endda brugt en SMD-chip, der kommer i en 32-pin 0,8 mm pin pitch Quad-pakke (Atmega88A) på lignende måde!

. Eller du kan bare bruge 28pin DIL -versionen af Attiny44A til denne Instructable eller hvilken som helst AVR, du bruger i øjeblikket til at prøve eXtreme Burner til AVR -programmering.

Trin 3: Udsted en LÆS ALT eller LÆS FLASH

Udsted en LÆS ALLE eller LÆS FLASH
Udsted en LÆS ALLE eller LÆS FLASH
Udsted en LÆS ALLE eller LÆS FLASH
Udsted en LÆS ALLE eller LÆS FLASH

Tilslut din USBasp til USB -porten på din bærbare computer, jeg går ud fra, at du allerede har indlæst de korrekte drivere, der fulgte med din programmerer, og at den er korrekt opdaget. Det skulle vises under 'Enheder og printere' i Windows startmenu, hvis det var, så snart det blev tilsluttet USB -porten! Tilslut din målchip på dets bord med din USBasp (relevante SDI // ISP -ben med 6 -benet eller 10 -benet kabel skal tilsluttes mellem de to, nemlig stifterne: MOSI, RESET, MISO, SCK, Vcc, Ground).

Udsted en LÆS ALLE fra MENUEN for Xtreme Burner. Se billeder og beskeder, vi fik. Oprindeligt viste din skærm 'FF' for ROM i første fane i brænderen, efter at have læst alt vil det vise det faktiske ROM -indhold på chippen. Hvis du brugte en fabriksny chip eller en slettet chip, ville du se FF i indholdet efter en "Læs alt". En uprogrammeret chip viser 'FF' i sin hukommelse, det samme gør en EEPROM (anden fane i programmereren), den sidste fane viser sikringerne.

Efter en LÆS ALLE ville de 3 faner vise de korrekte oplysninger i chippen. Før det ville det ikke, så udsted en Læs alt først, så snart du forbinder alt.

Trin 4: Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)

Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)
Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)
Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)
Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)
Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)
Skriv til Flash (din Hex -fil blinkede ind i ROM på chippen)

Vælg en fil ved hjælp af dialogboksen Gennemse, der åbnes, når du klikker på det første ikon i MENU -linjen ovenfor. Vi valgte en fil, som du ser på billedet. Når du har valgt hex -filen (intel hex -format), ændres menulinjen, der viste "ingen fil indlæst" til det filnavn, du har indlæst.

Udsted nu en skriveflash fra menuen i softwaren. Beskederne viser dig, hvad der sker. se billederne.

Efter en vellykket skrivning ville du se 'FF', der markerer en ny eller slettet ROM, ændres til, hvad dit program eller din hex -fil indeholder. Størrelsen eller antallet af bytes, som din fil optager i ROM'en, er også kendt for dig ved at se på denne skærm, der viser dig det faktiske ROM -indhold i din målchip, som du blinkede lige nu.

Verifikationstrinnet udføres også ved at læse chippen i henhold til de INDSTILLINGER, vi gjorde i første trin. Dette ses i meddelelserne om, at verifikationen også lykkedes.

Trin 5: SIKRINGER: Sådan indstilles dem i EXtreme Burner

SIKRINGER: Sådan indstilles dem i EXtreme Burner
SIKRINGER: Sådan indstilles dem i EXtreme Burner

Da du udsendte en LÆS ALLE, blev sikringerne aflæst fra chippen. Det er det FØRSTE billede vist fuses.jpg.

Nu skal du måske ændre dem til noget andet. Sikringerne består af 4 kasser i den sidste fane på din eXtreme Burner -skærm. Nemlig LOW FUSE BYTE, HIGH FUSE BYTE, EXKENDED FUSE BYTE, LOCK FUSE BYTE og CALIBRATION BYTE. i den rækkefølge vises de.

Du kan simpelthen bruge en ONLINE sikringsberegner og udfylde dem. Som den på

eleccelerator.com/fusecalc/fusecalc.php?

Eller du kan bruge eXtreme -brænder til at gøre det for dig. offline sig selv når som helst: Vælg fra rullelisten, der vises, når du klikker på knappen DETALJER, der er der under hver slags sikringsbyte. Dobbeltklik på en hvilken som helst linje på skærmen DETALJER, og se den skifte fra SET til CLEARED, og skift tilstanden med et museklik på hver linje. Fuse Byte i boksen ovenfor ville ændre sig i overensstemmelse hermed.

Hvis du undrer dig over "hvad pokker er sikringer" og "hvad gør de"? Læs denne fremragende opskrift:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

Trin 6: Indstilling af sikringer ved hjælp af EXtreme Burner Fuse Calculator

Indstilling af sikringer ved hjælp af EXtreme Burner Sikringsberegner
Indstilling af sikringer ved hjælp af EXtreme Burner Sikringsberegner
Indstilling af sikringer ved hjælp af EXtreme Burner Sikringsberegner
Indstilling af sikringer ved hjælp af EXtreme Burner Sikringsberegner
Indstilling af sikringer ved hjælp af EXtreme Burner Sikringsberegner
Indstilling af sikringer ved hjælp af EXtreme Burner Sikringsberegner

Du kan se skærmen Detaljer, der vises for hver af sikringsbytes (LOW, HIGH, EXTENDED, LOCK og Calibration). Kalibreringsbyten bør efterlades uændret, da den viser kalibreringsdatabyte i AVR, der gælder for den interne RC -oscillator. LOCK -byten er normalt kun FF (ikke diskuteret på billederne ovenfor), da du ikke ville låse Flash eller EEPROM, mens du var i indlæringsfasen. Du ville kun ændre LOW, HIGH og EXTENDED bytes. Vær forsigtig !

Hvis du ændrer SPIEN bit til 1 (uprogrammeret tilstand er 1 i AVR -mikrokontrollere), ville du ikke kunne kommunikere med din chip ved hjælp af USBASP eller en hvilken som helst programmerer! Standardtilstanden vises også på din skærm for hver sikringsbit. Dette advarer dig om, at SPIEN -standard altid er 0 (programmeret tilstand), så du kan bruge SPI -tilstand til ISP -programmering. Debug-wire eller DW bit er altid 1 (uprogrammeret), når SPIEN er indstillet til 0. Dette er også standardtilstanden. I udvidede sikringsbits bør 'Selvprogrammering aktiveret' være '1' (uprogrammeret), hvis du bruger din USB-ASP til at programmere din målchip (ikke ved hjælp af bootloader-ROM som i ARDUINO).

Du kan ændre CLOCK -bitene (3 i antal) for at vælge intern RC eller ekstern krystal. Jeg lader det normalt være til intern RC, som giver dig mulighed for at få 2 ekstra ben, som frigørelse af den eksterne krystal indebærer at bruge som PORT -ben til dine AVR -projekter. Normalt er ekstern krystal nødvendig, når du har brug for timing med høj nøjagtighed i dit projekt. For elever er intern RC nok.

Normalt når du har slået dig ned på en sikringskombination, ville du ikke ændre den. Det ville være engang. Du blinker kun ROM'en eller nogle gange også EEPROM. For at blinke, genereres den separate EEPROM -fil fra dit WINAVR / ATMEL -studie, hvis dit program overhovedet bruger EEPROM til at gemme data. Ellers efterlades EEPROM ubrugt, fyldt med 'FF' -dataene, der viser' NO DATA state 'for EEPROM.

Trin 7: Slutværdi af sikringsbits

Slutværdi af sikringsbits
Slutværdi af sikringsbits

Efter at have indstillet alle sikringsbitene og lukket DETAILS -bokse, som du brugte, kan du se værdien af sikringsbitene som beregnet af programmet (se billede). Det eneste, der er tilbage, er at udstede en "Skriv sikringer" ved hjælp af menuen. Og se på de meddelelser, der rapporterer en vellykket skrivning. Senere kan du også udstede en LÆS ALLE fra menuen og kontrollere, om sikringerne i sidste TAB på brænderens skærm falder sammen med, hvad du ville skrive til chippen. (Sikringskontrol).

Du vil bemærke, at skærmen viser de samme FUSE -værdier, som vi ser her i starten af denne instruks, da vi lavede en LÆS SIKRINGER! Det er fordi det er de sikringer, jeg ofte bruger og sjældent ændrer dem, når jeg har indstillet dem i min MCU, medmindre jeg ændrer frekvensen fra 1 Mhz til 4Mhz for nogle projekter. AVR'en kan indstilles til maksimalt 20Mhz (nogle chips kun op til 16Mhz). Frekvensen, du indstiller til F_cpu, afhænger også af den spænding, du forsyner chippen med! For eksempel, hvis din chip fungerer fra 1,8V Vcc op til 5,5V Vcc (datablad henvises), ville du ikke forvente at køre din chip ved 20 mhz, hvis du kun leverede 1,8V til den! du forventer for meget af det! En tabel i databladet fortæller dig, ved hvilken spænding frekvensen topper ved hvilket tal. Jo højere din chipfrekvens er, jo mere varme og mere strøm bruger den. Tænk på frekvensen som et dyrs hjerteslag. En kolibri med en høj hjerteslag ville have en højere energiforbrænding i minuttet sammenlignet med en hval eller elefant med et meget lavere hjerteslag! Men så kan det meget mere på kortere tid. MCU er bare sådan.

Trin 8: Afslut

Nu har du fuldført alle trin i eXtreme -brænder, du har læst en chips ROM, du har åbnet en HEX -fil og blinket den til chippen og kontrolleret, at blitzen var OK, du lærte også, hvordan du indstiller sikringerne og blinker dem til chippen.

Hvis du har spørgsmål, vil jeg med glæde besvare eller ændre selvstudiet for at gøre det tydeligere.

For nogle chips finder du muligvis, at dens indtastning mangler i rullelisten med valg af chips i menuen. Eller du kan stå over for skrivefejl og kontrollere fejl. I sådanne tilfælde kan du læse min anden instruerbare "Hacking eXtreme Burner" for at løse problemet.

God programmering.

Anbefalede: