Obsah:

POUŽITIE Extrémnej napaľovačky pre programovanie mikrokontroléra AVR: 8 krokov
POUŽITIE Extrémnej napaľovačky pre programovanie mikrokontroléra AVR: 8 krokov

Video: POUŽITIE Extrémnej napaľovačky pre programovanie mikrokontroléra AVR: 8 krokov

Video: POUŽITIE Extrémnej napaľovačky pre programovanie mikrokontroléra AVR: 8 krokov
Video: Mgr. Jakub Krchňavý – O extrémoch pri náhodnom výbere 2024, Júl
Anonim
POUŽITIE Extrémnej napaľovačky na programovanie mikrokontroléra AVR
POUŽITIE Extrémnej napaľovačky na programovanie mikrokontroléra AVR

Všetko, čo máte, bratstvo používateľov AVR, a tí, ktorí práve vstupujú do streamu, Niektorí z vás začali s mikrokontrolérmi PIC a niektorí začali s ATMEL AVR, toto je napísané pre vás!

Kúpili ste si teda USBASP, pretože je lacné a efektívne flashovať ROM vo vašom zariadení Atmega, alebo možno v rade ATTINY. Tieto je možné získať za menej ako 5 $, ako čínske klony open-source USB-ASP! AVRdude je softvér na ich programovanie.

Nepochybne viete, ako vytvoriť súbor Hex pomocou programu Atmel Studio (stále používam AVR Studio v4.19 namiesto najnovšieho v7, pretože je na mojom ľahkom jednojadrovom prenosnom počítači s procesorom rýchlejšie a rýchlejšie)/ Ak čítate tento článok, nainštalujte si Netbook a WINAVR. Všetko, čo je napísané v DotNet, beží POMALY! a novšie verzie sú navrhnuté tak, aby váš notebook bežal ako korytnačka! Môžete použiť Studio v4.19, najväčšiu verziu aplikácie Studio od ATMEL pre mikrokontroléry AVR, prepnúť na verziu 7, keď to skutočne potrebujete pre neskoršie čipy, a zvýšiť tak produktivitu svojho času na prenosnom počítači, namiesto čakania pracovať! To je to, čo odporúčam.

Typický príkazový riadok AVR vole na naprogramovanie Atmegy so súborom Hex beží takto:

NAPÍŠTE NA BLESK: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

tu pwmeg1.hex je hexadecimálny súbor Intel, ktorý sa má „napáliť“alebo „flashovať“do „cieľového MCU“v mikrokontroléri Lingo

To je sústo na zapamätanie! Môžete napísať dávkový súbor a spustiť ho na príkazovom riadku v systéme Windows s názvom write_flash.bat. Podobne pri čítaní poistiek si treba zapamätať ďalšie sústo riadku! Začína to byť únavné.

pre čítanie flash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Riešením je použiť jeden z užívateľsky prívetivých nástrojov front-endu GUI na AVRdude, ako je Bitburner, programátor Khazama, ktoré sú si svojou povahou takmer podobné. eXtreme Burner. Použil som voľne použiteľný nástroj: eXtreme Burner veľa, je všestranný, spoľahlivý a o tom je tento návod. Nie je možné len flashovať váš hex súbor / program na MPU, pomocou príkazov vydaných AVRdude na pozadí, ale môže vám tiež pomôcť nastaviť POISTKY, čo je komplikovaný predmet, ktorý často mätie začiatočníkov v programovaní AVR. Tu je odkaz na vynikajúci návod na tému POISTKY, ktorý si môžete prejsť alebo oprášiť. Varovanie: ATMEL používa stav „1“bitu FUSE na označenie svojho „predvoleného“stavu (neaktívny alebo neprogramovaný stav) a „0“na označenie naprogramovaného alebo nastaveného alebo aktivovaného stavu! To je pravý opak toho, čo robíte s bitmi FUSE v mikrokontroléri PIC. Buďte opatrní pri úprave bitov poistky hodín, ako je zmena vnútorných hodín RC na externý kryštál, pretože to spôsobí problémy s pripojením k čipu bez nastavenia externého kryštálu. Podobne buďte opatrní pri zmene stavu kritických poistkových bitov, ako sú SPIEN a RESET DISABLE (tieto by mali byť vždy nastavené na SPIEN = 0 a RESET DISABLE = 1, ak chcete pokračovať v komunikácii s MCU pomocou USB-ASP v režime ISP / SPI ! Ak to pokazíte, budete potrebovať programátor vysokého napätia na „odblokovanie“vášho AVR.

Ak sa pýtate „čo sú to vlastne poistky“a „čo robia“? Prečítajte si tento vynikajúci zápis:

Ďalšou príbuznou témou je spôsob, ako nastaviť rýchlosť taktu vášho AVR MPU, ktorá dokáže dosahovať rýchlosti od 1 MHz do 16 alebo 20 MHz. K dispozícii je tiež špeciálna možnosť nízkofrekvenčného kryštálu s výkonom 31,25 kHz, ktorá, ak je správne navrhnutá, môže spôsobiť, že váš AVR vybije batérie AA po dobu 3 mesiacov!

Oba tieto, hodinové poistkové bity (frekvenčné aj typ hodinového interného RC/externého kryštálu a ďalšie poistkové bity) je možné nastaviť na karte POISTKY v programe eXtreme Burner. Najprv vám ukážeme, ako si prečítať ROM, a potom ako flashovať hex súbor pomocou eXtreme Burner. Môžete samozrejme použiť aj online poistkové webové stránky AVR, ale možnosť, ktorú vysvetľujem, môže byť použitá aj vtedy, keď ste offline, kdekoľvek.

Krok 1: Nastavenia, ktoré je potrebné vykonať:

Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať
Nastavenia, ktoré je potrebné vykonať

Obrázky zobrazujú NASTAVENIA, ktoré je potrebné vykonať pred začatím práce. (je to len raz). V položke podponuky „Hardvérové nastavenia“vyberáme 375 Hz, pretože väčšina MCU z výrobného závodu ATMEL je nastavená na predvolené nastavenia 1 MHz procesora na vnútornom RC oscilátore. Rýchlosť ISP je štvrtinou F_cpu. To nám dáva 375 khz najbližšiu rýchlosť, môžete ísť aj na nižšiu rýchlosť, nebude to mať veľký rozdiel. Môžete sa pokúsiť pripojiť a nechať to na predvolenom nastavení a zadať „prečítať všetko“, ak zlyhá, môžete prísť sem a zmeniť rýchlosť a znížiť ju.

Pretože ak sa nemôžete pripojiť (v okne programátora sa zobrazí správa „nemôžem komunikovať s čipom, nemôžem SCK“), znamená to, že hodinový signál z vášho počítača sa nemôže synchronizovať s vašim čipom, ktorý sa pokúšate prečítať alebo program)., nebudete môcť zmeniť rýchlosť procesora ani zmeniť jeho rýchlosť a typ! Spojenie je teda základom všetkého! Je to ako „PRVÝ KONTAKT“, ako to vidíte vo filmoch so Spielbergom. Ak sa vám to podarí, môžete vždy zvýšiť taktovaciu frekvenciu vášho MCU príslušným naprogramovaním poistiek a neskôr použiť na pripojenie vyššiu rýchlosť.

Prezrite si tu poskytnuté snímky hardvérového nastavenia a potom nastavte aj typ zariadenia (čip, ktorý sa pokúšate naprogramovať, číslo modelu).

Krok 2: Nastavenie typu zariadenia

Nastavenie typu zariadenia
Nastavenie typu zariadenia
Nastavenie typu zariadenia
Nastavenie typu zariadenia
Nastavenie typu zariadenia
Nastavenie typu zariadenia

pozrite sa na snímku obrazovky, obrázok 1, nastavili sme „ATTINY44A“. Jedná sa o 14 -kolíkový mikrokontrolér bez UART. Nedávno som to používal, verziu SSU. Ak ste nainštalovali skladovú verziu Extreme burner, neuvidíte Attiny44A v rozbaľovacom zozname výberu zariadení, uvidíte Attiny44, ktorý na všetky účely môžeme použiť aj na programovanie Attiny44A a zavedenie akéhokoľvek zariadenia, ktoré nie je uvedené v tomto rozbaľovacom zozname., prečítajte si môj ďalší návod „Hacking eXtreme Burner“.

Atmega88PA-AU používam aj s eXtreme Burner, ale v tomto návode všade uvádzame „Attiny44A“. Ako teraz vytvoríte verziu malého počítača 7 mm štvorcového SMD čipu a otestujete ho pomocou svojich programov? (pozrite si obrázky, ktoré označujú veľkosť čipu). Ak sa chcete dozvedieť viac, pozrite sa na môj ďalší návod, kde ukážem, ako vytvoriť zásuvné moduly vhodné pre Breadboard pomocou nástrojov Attiny44A-SSU a ATmega88PA-AU.

Akonáhle sa naučíte túto techniku, budete si môcť vyskúšať akýkoľvek čip, s ktorým by ste si chceli pohrávať, či už je to balík SMD alebo DIL. Napríklad som dokonca podobným spôsobom použil čip SMD dodávaný v 32-pinovom Quad balení s 32-kolíkovým rozstupom 0,8 mm (Atmega88A)!

. Alebo môžete použiť 28 -pinovú DIL verziu Attiny44A pre tento návod alebo akýkoľvek iný AVR, ktorý práve používate, aby ste vyskúšali eXtreme Burner na programovanie AVR.

Krok 3: Vydajte READ ALL alebo READ FLASH

Vydajte READ ALL alebo READ FLASH
Vydajte READ ALL alebo READ FLASH
Vydajte READ ALL alebo READ FLASH
Vydajte READ ALL alebo READ FLASH

Pripojte zariadenie USBasp k portu USB prenosného počítača, predpokladám, že ste už nainštalovali správne ovládače, ktoré boli dodané s programátorom, a že sú správne detekované. Malo by sa objaviť, ak je, hneď ako sa zapojí do portu USB, v časti „Zariadenia a tlačiarne“v ponuke Štart systému Windows! Pripojte cieľový čip na jeho doske k USBasp (medzi tieto dva konektory, konkrétne piny: MOSI, RESET, MISO, SCK, Vcc, Ground, musí byť zapojený príslušný pin SDI // ISP pomocou 6 alebo 10 kolíkového kábla).

Vydajte ČÍTAJTE VŠETKO z PONUKY Xtreme Burner. Pozrite si obrázky a správy, ktoré sme dostali. Na vašej obrazovke sa pôvodne v prvej záložke napaľovačky zobrazovalo „FF“pre ROM, po prečítaní všetkého sa zobrazí skutočný obsah pamäte ROM na čipe. Ak ste použili čerstvý čip z výroby alebo vymazaný čip, v časti „Prečítajte si všetko“sa v obsahu zobrazí FF. Nenaprogramovaný čip zobrazí v pamäti „FF“, rovnako ako EEPROM (druhá karta v programátore), posledná karta zobrazuje POISTKY.

Po PREČÍTANÍ VŠETKÝCH by tri karty zobrazovali správne informácie obsiahnuté v čipe. Predtým by to neplatilo, vydajte najskôr Prečítajte si všetko, hneď ako všetko prepojíte.

Krok 4: Napíšte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)

Zapisujte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)
Zapisujte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)
Zapisujte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)
Zapisujte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)
Zapisujte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)
Zapisujte do formátu Flash (váš hexadecimálny súbor bol na čipe vložený do pamäte ROM)

Vyberte súbor pomocou dialógového okna Prehľadávať, ktoré sa otvorí po kliknutí na prvú ikonu na paneli s ponukami vyššie. Vybrali sme jeden súbor, ako vidíte na obrázku. Keď vyberiete hexadecimálny súbor (hexadecimálny formát Intel), panel s ponukami, ktoré zobrazujú „žiadny súbor nebol načítaný“, sa zmení na názov súboru, ktorý ste načítali.

Teraz zadajte príkaz Flash na zápis z ponuky softvéru. Správy vám ukážu, čo sa deje. pozri si fotky.

Po úspešnom zápise by ste videli, že „FF“, ktoré označuje čerstvú alebo vymazanú ROM, sa zmení na to, čo obsahuje váš program alebo hex súbor. Veľkosť alebo počet bajtov, ktoré váš súbor zaberá v pamäti ROM, vám je tiež známy po pohľade na túto obrazovku, ktorá vám ukazuje skutočný obsah pamäte ROM vášho cieľového čipu, na ktorý ste práve blikali.

Krok overenia sa vykonáva aj načítaním čipu podľa NASTAVENÍ, ktoré sme urobili v prvom kroku. Na správach je vidieť, že overenie bolo tiež úspešné.

Krok 5: POISTKY: Ako ich nastaviť v EXtreme Burner

POISTKY: Ako ich nastaviť v EXtreme Burner
POISTKY: Ako ich nastaviť v EXtreme Burner

Keď ste vydali PREČÍTAŤ VŠETKY, poistky boli prečítané z čipu. Toto je prvý obrázok fuses.jpg.

Teraz ich možno musíte zmeniť na niečo iné. Poistky pozostávajú zo 4 políčok v poslednej TAB na obrazovke vašej eXtreme Burner. Menovite LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE a CALIBRATION BYTE. v uvedenom poradí sú zobrazené.

Môžete jednoducho použiť ONLINE kalkulačku poistiek a vyplniť ich. Ako na obrázku

eleccelerator.com/fusecalc/fusecalc.php?

Alebo môžete použiť napaľovačku eXtreme, aby to urobila za vás. offline offline kedykoľvek: Vyberte z rozbaľovacieho zoznamu, ktorý sa zobrazí po kliknutí na tlačidlo PODROBNOSTI, ktoré sa nachádza pod každým druhom bajtu poistky. Dvakrát kliknite na ľubovoľný riadok na obrazovke PODROBNOSTI a sledujte, ako sa zmení zo SET na CLEARED, a prepnite jeho stav kliknutím myši na každý riadok. Fuse Byte v poli nad ním sa zodpovedajúcim spôsobom zmení.

Ak sa zaujímate o to, čo sú to poistky a čo robia? Prečítajte si tento vynikajúci zápis:

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

Krok 6: Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner

Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner
Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner
Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner
Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner
Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner
Nastavenie poistiek pomocou kalkulačky poistiek EXtreme Burner

Môžete vidieť obrazovku s podrobnosťami, ktorá sa zobrazuje pre každý z bytov poistky (NÍZKA, VYSOKÁ, ROZŠÍRENÁ, ZÁMOK a kalibrácia). Kalibračný bajt by mal zostať nezmenený, pretože ukazuje byte kalibračných údajov v AVR, ktorý platí pre interný RC oscilátor. Bajt LOCK je zvyčajne iba FF (nie je uvedené na obrázkoch vyššie), pretože by ste vo fáze učenia nezamykali Flash alebo EEPROM. Menili by ste iba NÍZKE, VYSOKÉ a ROZŠÍRENÉ bajty. Buď opatrný !

Ak zmeníte bit SPIEN na 1 (neprogramovaný stav je v mikrokontroléroch AVR 1), nebudete môcť komunikovať so svojim čipom pomocou USBASP ani iného programátora! Predvolený stav je tiež zobrazený na vašej obrazovke pre každý poistkový bit. Toto vás upozorní, že predvolená hodnota SPIEN je vždy 0 (naprogramovaný stav), aby ste mohli používať režim SPI na programovanie ISP. Debug-wire alebo DW bit vždy zostane 1 (neprogramovaný), keď je SPIEN nastavený na 0. Toto je tiež jeho predvolený stav. V prípade bitov rozšírených poistiek by mala byť možnosť „Self Programming Enable“povolená „1“(neprogramovaná), ak na naprogramovanie cieľového čipu používate USB-ASP (nepoužívate bootloader ROM ako v ARDUINO).

Bity CLOCK (3 v počte) môžete zmeniť na interný RC alebo externý kryštál. Normálne to nechávam na interný RC, ktorý vám umožní získať 2 ďalšie piny, ktoré uvoľnenie vonkajšieho kryštálu znamená použiť ako piny PORT pre vaše projekty AVR. Externý kryštál je zvyčajne potrebný, keď vo svojom projekte potrebujete načasovanie s vysokou presnosťou. Študentom stačí vnútorné RC.

Akonáhle sa usadíte na niektorej kombinácii poistiek, už by ste ho nevymenili. Bolo by to jednorazové. Blikáte iba ROM alebo niekedy aj EEPROM. Na blikanie EEPROM samostatného súboru.eep vygeneruje vaše štúdio WINAVR / ATMEL, ak váš program vôbec používa na ukladanie údajov EEPROM. V opačnom prípade zostane EEPROM nevyužitá a bude doplnená údajmi „FF“, ktoré zobrazujú „žiadny stav údajov DATA“pamäte EEPROM.

Krok 7: Konečná hodnota poistkových bitov

Konečná hodnota poistkových bitov
Konečná hodnota poistkových bitov

Po nastavení všetkých bitov poistky a zatvorení políčka PODROBNOSTI, ktoré ste použili, uvidíte hodnotu bitov poistky vypočítanú programom (pozri obrázok). Zostáva iba vydať „Napíšte poistky“pomocou ponuky. A pozrite sa na správy, ktoré hlásia úspešné napísanie. Neskôr môžete z ponuky vydať aj PREČÍTAŤ VŠETKO a skontrolovať, či sa poistky načítané v poslednej TAB obrazovke horáka zhodujú s tým, čo ste chceli zapísať na čip. (Overenie poistky).

Všimli ste si, že na začiatku tohto Instructable, keď sme čítali POISTKY, obrazovka zobrazuje rovnaké hodnoty FUSE, aké vidíme tu! Je to preto, že toto sú poistky, ktoré často používam a len zriedka ich mením, keď ich nastavím v MCU, pokiaľ pri niektorých projektoch nezmením frekvenciu z 1 Mhz na 4 Mhz. AVR je možné nastaviť maximálne na 20 MHz (niektoré čipy iba do 16 MHz). Frekvencia, ktorú nastavíte pre F_cpu, závisí aj od napätia, s ktorým čip dodávate! Napríklad, ak váš čip pracuje od 1,8 V Vcc do 5,5 V Vcc (údajový list), nečakali by ste, že váš čip bude bežať na 20 MHz, ak ste k nemu dodali iba 1,8 V! príliš veľa od toho očakávaš! Tabuľka v dátovom liste vám hovorí, pri akom napätí na akom obrázku sa frekvencia končí. Čím vyššia je vaša frekvencia prevádzky čipu, tým viac tepla a energie spotrebuje. Predstavte si frekvenciu ako tlkot srdca zvieraťa. Hummingbird s vysokou frekvenciou srdcového tepu by mal väčšiu energetickú spaľovaciu silu za minútu v porovnaní s veľrybou alebo slonom s oveľa nižším srdcovým tepom! Potom však dokáže v kratšom čase oveľa viac. MCU je presne taký.

Krok 8: Dokončite

Teraz ste dokončili všetky kroky v napaľovačke eXtreme, prečítali ste si ROM čipu, otvorili ste súbor HEX a zaslali ho na čip a overili ste, či je blesk v poriadku, tiež ste sa naučili nastaviť poistky a zasunúť ich na čip..

Ak máte akékoľvek otázky, rád zodpoviem alebo upravím návod, aby bol jasnejší.

Pri niektorých čipoch môžete zistiť, že v rozbaľovacom zozname na výber čipov v ponuke chýba jeho záznam. Alebo sa môžete stretnúť s chybami pri zápise a overením chýb. V takýchto prípadoch si na vyriešenie problému prečítajte môj ďalší inštrukčný „Hacking eXtreme Burner“.

Veselé programovanie.

Odporúča: