Turinys:

„EXtreme Burner“NAUDOJIMAS AVR mikrovaldiklių programavimui: 8 žingsniai
„EXtreme Burner“NAUDOJIMAS AVR mikrovaldiklių programavimui: 8 žingsniai

Video: „EXtreme Burner“NAUDOJIMAS AVR mikrovaldiklių programavimui: 8 žingsniai

Video: „EXtreme Burner“NAUDOJIMAS AVR mikrovaldiklių programavimui: 8 žingsniai
Video: Part 3 - Around the World in 80 Days Audiobook by Jules Verne (Chs 26-37) 2024, Liepa
Anonim
NAUDOJANT „EXtreme Burner“AVR mikrovaldiklių programavimui
NAUDOJANT „EXtreme Burner“AVR mikrovaldiklių programavimui

Visi jūs, AVR vartotojų brolija, ir tie, kurie tik įeina į srautą, kai kurie iš jūsų pradėjote nuo PIC mikrovaldiklių, o kiti - nuo ATMEL AVR, tai parašyta jums!

Taigi jūs nusipirkote USBASP, nes pigu ir veiksminga atnaujinti „Atmega“įrenginio ROM, o gal „ATTINY“asortimentą. Juos galima įsigyti už mažiau nei 5 USD kaip kinų atvirojo kodo USB-ASP klonus! AVRdude yra programinė įranga jiems programuoti.

Jūs neabejotinai žinote, kaip sukurti „Hex“failą naudojant „Atmel Studio“(aš vis dar naudoju „AVR Studio v4.19“, o ne naujausią „v7“, nes jis yra greitesnis ir greitesnis mano lengvame vieno branduolio procesoriaus nešiojamajame kompiuteryje)/ „Netbook“ir „WINAVR“diegimas, jei skaitote šį. Viskas, kas parašyta „DotNet“, veikia LĖTA! o vėlesnės versijos sukurtos taip, kad nešiojamasis kompiuteris veiktų kaip vėžlys! Galite naudoti „Studio v4.19“- didžiausią „ATMEL“„Studio“versiją, skirtą AVR mikrovaldikliams, perjungti į 7 versiją, kai to tikrai reikia vėlesniems lustams, ir praleisti laiką nešiojamajame kompiuteryje produktyviau, o ne laukti! Tai aš rekomenduoju.

Įprasta AVR komandinė eilutė programuoti „Atmega“su „Hex“failu veikia taip:

RAŠYTI Į Blykstę: AVRdude -s -c avrisp -p t44 -P usb -U "blykstė: w: D: / ARDUINO / pwmeg1.hex: a"

čia pwmeg1.hex yra „Intel“šešiakampis failas, kuris turi būti „sudegintas“arba „perkeltas“į „tikslinį MCU“mikrovaldiklyje „Lingo“

Tai gurkšnis prisiminti! Galite parašyti paketinį failą ir paleisti jį komandų eilutėje „Windows“, pavadindami jį write_flash.bat. Panašiai skaitant saugiklius, reikia prisiminti dar vieną kąsnelį eilutės! Darosi nuobodu.

skaitymui „flash + eeprom“: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Sprendimas yra naudoti vieną iš patogių vartotojo sąsajos GUI įrankių „AVRdude“, pvz., „Bitburner“, „Khazama“programuotojas, kurie yra beveik panašūs. „eXtreme“degiklis. Aš daug naudoju nemokamą įrankį: „eXtreme Burner“, jis yra universalus, patikimas, ir ši pamoka yra apie tai. Jis gali ne tik perkelti jūsų šešiabriaunį failą / programą į MPU, naudodamas AVRdude pateiktas komandas fone, bet ir padėti nustatyti saugiklius, kurie yra sudėtinga tema, dažnai suklaidinanti pradedantiesiems AVR programavimą. Čia yra nuoroda į puikią pamoką saugiklių tema, kurią galite peržiūrėti arba atnaujinti. Atsargiai: ATMEL naudoja „FUSE bit“būseną „1“, kad nurodytų jos numatytąją būseną (nenustatyta arba neužprogramuota būsena), ir „0“, kad nurodytų jos užprogramuotą arba nustatytą ar suaktyvintą būseną! Tai visiškai priešingai tam, ką darote naudodami FUSE bitus PIC mikrovaldiklyje. Būkite atsargūs, kai modifikuojate laikrodžio saugiklių bitus, pvz., Pakeičiate vidinį RC laikrodį į išorinį kristalą, nes tai sukels problemų prisijungiant prie lusto be išorinio kristalo nustatymo. Taip pat būkite atsargūs, kai keičiate kritinių saugiklių bitų būseną, pvz., SPIEN ir RESET DISABLE (jei norite toliau bendrauti su MCU su USB-ASP ISP / SPI režimu, jie visada turi būti nustatyti į SPIEN = 0 ir RESET DISABLE = 1 ! Jei tai padarysite, jums reikės aukštos įtampos programuotojo, kad „atlaisvintumėte“savo AVR.

Jei jums įdomu „kas, po velnių, yra saugikliai“ir „ką jie daro“? Perskaitykite šį puikų parašymą:

Kita susijusi tema yra tai, kaip nustatyti savo AVR MPU laikrodžio greitį, kuris gali veikti nuo 1Mhz iki 16 arba 20Mhz. Taip pat yra speciali mažos galios žemo dažnio kristalų parinktis 31,25 kHz, kuri tinkamai suprojektuota gali priversti jūsų AVR išsikrauti AA baterijomis 3 mėnesius!

Abu šiuos laikrodžio saugiklių bitus (tiek dažnį, tiek laikrodžio vidinio RC/išorinio kristalo tipą ir kitus saugiklių bitus) galima nustatyti per „eXtreme Burner“skirtuką SAUGIKLIAI. Pirmiausia parodysime, kaip perskaitėte ROM, o tada kaip mirksėti šešiakampiu failu naudojant „eXtreme Burner“. Žinoma, galite naudoti ir internetines AVR saugiklių svetaines, tačiau mano paaiškinta parinktis gali būti naudojama ir neprisijungus, bet kur.

1 veiksmas: nustatymai, kuriuos reikia atlikti:

Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti
Nustatymai, kuriuos reikia atlikti

Nuotraukose pavaizduoti NUSTATYMAI, kuriuos reikia atlikti prieš pradedant darbą. (tik vieną kartą). Submeniu „Aparatūros nustatymai“pasirenkame 375 Hz, nes dauguma ATMEL gamyklos MCU yra nustatyti į numatytuosius 1 Mhz procesoriaus laikrodžio nustatymus vidiniame RC osciliatoriuje. IPT greitis yra ketvirtadalis F_cpu. Tai mums suteikia 375 Khz artimiausią greitį, galite pereiti ir prie mažesnio greičio, tai neturės didelio skirtumo. Galite pabandyti prisijungti, palikdami šį numatytąjį, ir išleisti „perskaityti viską“, jei nepavyksta, galite atvykti čia ir pakeisti greitį, sumažindami jį.

Nes jei negalite prisijungti (pranešimas bus pateiktas programuotojo lange „negaliu bendrauti su lustu, negali SCK“) reiškia, kad laikrodžio signalas iš kompiuterio negalėjo sinchronizuotis su jūsų mikroschema, kurią bandote perskaityti programa)., negalėsite pakeisti procesoriaus laikrodžio greičio arba pakeisti jo greičio ir tipo! Taigi jungtis yra visko pagrindas! Tai tarsi „PIRMASIS KONTAKTAS“, kokį matote Spielbergo filmuose. Jei jums tai pavyks, visada galite padidinti savo MCU laikrodžio greitį, atitinkamai užprogramuodami saugiklius, o vėliau prisijungdami naudokite didesnį greitį.

Taigi peržiūrėkite čia pateiktas techninės įrangos nustatymų momentines nuotraukas, tada taip pat nustatykite įrenginio tipą (mikroschemą, kurią bandote užprogramuoti, jos modelio numerį).

2 žingsnis: Įrenginio tipo nustatymas

Įrenginio tipo nustatymas
Įrenginio tipo nustatymas
Įrenginio tipo nustatymas
Įrenginio tipo nustatymas
Įrenginio tipo nustatymas
Įrenginio tipo nustatymas

žr. ekrano kopiją, 1 pav., mes nustatėme „ATTINY44A“. Tai 14 kontaktų mikrovaldiklis be UART. Aš neseniai naudoju šią SSU versiją. Jei įdiegėte „Extreme burner stock“versiją, įrenginio pasirinkimo išskleidžiamajame sąraše nematysite „Attiny44A“, pamatysite „Attiny44“, kurį visais tikslais galime panaudoti ir „Attiny44A“programavimui, kad pristatytumėte bet kurį šiame išskleidžiamajame sąraše nenurodytą įrenginį, perskaitykite kitą mano pamokomą „Hacking eXtreme Burner“.

Aš taip pat naudoju „Atmega88PA-AU“su „eXtreme Burner“, tačiau šioje instrukcijoje visur minime „Attiny44A“. Dabar kaip padaryti mažos 7 mm kvadratinės SMD mikroschemos lentos versiją ir išbandyti ją su savo programomis? (žr. paveikslėlius, kuriuose nurodytas lusto dydis). Norėdami tai padaryti, žiūrėkite mano kitą pamokomą dalyką, kuriame pademonstruosiu, kaip padaryti „Breadboard“tinkamus papildinius, naudojant „Attiny44A-SSU“ir „ATmega88PA-AU“

Kai išmoksite šios technikos, galėsite patikrinti bet kokią mikroschemą, kurią norėtumėte smalsuoti, nesvarbu, ar tai SMD, ar DIL paketas. Pavyzdžiui, aš netgi panašiai panaudojau SMD mikroschemą, tiekiamą su 32 kontaktų 0,8 mm kaiščio „Quad“paketu („Atmega88A“)!

. Arba galite tiesiog naudoti „Attiny44A“28 kontaktų DIL versiją šiai instrukcijai ar bet kokiam šiuo metu naudojamam AVR, kad išbandytumėte „eXtreme Burner“, skirtą AVR programavimui.

3 veiksmas: išduokite READ ALL arba READ FLASH

Išduokite READ ALL arba READ FLASH
Išduokite READ ALL arba READ FLASH
Išduokite READ ALL arba READ FLASH
Išduokite READ ALL arba READ FLASH

Prijunkite „USBasp“prie nešiojamojo kompiuterio USB prievado, manau, kad jau įkėlėte tinkamas tvarkykles, gautas kartu su programuotoju, ir kad jis buvo tinkamai aptiktas. Jis turėtų būti rodomas lango pradžios meniu skiltyje „Įrenginiai ir spausdintuvai“, jei jis būtų, kai tik jis bus prijungtas prie USB prievado! Prijunkite savo planšetinį lustą prie savo USBasp (atitinkami SDI // ISP kaiščiai, naudojant 6 arba 10 kontaktų kabelį, turi būti prijungti tarp dviejų, būtent kaiščių: MOSI, RESET, MISO, SCK, Vcc, Ground).

Išleiskite Skaitykite viską iš „Xtreme Burner“meniu. Peržiūrėkite nuotraukas ir žinutes, kurias gavome. Iš pradžių jūsų ekrane buvo rodomas „FF“ROM pirmame degiklio skirtuke, po to, kai viskas perskaityta, bus parodytas tikrasis ROM turinys luste. Jei naudojate šviežią arba ištrintą mikroschemą, turinys po „Skaityti viską“matys FF. Neužprogramuotas lustas jo atmintyje rodys „FF“, taip pat ir EEPROM (antrasis programuotojo skirtukas), paskutiniame skirtuke rodomi FUSES.

Po SKAITYTI VISUS 3 skirtukus būtų rodoma teisinga informacija, esanti mikroschemoje. Prieš tai to nepadarėte, todėl iš karto perskaitykite viską, kai viską prijungsite.

4 veiksmas: rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)

Rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)
Rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)
Rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)
Rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)
Rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)
Rašykite į „Flash“(jūsų šešiakampis failas perkeltas į lustą į ROM)

Pasirinkite failą naudodami naršymo dialogo langą, kuris atidaromas spustelėjus pirmąją piktogramą aukščiau esančioje MENU juostoje. Mes pasirinkome vieną failą, kaip matote paveikslėlyje. Kai pasirinksite šešiabriaunį failą („intel hex“formatas), meniu juosta, rodanti „neįkeltas failas“, pasikeitė į įkeltą failo pavadinimą.

Dabar išleiskite „Write Flash“programinės įrangos meniu. Pranešimai parodys, kas vyksta. žiūrėkite nuotraukas.

Po sėkmingo rašymo pamatysite „FF“, kuris žymi naują arba ištrintą ROM pakeitimą į tai, ką turi jūsų programa arba šešiakampis failas. Failo užimtas ROM dydis arba baitų skaičius jums taip pat žinomas, žiūrint į šį ekraną, kuriame rodomas tikrasis jūsų tikslinės mikroschemos ROM turinys, kurį ką tik mirksėjote.

Tikrinimo veiksmas taip pat atliekamas skaitant mikroschemą, kaip nurodyta nustatymuose, kuriuos atlikome atlikdami pirmąjį žingsnį. Tai matyti pranešimuose, kad patvirtinimas taip pat buvo sėkmingas.

5 žingsnis: SAUGIKLĖS: kaip juos nustatyti „EXtreme Burner“

SAUGIKLĖS: Kaip juos nustatyti „EXtreme Burner“
SAUGIKLĖS: Kaip juos nustatyti „EXtreme Burner“

Kai išleidote READ ALL, saugikliai buvo nuskaityti iš lusto. Tai pirmoji parodyta nuotrauka fuses.jpg.

Dabar galbūt reikia juos pakeisti į kažką kitą. Saugikliai susideda iš 4 dėžučių paskutiniame „eXtreme Burner“ekrano skirtuke. Būtent LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE ir CALIBRATION BYTE. tokia tvarka jie rodomi.

Galite tiesiog naudoti ONLINE saugiklių skaičiuoklę ir užpildyti juos. Kaip ir

eleccelerator.com/fusecalc/fusecalc.php?

Arba galite tai padaryti naudodami „eXtreme“degiklį. neprisijungęs bet kuriuo metu: pasirinkite iš išskleidžiamojo sąrašo, kuris pasirodo spustelėjus mygtuką DETAILS, esantį po kiekvienu saugiklių baitu. Tiesiog dukart spustelėkite bet kurią DETAILS ekrano eilutę ir stebėkite, kaip ji pasikeičia iš SET į CLEARED, ir perjunkite būseną pelės paspaudimu ant kiekvienos eilutės. Saugiklių baitas aukščiau esančiame laukelyje atitinkamai pasikeis.

Jei jums įdomu „kas, po velnių, yra saugikliai“ir „ką jie daro“? Perskaitykite šį puikų rašinį:

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

6 žingsnis: Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę

Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę
Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę
Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę
Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę
Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę
Saugiklių nustatymas naudojant „EXtreme Burner“saugiklių skaičiuoklę

Galite pamatyti išsamios informacijos ekraną, rodomą kiekvienam saugiklio baitui (LOW, HIGH, EXTENDED, LOCK ir Calibration). Kalibravimo baitą reikia palikti nepakeistą, nes jis rodo kalibravimo duomenų baitą AVR, kuris taikomas vidiniam RC osciliatoriui. LOCK baitas paprastai yra tik FF (neaptariamas aukščiau esančiose nuotraukose), nes mokymosi etape neužrakintumėte „Flash“ar EEPROM. Pakeisite tik žemus, aukštus ir išplėstus baitus. Būk atsargus !

Jei pakeisite SPIEN bitą į 1 (AVR mikrovaldikliuose užprogramuota būsena yra 1), negalėsite susisiekti su savo mikroschema naudodami USBASP ar bet kurį programuotoją! Numatytoji būsena taip pat rodoma ekrane kiekvienam saugiklio bitui. Tai įspėja, kad numatytasis SPIEN visada yra 0 (užprogramuota būsena), kad galėtumėte naudoti SPI režimą ISP programavimui. Derinimo laidas arba DW bitas visada paliekamas 1 (neužprogramuotas), kai SPIEN yra nustatytas į 0. Tai taip pat numatytoji būsena. Be to, išplėstiniuose saugiklių bituose „Savaiminio programavimo įjungimas“turėtų būti „1“(neužprogramuotas), jei naudojate USB-ASP, kad užprogramuotumėte tikslinę mikroschemą (nenaudodami įkrovos įkėlimo ROM, kaip ir ARDUINO).

Galite pakeisti laikrodžio bitus (3), kad pasirinktumėte vidinį RC arba išorinį kristalą. Aš paprastai palieku jį vidiniam RC, kuris leidžia jums gauti 2 papildomus kaiščius, kuriuos atlaisvinus išorinį kristalą reikia naudoti kaip PORT kaiščius jūsų AVR projektams. Paprastai išorinis kristalas reikalingas, kai jūsų projekte reikia didelio tikslumo laiko. Besimokantiesiems pakanka vidinio RC.

Paprastai, kai nuspręsite saugiklių derinį, jo nekeisite. Tai būtų vienkartinis. Jūs mirksėtumėte tik ROM arba kartais EEPROM. Norėdami mirksėti EEPROM, atskirą.eep failą sugeneruoja jūsų WINAVR / ATMEL studija, jei jūsų programa naudoja EEPROM duomenims saugoti. Priešingu atveju EEPROM lieka nenaudojamas, užpildomas „FF“duomenimis, rodančiais EEPROM būseną „NO DATA“.

7 žingsnis: galutinė saugiklių bitų vertė

Galutinė saugiklių bitų vertė
Galutinė saugiklių bitų vertė

Nustatę visus saugiklių bitus ir uždarydami DETAILS langelius, kuriuos naudojote, galite pamatyti programos apskaičiuotą saugiklių bitų vertę (žr. Belieka tik naudojant meniu išleisti „Rašyti saugiklius“. Ir pažiūrėkite į pranešimus, kuriuose pranešama apie sėkmingą rašymą. Vėliau taip pat galite iš meniu Skaityti viską ir patikrinti, ar saugikliai, perskaityti paskutiniame degiklio ekrano skirtuke, sutampa su tuo, ką norėjote įrašyti į lustą. (Saugiklių patikrinimas).

Jūs pastebėjote, kad šios instrukcijos pradžioje, kai mes atlikome Skaitymo saugiklius, ekrane rodomos tos pačios saugiklių vertės, kurias matome čia! Taip yra todėl, kad dažnai naudoju tokius saugiklius ir retai juos keičiu, kai juos nustatau savo MCU, nebent kai kuriems projektams keičiu dažnį nuo 1 Mhz iki 4 Mhz. AVR gali būti nustatytas iki 20Mhz (kai kurie lustai tik iki 16Mhz). F_cpu nustatytas dažnis taip pat priklauso nuo įtampos, kuria tiekiate lustą! Pavyzdžiui, jei jūsų mikroschema veikia nuo 1,8 V Vcc iki 5,5 V Vcc (duomenų lapas), jūs nesitikėtumėte, kad jūsų mikroschema bus paleista 20 mhz, jei į ją tiekėte tik 1,8 V! tu iš jo per daug tikiesi! Duomenų lape esančioje lentelėje nurodoma, kokia įtampa dažnį viršija esant tam tikram skaičiui. Kuo didesnis lusto veikimo dažnis, tuo daugiau šilumos ir daugiau energijos jis sunaudoja. Pagalvokite apie dažnį kaip apie gyvūno širdies plakimą. Kolibriui, kuriam būdingas didelis įkaitimo dažnis, per minutę būtų sudeginama daugiau energijos nei banginiui ar drambliui, kurio širdies plakimas yra daug mažesnis! Bet tada jis gali padaryti daug daugiau per trumpesnį laiką. MCU yra būtent toks.

8 žingsnis: Baigti

Dabar jūs atlikote visus „eXtreme“degiklio veiksmus, perskaitėte mikroschemos ROM, atidarėte HEX failą ir priglaudėte jį prie lusto ir įsitikinote, kad blykstė veikia gerai, taip pat sužinojote, kaip nustatyti saugiklius ir įjungti juos į lustą.

Jei turite klausimų, mielai atsakysiu arba pakeisiu mokymo programą, kad ji būtų aiškesnė.

Kai kurių mikroschemų meniu gali būti, kad jo trūksta lusto pasirinkimo išskleidžiamajame sąraše. Arba galite susidurti su rašymo klaidomis ir patikrinti klaidas. Tokiais atvejais, norėdami išspręsti problemą, perskaitykite kitą mano instrukcinį „Hacking eXtreme Burner“.

Laimingas programavimas.

Rekomenduojamas: