Innehållsförteckning:

ANVÄNDNING AV EXTREME BURNER för AVR -mikrokontrollerprogrammering: 8 steg
ANVÄNDNING AV EXTREME BURNER för AVR -mikrokontrollerprogrammering: 8 steg

Video: ANVÄNDNING AV EXTREME BURNER för AVR -mikrokontrollerprogrammering: 8 steg

Video: ANVÄNDNING AV EXTREME BURNER för AVR -mikrokontrollerprogrammering: 8 steg
Video: Part 3 - Around the World in 80 Days Audiobook by Jules Verne (Chs 26-37) 2024, Juli
Anonim
ANVÄNDNING AV EXTREME BURNER för AVR -mikrokontrollerprogrammering
ANVÄNDNING AV EXTREME BURNER för AVR -mikrokontrollerprogrammering

Alla ni AVR -användarbrödraskap där ute, och de som precis går in i strömmen, några av er började med PIC -mikrokontroller och några började med ATMEL AVR, detta är skrivet för er!

Så du köpte en USBASP eftersom det är billigt och effektivt att flasha ROM på din Atmega -enhet, eller kanske ATTINY -serien. Dessa kan erhållas för under 5 $, som kinesiska kloner av Open Source USB-ASP! AVRdude är programvaran för att programmera dem.

Du vet utan tvekan hur du skapar en Hex -fil med Atmel Studio (jag använder fortfarande AVR Studio v4.19 istället för den senaste v7 eftersom den är snabbare och snabbare på min lätta enkelkärniga CPU -bärbara dator)/ Netbook och WINAVR -installation om du läser detta. Allt skrivet i DotNet körs LÅNGT! och de senare versionerna är utformade för att få din bärbara dator att köra som en sköldpadda! Du kan använda Studio v4.19 den bästa versionen av Studio från ATMEL för AVR -mikrokontroller, byta till version 7 när du verkligen behöver det för de senare chipsen och göra din tid på den bärbara datorn mer produktiv, fungerar istället för att vänta! Det här är vad jag rekommenderar.

En typisk AVR -dude -kommandorad för att programmera en Atmega med en Hex -fil körs så här:

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

här är pwmeg1.hex Intel hex -filen som ska "brännas" eller "blinkas" till "mål -MCU" i mikrokontroller Lingo

Det är en munnfull att komma ihåg! Du kan skriva en batchfil och köra den på kommandoraden i Windows, med namnet write_flash.bat. På samma sätt för att läsa säkringarna, en annan munnfull av en rad att komma ihåg! Det blir tråkigt.

för läsblixt + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Lösningen är att använda ett av de användarvänliga GUI-gränssnittsverktygen till AVRdude som Bitburner, Khazama-programmerare, som är nästan lika till sin fördel. eXtreme Burner. Jag har använt verktyget gratis att använda: eXtreme Burner mycket, det är mångsidigt, pålitligt och den här självstudien handlar om det. Det kan inte bara blinka din hex -fil / program till MPU, med hjälp av kommandon utfärdade till AVRdude i bakgrunden, det kan också hjälpa dig att ställa in FUSES som är ett komplicerat ämne som ofta förvirrar nybörjare till AVR -programmering. Här är en länk till en utmärkt handledning i ämnet FUSES som du kan gå igenom eller borsta på. Ett försiktighetsåtgärd: ATMEL använder '1' -tillståndet för en FUSE -bit för att indikera dess 'standard' -läge (inaktiverat eller oprogrammerat tillstånd) och '0' för att indikera dess programmerade eller inställda eller aktiverade tillstånd! Detta är precis motsatsen till vad du gör med FUSE -bitar i en PIC -mikrokontroller. Var försiktig när du ändrar klocksäkringsbitarna som att göra den interna RC-klockan till extern kristall, eftersom detta kommer att skapa problem vid anslutning till chipet utan en extern kristallinställning. Var också försiktig när du ändrar tillstånd för kritiska säkringsbitar som SPIEN och RESET DISABLE (dessa bör alltid vara inställda på SPIEN = 0 och RESET DISABLE = 1 om du vill fortsätta kommunicera med MCU med din USB-ASP i ISP / SPI-läge ! Om du misslyckas med det här behöver du en högspänningsprogrammerare för att "ta bort" din AVR.

Om du undrar "vad fan är säkringar" och "vad gör de"? Läs denna utmärkta skrivning:

Ett annat relaterat ämne är hur du ställer in klockhastigheten för din AVR MPU som kan ha hastigheter från 1Mhz upp till 16 eller 20Mhz. Det finns också ett speciellt lågfrekvent kristallalternativ på 31,25 kHz, som om det är rätt utformat kan få din AVR att driva AA -batterier i 3 månader!

Båda dessa, Clock Fuse -bitar (både frekvens och typ av intern klocka/extern kristall och andra säkringsbitar) kan ställas in via fliken FUSES i eXtreme Burner. Först visar vi dig läsa ROM -skivan och sedan hur du blinkar hex -filen med eXtreme Burner. Naturligtvis kan du också använda online -AVR -säkringswebbplatser, men det alternativ som jag förklarar kan användas när du är offline också, var som helst.

Steg 1: Inställningar som ska göras:

Inställningar som ska göras
Inställningar som ska göras
Inställningar som ska göras
Inställningar som ska göras
Inställningar som ska göras
Inställningar som ska göras
Inställningar som ska göras
Inställningar som ska göras

Bilderna visar de INSTÄLLNINGAR som ska göras innan du påbörjar ditt arbete. (det är bara en gång). Under undermenyn 'Maskinvaruinställningar' väljer vi 375Hz eftersom de flesta av MCU från ATMEL-fabriken är inställda på Standardinställningar för 1 Mhz CPU-klocka på intern RC-oscillator. ISP -hastigheten är en fjärdedel av F_cpu. Det ger oss 375 Khz närmaste hastighet, du kan gå till en lägre hastighet också, det kommer inte att göra någon större skillnad. Du kan försöka ansluta och lämna detta vid standard och utfärda en "läs allt". Om det misslyckas kan du komma hit och ändra hastigheten och göra det lägre.

För om du inte kan ansluta (meddelandet ges i programmeringsfönstret "kan inte kommunicera med chip, kan inte SCK" betyder att klocksignalen från din dator inte kunde synkronisera med ditt chip som du försöker läsa eller program)., skulle du inte kunna ändra CPU -klockhastigheten eller ändra dess hastighet och typ! Så anslutning är grunden för allt! Det är som "FIRST CONTACT" som du ser i Spielberg -filmerna. Om du lyckas med detta kan du alltid öka klockhastigheten på din MCU genom att programmera säkringarna därefter och senare använda en högre hastighet för att ansluta.

Så gå igenom ögonblicksbilderna för hårdvaruinställningarna som tillhandahålls här och ställ sedan in enhetstypen (chipet du försöker programmera, dess modellnummer).

Steg 2: Ange din enhetstyp

Ställa in din enhetstyp
Ställa in din enhetstyp
Ställa in din enhetstyp
Ställa in din enhetstyp
Ställa in din enhetstyp
Ställa in din enhetstyp

se skärmdumpen, bild 1, vi har ställt in "ATTINY44A". Detta är en 14 -stifts mikrokontroller utan UART. Jag har använt detta nyligen, SSU -versionen. Om du installerade Extreme burner -lagerversionen kommer du inte att se Attiny44A i listrutan för enhetsval, du kommer att se en Attiny44 som vi för alla ändamål kan använda för att programmera ut Attiny44A också, för att introducera alla enheter som inte är listade i den här rullgardinsmenyn, läs min andra instruerbara "Hacking eXtreme Burner".

Jag har använt Atmega88PA-AU också med eXtreme Burner men i denna instruktionsbok nämner vi "Attiny44A" överallt. Hur gör du nu en breadboard -version av det lilla 7 mm fyrkantiga SMD -chipet och testar det med dina program? (se bilderna som indikerar chipstorleken). För detta, se min andra instruerbara där jag visar hur man gör Breadboard-lämpliga plug-in-moduler med Attiny44A-SSU och ATmega88PA-AU

När du väl har lärt dig den här tekniken skulle du kunna kolla in alla chip du är nyfiken på att pyssla med, oavsett om det är SMD- eller DIL -paket. Till exempel har jag till och med använt ett SMD-chip som kommer i ett 32-stifts 0,8 mm stifthöjd Quad-paket (Atmega88A) på liknande sätt!

. Eller så kan du bara använda 28 -stifts DIL -versionen av Attiny44A för denna instruerbara eller vilken AVR du än använder för att testa eXtreme Burner för AVR -programmering.

Steg 3: Utfärda en LÄS ALLA eller LÄS FLASH

Ge ut en LÄS ALLA eller LÄS FLASH
Ge ut en LÄS ALLA eller LÄS FLASH
Ge ut en LÄS ALLA eller LÄS FLASH
Ge ut en LÄS ALLA eller LÄS FLASH

Anslut din USBasp till USB -porten på din bärbara dator, jag antar att du redan har laddat rätt drivrutiner som följde med din programmerare och att den upptäcktes korrekt. Det bör visas under 'Enheter och skrivare' i Windows startmeny om det var så snart det var anslutet till USB -porten! Anslut ditt målchip på sitt kort med din USBasp (relevanta SDI // ISP -stift med 6 -stifts eller 10 -stifts kabel måste anslutas mellan de två, nämligen stiften: MOSI, RESET, MISO, SCK, Vcc, Ground).

Ge en LÄS ALLT från MENYEN för Xtreme Burner. Se bilder och meddelanden vi fått. Ursprungligen visade din skärm 'FF' för ROM i första fliken i brännaren, efter att ha läst allt kommer det att visa det faktiska ROM -innehållet på chipet. Om du använde ett fabriksfärskt chip eller ett raderat chip skulle du se FF i innehållet efter en "Läs allt". Ett oprogrammerat chip kommer att visa 'FF' i minnet, det gör också en EEPROM (andra fliken i programmeraren), den sista fliken visar säkringarna.

Efter en LÄS ALLA skulle de tre flikarna visa rätt information i chipet. Innan det skulle det inte, så ge en Läs alla först så snart du ansluter allt.

Steg 4: Skriv till Flash (din Hex -fil blinkade i ROM på chipet)

Skriv till Flash (din Hex -fil blinkade i ROM på chipet)
Skriv till Flash (din Hex -fil blinkade i ROM på chipet)
Skriv till Flash (din Hex -fil blinkade i ROM på chipet)
Skriv till Flash (din Hex -fil blinkade i ROM på chipet)
Skriv till Flash (din Hex -fil blinkade i ROM på chipet)
Skriv till Flash (din Hex -fil blinkade i ROM på chipet)

Välj en fil med dialogrutan Bläddra som öppnas när du klickar på den första ikonen i menyfältet ovan. Vi valde en fil som du ser på bilden. När du väl valt hex -filen (intel hex -format) ändrades menyraden som visade "ingen fil laddad" till filnamn som du laddade.

Utfärda nu en skrivblixt från programvarans meny. Meddelandena visar vad som händer. se bilderna.

Efter en lyckad skrivning, skulle du se 'FF' som markerar en ny eller raderad ROM ändras till vad ditt program eller hex -filen innehåller. Storleken eller antalet byte som din fil upptar i ROM är också känt för dig genom att titta på den här skärmen, som visar det faktiska ROM -innehållet i ditt målchip som du blinkade just nu.

Verifieringssteget görs också genom att läsa chipet enligt de INSTÄLLNINGAR vi gjorde i första steget. Detta syns i meddelandena om att verifieringen också lyckades.

Steg 5: SÄKRINGAR: Så här ställer du in dem i EXTREME BURNER

SÄKRINGAR: Så här ställer du in dem i EXTREME BURNER
SÄKRINGAR: Så här ställer du in dem i EXTREME BURNER

När du utfärdade en LÄS lästes alla säkringar från chipet. Det är den första bilden som visas fuses.jpg.

Nu kanske du behöver ändra dem till något annat. Säkringarna består av fyra lådor i den sista fliken på din eXtreme Burner -skärm. Nämligen LOW FUSE BYTE, HIGH FUSE BYTE, EXKENDED FUSE BYTE, LOCK FUSE BYTE och CALIBRATION BYTE. i den ordningen visas de.

Du kan helt enkelt använda en ONLINE säkringskalkylator och fylla i dem

eleccelerator.com/fusecalc/fusecalc.php?

Eller så kan du använda eXtreme -brännare för att göra det åt dig. offline själv när som helst: Välj från rullgardinsmenyn som visas när du klickar på DETALJER -knappen som finns där under varje typ av säkringsbyte. Dubbelklicka bara på vilken rad som helst i DETALJER -skärmen och se hur den ändras från SET till CLEARED och växlar dess status med ett musklick på varje rad. Säkringsbyten i rutan ovanför ändras därefter.

Om du undrar "vad fan är säkringar" och "vad gör de"? Läs denna utmärkta skrivning:

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

Steg 6: Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator

Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator
Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator
Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator
Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator
Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator
Ställa in säkringar med hjälp av EXtreme Burner Säkringskalkylator

Du kan se detaljeringsskärmen som visas för varje säkringsbyte (LÅG, HÖG, UTÖKAD, LÅS och kalibrering). Kalibreringsbyten bör lämnas oförändrad eftersom den visar den kalibreringsdatabyte i AVR som gäller för den interna RC -oscillatorn. LOCK -byten är vanligtvis endast FF, (diskuteras inte på bilderna ovan) eftersom du inte skulle låsa Flash eller EEPROM under inlärningsfasen. Du skulle bara ändra LOW, HIGH och EXDENDED bytes. Var försiktig !

Om du ändrar SPIEN bit till 1 (oprogrammerat tillstånd är 1 i AVR -mikrokontroller) skulle du inte kunna kommunicera med ditt chip med USBASP eller någon programmerare! Standardläget visas också på skärmen för varje säkringsbit. Detta varnar dig om att SPIEN -standard alltid är 0 (programmerat tillstånd) så att du kan använda SPI -läge för ISP -programmering. Debug-wire eller DW bit är alltid kvar 1 (oprogrammerad) när SPIEN är inställd på 0. Detta är också standardläget. I utökade säkringsbitar bör "Self Programming Enable" vara "1" (oprogrammerad) om du använder din USB-ASP för att programmera ditt målchip (använder inte bootloader ROM som i ARDUINO).

Du kan ändra CLOCK -bitarna (3 i antal) för att välja intern RC eller extern kristall. Jag lämnar det normalt för intern RC som låter dig få 2 extra stift som frigör den yttre kristallen innebär att använda som PORT -stift för dina AVR -projekt. Vanligtvis behövs extern kristall när du behöver timing med hög noggrannhet i ditt projekt. För elever räcker det med intern RC.

Vanligtvis när du bestämmer dig för någon säkringskombination skulle du inte ändra den. Det skulle vara en gång. Du skulle bara blinka ROM eller ibland EEPROM också. För blinkning genereras den separata EEPROM -filen från din WINAVR / ATMEL -studio om ditt program använder EEPROM för att lagra data. Annars lämnas EEPROM oanvänd, fylld med "FF" -data som visar "NO DATA state" för EEPROM.

Steg 7: Säkringsvärdes slutvärde

Slutvärde för säkringsbitar
Slutvärde för säkringsbitar

Efter att du har ställt in alla säkringsbitarna och stängt DETALJER -rutorna som du använt kan du se värdet på säkringsbitarna som beräknats av programmet (se bild). Det återstår bara att utfärda en "skrivsäkring" med hjälp av menyn och titta på meddelanden som rapporterar en lyckad skrivning. Senare kan du också utfärda en LÄS ALLT från menyn och kontrollera om säkringarna som lästes i sista fliken på brännarskärmen sammanfaller med vad du ville skriva till chippet. (Säkringskontroll).

Du skulle märka att i början av denna instruktionsbok när vi gjorde en LÄS SÄKRING, visar skärmen samma FUSE -värden som vi ser här! Det beror på att det är dessa säkringar som jag ofta använder och sällan ändrar dem när jag ställer in dem i min MCU, såvida jag inte ändrar frekvensen från 1 MHz till 4 MHz för vissa projekt. AVR kan ställas in på maximalt 20 Mhz (vissa marker endast upp till 16 Mhz). Frekvensen du ställer in för F_cpu beror också på vilken spänning du levererar chipet med! Till exempel om ditt chip fungerar från 1,8V Vcc upp till 5,5V Vcc (datablad hänvisa) skulle du inte förvänta dig att köra ditt chip på 20 mhz om du bara levererade 1,8V till det! du förväntar dig för mycket av det! En tabell i databladet berättar vid vilken spänning frekvensen toppar vid vilken siffra. Ju högre frekvens du använder för chip, desto mer värme och mer kraft det förbrukar. Tänk på frekvensen som ett djurs hjärtslag. En kolibri med hög hjärtfrekvens skulle ha en högre energiförbränning per minut jämfört med en val eller elefant med mycket lägre hjärtslag! Men då kan det göra mycket mer på kortare tid. MCU är precis så.

Steg 8: Avsluta

Nu har du slutfört alla steg i eXtreme -brännaren, du har läst ett chips ROM, du har öppnat en HEX -fil och blinkat det till chipet och verifierat att blixten var OK, du lärde dig också hur du ställer in säkringarna och blinkar dem till chipet.

Om du har några frågor svarar jag eller ändrar självstudien för att göra det tydligare.

För vissa marker kan det hända att dess post saknas i listrutan för markering av marker i menyn. Eller så kan du möta skrivfel och verifiera fel. I sådana fall kan du läsa min andra instruerbara "Hacking eXtreme Burner" för att lösa problemet.

Glad programmering.

Rekommenderad: