Përmbajtje:

P USRDORIMI I Djegësit ekstrem për programimin e mikrokontrolluesit AVR: 8 hapa
P USRDORIMI I Djegësit ekstrem për programimin e mikrokontrolluesit AVR: 8 hapa

Video: P USRDORIMI I Djegësit ekstrem për programimin e mikrokontrolluesit AVR: 8 hapa

Video: P USRDORIMI I Djegësit ekstrem për programimin e mikrokontrolluesit AVR: 8 hapa
Video: Удивительные факты о ваших глазах! 2024, Korrik
Anonim
P USRDORIMI I Burnerit Ekstrem për Programimin e Mikrokontrolluesve AVR
P USRDORIMI I Burnerit Ekstrem për Programimin e Mikrokontrolluesve AVR

E gjithë vëllazëria e përdoruesve të AVR atje, dhe ata që sapo hynë në rrjedhë, Disa prej jush filluan me mikrokontrolluesit PIC dhe disa filluan me AVR ATMEL, kjo është shkruar për ju!

Kështu që keni blerë një USBASP sepse është e lirë dhe efektive të ndizni ROM në pajisjen tuaj Atmega, ose ndoshta gamën ATTINY. Këto mund të merren për nën 5 $, si klone kineze të USB-ASP me burim të hapur! AVRdude është programi për t'i programuar ato.

Ju padyshim e dini se si të krijoni një skedar Hex duke përdorur Atmel Studio (unë ende përdor AVR Studio v4.19 në vend të v7 më të fundit sepse është më i shpejtë dhe më i shpejtë në laptopin tim CPU të thjeshtë)/ Netbook dhe WINAVR instaloni nëse po e lexoni këtë. Çdo gjë e shkruar në DotNet funksionon NGAR! dhe versionet e mëvonshme janë krijuar për ta bërë laptopin tuaj të funksionojë si një breshkë! Ju mund të përdorni Studio v4.19 versionin më të madh të Studio nga ATMEL për mikrokontrolluesit AVR, duke kaluar në versionin 7 kur keni vërtet nevojë për çipat e mëvonshëm, dhe ta bëni kohën tuaj në laptop më produktiv, duke punuar në vend që të prisni! Kjo është ajo që unë rekomandoj.

Një linjë komande tipike e tipit AVR për të programuar një Atmega me një skedar Hex, funksionon kështu:

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

këtu pwmeg1.hex është skedari hex i Intel që do të "digjet" ose "flasohet" në "MCU të synuar" në mikrokontrolluesin Lingo

Kjo është një gojë për të kujtuar! Ju mund të shkruani një skedar grumbull dhe ta ekzekutoni atë në vijën e komandës në dritare, duke e quajtur atë write_flash.bat. Në mënyrë të ngjashme për të lexuar siguresat, një kafshatë tjetër e një rreshti për të kujtuar! Bëhet e lodhshme.

për të lexuar flash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Zgjidhja është përdorimi i një prej mjeteve GUI miqësore për përdoruesit paraprak për AVRdude si Bitburner, programues Khazama, të cilat janë pothuajse të ngjashme në meritë. eXtreme Burner. Unë kam përdorur mjetin falas për përdorim: eXtreme Burner shumë, i gjithanshëm, i besueshëm, dhe ky mësim ka të bëjë me këtë. Ai jo vetëm që mund të fusë skedarin / programin tuaj gjashtëkëndësh në MPU, duke përdorur komandat e lëshuara në AVRdude në sfond, por gjithashtu mund t'ju ndihmojë të vendosni FUSES i cili është një temë e komplikuar që shpesh ngatërron fillestarët me programimin AVR. Këtu është një lidhje me një tutorial të shkëlqyeshëm mbi temën e FUSES që mund të kaloni ose të kaloni. Një fjalë paralajmëruese: ATMEL përdor gjendjen '1' të një biti FUSE për të treguar gjendjen e tij 'të paracaktuar' (gjendjen e pacaktuar ose të paprogramuar) dhe '0' për të treguar gjendjen e tij të programuar ose të vendosur ose aktivizuar! Kjo është e kundërta e asaj që bëni me copat FUSE në një mikrokontrollues PIC. Kini kujdes kur modifikoni copat e siguresave të orës, si për shembull ndryshimi i orës së brendshme RC në kristal të jashtëm sepse kjo do të krijojë probleme në lidhjen me çipin pa një konfigurim të jashtëm kristalor. Në mënyrë të ngjashme, jini të kujdesshëm kur ndryshoni gjendjen e pjesëve kritike të siguresave si SPIEN dhe RESET DISABLE (këto duhet të vendosen gjithmonë në SPIEN = 0 dhe RESET DISABLE = 1 nëse dëshironi të vazhdoni të komunikoni me MCU me USB-ASP tuaj në modalitetin ISP / SPI Nëse e shqetësoni këtë, do t'ju duhet një programues i Tensionit të Lartë për të 'hequr tulla' AVR tuaj.

Nëse po pyesni "çfarë dreqin janë siguresat" dhe "çfarë bëjnë ata"? Lexoni këtë shkrim të shkëlqyer:

Një temë tjetër e lidhur është se si të vendosni shpejtësinë e orës të AVR MPU tuaj e cila është e aftë të shpejtojë nga 1Mhz deri në 16 ose 20Mhz. Ekziston edhe një opsion i veçantë i fuqisë kristal me frekuencë të ulët 31.25kHz i cili nëse projektohet siç duhet mund të bëjë që AVR juaj të mbarojë bateritë AA për 3 muaj!

Të dyja këto, bitët e siguresës së orës (si frekuenca ashtu edhe lloji i orës së brendshme RC/kristali i jashtëm, dhe bite të tjera të siguresave) mund të vendosen përmes skedës FUSES në ekstreme Burner. Së pari ne do t'ju tregojmë se si lexoni ROM -in, dhe pastaj si të ndizni skedarin gjashtëkëndësh duke përdorur eXtreme Burner. Sigurisht, ju gjithashtu mund të përdorni faqet e internetit të siguresave AVR në internet, por opsioni që shpjegoj mund të përdoret kur jeni jashtë linje gjithashtu, kudo.

Hapi 1: Cilësimet që do të bëhen:

Cilësimet që do të bëhen
Cilësimet që do të bëhen
Cilësimet që do të bëhen
Cilësimet që do të bëhen
Cilësimet që do të bëhen
Cilësimet që do të bëhen
Cilësimet që do të bëhen
Cilësimet që do të bëhen

Fotografitë tregojnë P SRCAKTIMET që duhen bërë para se të filloni punën tuaj. (është vetëm një herë). Nën artikullin e nën-menysë "Cilësimet e pajisjeve", ne zgjedhim 375Hz sepse shumica e MCU nga fabrika e ATMEL janë vendosur në Parametrat e paracaktuar të orës së CPU 1 Mhz në oshilatorin e brendshëm RC. Shpejtësia e ISP -së është një e katërta e F_cpu. Kjo na jep shpejtësinë më të afërt 375 Khz, ju gjithashtu mund të shkoni në një shpejtësi më të ulët, nuk do të ketë shumë ndryshim. Mund të përpiqeni të lidheni duke e lënë këtë në parazgjedhjen e tij dhe të lëshoni një 'lexoni të gjithë', nëse dështon, atëherë mund të vini këtu dhe të ndryshoni shpejtësinë, duke e bërë atë më të ulët.

Sepse nëse nuk jeni në gjendje të lidheni (mesazhi do të jepet në dritaren e programuesit "i paaftë për të komunikuar me çip, nuk mund të SCK" do të thotë që sinjali i orës nga kompjuteri juaj nuk mund të sinkronizohet me çipin tuaj që po përpiqeni të lexoni ose program)., ju nuk do të jeni në gjendje të ndryshoni shpejtësinë e orës të CPU ose të ndryshoni shpejtësinë dhe llojin e tij! Pra lidhja është baza e gjithçkaje! Likeshtë si "KONTAKTI I PAR" siç shihni në filmat e Spielberg. Nëse keni sukses në këtë, gjithmonë mund të rrisni shpejtësinë e orës së MCU tuaj duke programuar siguresat në përputhje me rrethanat, dhe më vonë përdorni një shpejtësi më të lartë për t'u lidhur.

Pra, kaloni nëpër çastet e cilësimeve të harduerit të ofruara këtu, pastaj vendosni edhe llojin e pajisjes (çipi që po përpiqeni të programoni, numri i modelit të tij).

Hapi 2: Vendosja e llojit të pajisjes tuaj

Vendosja e Lloji i Pajisjes suaj
Vendosja e Lloji i Pajisjes suaj
Vendosja e Lloji i Pajisjes suaj
Vendosja e Lloji i Pajisjes suaj
Vendosja e Lloji i Pajisjes suaj
Vendosja e Lloji i Pajisjes suaj

shihni pamjen e ekranit, Figura 1, ne kemi vendosur "ATTINY44A". Ky është një Mikrokontrollues 14 pin pa UART. Unë e kam përdorur këtë kohët e fundit, versionin SSU. Nëse keni instaluar versionin e aksioneve Extreme burner nuk do ta shihni Attiny44A në listën zbritëse të përzgjedhjes së pajisjes, do të shihni një Attiny44 të cilin për të gjitha qëllimet mund ta përdorim për të programuar edhe Attiny44A, për të prezantuar ndonjë pajisje që nuk është e shënuar në këtë listë zbritëse, lexoni "Hacking eXtreme Burner" tim tjetër udhëzues.

Unë kam qenë duke përdorur Atmega88PA-AU gjithashtu me eXtreme Burner, por në këtë udhëzues ne përmendim "Attiny44A" kudo. Tani si e bëni një version të bukës të çipit SMD të vogël 7 mm katror dhe e provoni atë me programet tuaja? (shiko fotografitë që tregojnë madhësinë e çipit), Për këtë, shihni udhëzimet e mia të tjera ku demonstroj se si të bëj module Plug-in të përshtatshme për Breadboard duke përdorur Attiny44A-SSU dhe ATmega88PA-AU

Pasi të keni mësuar këtë teknikë, do të jeni në gjendje të kontrolloni çdo çip me të cilin jeni kurioz të punoni, pavarësisht nëse është paketa SMD ose DIL. Për shembull, unë madje kam përdorur një çip SMD që vjen në një paketë Quad 32-pin 0.8mm pin katran (Atmega88A) në mënyrë të ngjashme!

Me Ose thjesht mund të përdorni versionin 28pin DIL të Attiny44A për këtë Instructable ose çfarëdo AVR që përdorni në këtë moment për të provuar eXtreme Burner për programimin AVR..

Hapi 3: Lëshoni një LEXIM T ALL GJITHA ose LEXONI FLASH

Lëshoni një LEXONI T ALL GJITHA ose LEXONI FLASH
Lëshoni një LEXONI T ALL GJITHA ose LEXONI FLASH
Lëshoni një LEXONI T ALL GJITHA ose LEXONI FLASH
Lëshoni një LEXONI T ALL GJITHA ose LEXONI FLASH

Lidhni USBasp -in tuaj me portën USB të laptopit tuaj, supozoj se tashmë keni ngarkuar drejtuesit e duhur që erdhën me programuesin tuaj dhe që është zbuluar saktë. Duhet të shfaqet nën 'Pajisjet dhe Printerët' në menunë e fillimit të dritareve nëse do të ishte, sapo të lidhej me portën USB! Lidhni çipin tuaj të synuar në bordin e tij me USBasp tuaj (kunjat përkatëse SDI // ISP duke përdorur kabllo 6 pin ose 10 pin duhet të lidhen midis të dyjave, përkatësisht kunjat: MOSI, RESET, MISO, SCK, Vcc, Ground).

Lëshoni një LEXIM T ALL GJITHA nga MENU e Xtreme Burner. Shikoni fotot dhe mesazhet që kemi marrë. Fillimisht ekrani juaj tregoi 'FF' për ROM në TAB -in e parë të ndezësit, pasi të lexoni të gjitha do të tregojë përmbajtjen aktuale të ROM -it në çip. Nëse keni përdorur një çip të freskët të fabrikës ose një çip të fshirë do të shihni FF në përmbajtje pas një "Lexoni të gjitha". Një çip i paprogramuar do të tregojë 'FF' në kujtesën e tij, ashtu edhe një EEPROM (skeda e dytë në programues), skeda e fundit tregon FUSES.

Pas një LEXIMI T ALL GJITHA, 3 skedat do të shfaqnin informacionin e saktë të përfshirë në çip. Para kësaj nuk do, kështu që lëshoni një Lexoni të gjithë së pari sapo të lidhni gjithçka.

Hapi 4: Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)

Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)
Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)
Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)
Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)
Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)
Shkruani në Flash (skedari juaj Hex u përplas në ROM në çip)

Zgjidhni një skedar duke përdorur dialogun Shfleto që hapet kur klikoni në ikonën e parë në shiritin MENU më lart. Ne zgjodhëm një skedar siç e shihni në figurë. Pasi të zgjidhni skedarin gjashtëkëndësh (format hex intel) shiriti i menusë i cili tregoi "asnjë skedar i ngarkuar" ndryshoi në emrin e skedarit që keni ngarkuar.

Tani lëshoni një Shkruani Flash nga Menyja e softuerit. Mesazhet do t'ju tregojnë se çfarë po ndodh. shikoni fotot.

Pas një shkrimi të suksesshëm, do të shihni "FF" që shënon një ndryshim të ri ose të fshirë të ROM në atë që përmban programi juaj ose skedari gjashtëkëndësh. Madhësia ose numri i bajtëve që skedari juaj zë në ROM është gjithashtu i njohur për ju duke parë këtë ekran, i cili ju tregon përmbajtjen aktuale të ROM -it të çipit tuaj të synuar që keni ndezur pikërisht tani.

Hapi i verifikimit bëhet gjithashtu duke lexuar çipin, sipas SETTINGS që bëmë në hapin e parë. Kjo shihet në mesazhet se verifikimi ishte gjithashtu i suksesshëm.

Hapi 5: SIGURAT: Si t'i vendosni ato në djegës ekstrem

SIGURAT: Si t'i vendosni ato në djegës ekstrem
SIGURAT: Si t'i vendosni ato në djegës ekstrem

Kur keni lëshuar një LEXONI T ALL GJITHA siguresat u lexuan nga çipi. Kjo është fotografia e parë e treguar siguresat.jpg.

Tani ndoshta ju duhet t'i ndryshoni ato në diçka tjetër. Siguresat përbëhen nga 4 kuti në TAB -in e fundit në ekranin tuaj ekstreme Burner. Domethënë BYTE FIZUAR I ULT, BYTE FIZUAR I LART,, BYTE FIZUAR I ZGJATUR, BYTE FIZORE LOCK dhe BYTE KALIBRIMI. në atë renditje ato tregohen.

Ju thjesht mund të përdorni një llogaritës siguresash ONLINE dhe t'i plotësoni ato si ai në

eleccelerator.com/fusecalc/fusecalc.php?

Ose mund të përdorni ndezësin ekstrem për ta bërë atë për ju. offline vetë në çdo kohë: Zgjidhni nga lista rënëse që shfaqet kur klikoni në butonin DETAJET që është aty poshtë çdo lloj bajti siguresash. Thjesht klikoni dy herë në çdo rresht në ekranin DETAJE dhe shikoni se si ndryshon nga SET në CLEARED dhe ndryshoni gjendjen e tij me klikimin e miut në secilën rresht. Bajti i Siguresës në kutinë sipër do të ndryshonte në përputhje me rrethanat.

Nëse po pyesni "çfarë dreqin janë siguresat" dhe "çfarë bëjnë ata"? Lexoni këtë shkrim të shkëlqyer:

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

Hapi 6: Vendosja e siguresave duke përdorur Llogaritësin e siguresave EXTreme Burner

Vendosja e siguresave duke përdorur Llogaritësin e siguresave EXTreme Burner
Vendosja e siguresave duke përdorur Llogaritësin e siguresave EXTreme Burner
Vendosja e siguresave duke përdorur Llogaritësin e siguresave EXTreme Burner
Vendosja e siguresave duke përdorur Llogaritësin e siguresave EXTreme Burner
Vendosja e siguresave duke përdorur Llogaritësin e siguresave të djegies ekstreme
Vendosja e siguresave duke përdorur Llogaritësin e siguresave të djegies ekstreme

Ju mund të shihni ekranin e detajeve që shfaqet për secilin nga bajtët e siguresave (LOW, HIGH, EXTENDED, LOCK dhe Calibration). Bajti i Kalibrimit duhet të lihet i pandryshuar pasi tregon bajtin e të dhënave të kalibrimit në AVR që zbatohet për oshilatorin e brendshëm RC. Bajti LOCK është zakonisht vetëm FF, (nuk diskutohet në fotot e mësipërme) pasi nuk do të mbyllni Flash ose EEPROM gjatë fazës së mësimit. Ju do të ndryshoni vetëm bajtët e ulët, të lartë dhe të zgjeruar. Bej kujdes !

Nëse ndryshoni bitin SPIEN në 1 (gjendja e paprogramuar është 1 në mikrokontrolluesit AVR) nuk do të jeni në gjendje të komunikoni me çipin tuaj duke përdorur USBASP ose ndonjë programues! Gjendja e paracaktuar shfaqet gjithashtu në ekranin tuaj për secilin bit siguresash. Kjo ju paralajmëron se parazgjedhja e SPIEN është gjithmonë 0 (gjendje e programuar) për t'ju lejuar të përdorni modalitetin SPI për programimin e ISP. Teli i korrigjimit ose biti DW lihet gjithmonë 1 (i paprogramuar) kur SPIEN është vendosur në 0. Kjo është edhe gjendja e tij e paracaktuar. Gjithashtu, në bitët e Siguresës së Zgjeruar 'Vetë-programimi aktivizohet' duhet të jetë '1' (i paprogramuar) nëse jeni duke përdorur USB-ASP tuaj për të programuar çipin tuaj të synuar (duke mos përdorur ROM bootloader si në ARDUINO).

Mund të ndryshoni bitët e CLOCK (3 në numër) për të zgjedhur RC të brendshëm ose kristal të jashtëm. Normalisht e lë për RC të brendshme e cila ju lejon të merrni 2 kunja shtesë që lirimi i kristalit të jashtëm nënkupton përdorimin e tyre si kunja PORT për projektet tuaja AVR. Zakonisht kristali i jashtëm është i nevojshëm kur keni nevojë për kohë të saktësisë së lartë në projektin tuaj. Për nxënësit RC e brendshme është e mjaftueshme.

Zakonisht sapo të vendosni në një kombinim siguresash nuk do ta ndryshonit atë. Do të ishte një herë. Ju do të ndizni vetëm ROM -in ose ndonjëherë edhe EEPROM -in. Për ndezje, skedari i veçantë.eep krijohet nga studio juaj WINAVR / ATMEL nëse programi juaj përdor EEPROM për të ruajtur të dhënat. Përndryshe EEPROM mbetet e papërdorur, e mbushur me të dhënat 'FF' që tregojnë 'JO gjendje të dhënash' të EEPROM.

Hapi 7: Vlera përfundimtare e copave të siguresave

Vlera përfundimtare e copave të siguresave
Vlera përfundimtare e copave të siguresave

Pasi të keni vendosur të gjitha bitet e siguresave dhe të mbyllni kutitë DETAJE që keni përdorur, mund të shihni vlerën e bitave të siguresave të llogaritura nga programi (shiko figurën). Mbetet të lëshoni një "Shkruani siguresat" duke përdorur menunë. Dhe shikoni mesazhet që raportojnë një shkrim të suksesshëm. Më vonë, ju gjithashtu mund të lëshoni një LEXONI T ALL GJITHA nga menyja dhe të kontrolloni nëse siguresat e lexuara në TAB -in e fundit të ekranit të ndezjes përkojnë me atë që keni dashur t'i shkruani çipit. (Verifikimi i siguresave).

Ju do të vini re se në fillim të këtij Instructable kur bëmë një REAL FUSES, ekrani tregon të njëjtat vlera FUSE që shohim këtu! Kjo ndodh sepse këto janë siguresat që unë shpesh përdor dhe rrallë i ndryshoj sapo i vendos në MCU -në time, nëse nuk e ndryshoj frekuencën nga 1 Mhz në 4Mhz për disa projekte. AVR mund të vendoset në maksimum 20 Mhz (disa patate të skuqura vetëm deri në 16 Mhz). Frekuenca që vendosni për F_cpu gjithashtu varet nga Tensioni me të cilin furnizoni çipin! Për shembull, nëse çipi juaj funksionon nga 1.8V të Vcc deri në 5.5V të Vcc (fleta e të dhënave referojuni) nuk do të prisnit që të punoni me Çipin tuaj në 20 mhz nëse i furnizoni vetëm 1.8V! ju prisni shumë nga ajo! Një tabelë në fletën e të dhënave ju tregon në çfarë tensioni frekuenca zbret në cilën figurë. Sa më e lartë të jetë frekuenca juaj e funksionimit të çipit, aq më shumë nxehtësi dhe më shumë energji konsumon. Mendoni për Frekuencën si Rrahjet e Zemrës së një kafshe. Një Hummingbird me një ritëm të lartë të rrahjeve të dëgjimit do të kishte një djegie më të madhe të energjisë në minutë në krahasim me një balenë ose elefant me një rrahje zemre shumë më të ulët! Por atëherë mund të bëjë shumë më tepër në një kohë më të shkurtër. MCU është pikërisht kështu.

Hapi 8: Përfundoni

Tani keni përfunduar të gjitha hapat në ndezësin ekstrem, keni lexuar një ROM të një çipi, keni hapur një skedar HEX dhe e keni hedhur atë në çip dhe keni verifikuar që blici është në rregull, gjithashtu keni mësuar se si t'i vendosni siguresat dhe t'i ndizni ato në çip. Me

Nëse keni ndonjë pyetje, do të jem i lumtur t'ju përgjigjem ose modifikoj tutorialin për ta bërë më të qartë.

Për disa patate të skuqura mund të gjeni se hyrja e tij mungon në listën zbritëse të përzgjedhjes së çipave në meny. Ose mund të përballeni me gabime në shkrim dhe të verifikoni gabimet. Në raste të tilla, ju lutemi lexoni udhëzuesin tim tjetër "Hacking eXtreme Burner" për të zgjidhur çështjen.

Programim i lumtur.

Recommended: