Obsah:

POUŽITÍ EXtreme Burner pro programování mikrokontroléru AVR: 8 kroků
POUŽITÍ EXtreme Burner pro programování mikrokontroléru AVR: 8 kroků

Video: POUŽITÍ EXtreme Burner pro programování mikrokontroléru AVR: 8 kroků

Video: POUŽITÍ EXtreme Burner pro programování mikrokontroléru AVR: 8 kroků
Video: Jak číst data EPROM / EEPROM 2024, Listopad
Anonim
POUŽITÍ EXtreme Burner pro programování mikrokontroléru AVR
POUŽITÍ EXtreme Burner pro programování mikrokontroléru AVR

Všechno vaše bratrství uživatelů AVR a ti, kteří právě vstupují do streamu, Někteří z vás začali s mikrokontroléry PIC a někteří začali s ATMEL AVR, to je napsáno pro vás!

Takže jste si koupili USBASP, protože je levné a efektivní flashovat ROM na vašem zařízení Atmega nebo třeba na ATTINY. Ty lze získat za méně než 5 $, jako čínské klony Open source USB-ASP! AVRdude je software, který je programuje.

Nepochybně víte, jak generovat Hex soubor pomocí Atmel Studio (stále používám AVR Studio v4.19 místo nejnovější verze v7, protože je na mém lehkém jednojádrovém notebooku s procesorem rychlejší a rychlejší)/ Pokud čtete tento, nainstalujte Netbook a WINAVR. Cokoli napsané v DotNet běží POMALU! a novější verze jsou navrženy tak, aby váš notebook běžel jako želva! Můžete použít Studio v4.19, největší verzi Studio od ATMEL pro mikrokontroléry AVR, přepnout na verzi 7, když to opravdu potřebujete pro pozdější čipy, a zvýšit tak svůj čas na notebooku produktivněji, místo čekání pracovat! To je to, co doporučuji.

Typický příkazový řádek AVR pro vole pro programování Atmega pomocí Hex souboru běží takto:

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

zde pwmeg1.hex je hexadecimální soubor Intel, který se má „vypálit“nebo „flashovat“do „cílového MCU“v mikrokontroléru Lingo

To je sousto k zapamatování! Můžete napsat dávkový soubor a spustit jej na příkazovém řádku v systému Windows s názvem write_flash.bat. Podobně pro čtení pojistek, další soustu řádku na zapamatování! Stává se to únavné.

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

Řešením je použít pro AVRdude jeden z uživatelsky přívětivých nástrojů front-endu GUI jako Bitburner, programátor Khazama, které jsou si svými zásluhami téměř podobné. eXtreme Burner. Použil jsem bezplatný nástroj: eXtreme Burner hodně, jeho univerzální, spolehlivý a tento tutoriál je o tom. Může nejen flashovat váš hex soubor / program na MPU, pomocí příkazů vydaných AVRdude na pozadí, ale také vám pomůže nastavit POJISTKY, což je složitý předmět, který často matou začátečníky s programováním AVR. Zde je odkaz na vynikající výukový program na téma POJISTKY, který si můžete projít nebo oprášit. Upozornění: ATMEL používá stav „1“bitu FUSE k označení svého „výchozího“stavu (nenastavený nebo neprogramovaný stav) a „0“k označení naprogramovaného nebo nastaveného nebo aktivovaného stavu! To je pravý opak toho, co děláte s bity FUSE v mikrokontroléru PIC. Při úpravách bitů pojistky hodin, jako je změna interních hodin RC na externí krystal, buďte opatrní, protože to způsobí problémy s připojením k čipu bez nastavení externích krystalů. Podobně buďte opatrní při změně stavu kritických pojistkových bitů, jako je SPIEN a RESET DISABLE (tyto by měly být vždy nastaveny na SPIEN = 0 a RESET DISABLE = 1, pokud chcete pokračovat v komunikaci s MCU pomocí USB-ASP v režimu ISP / SPI ! Pokud to zpackáte, budete potřebovat programátor vysokého napětí k „odblokování“vašeho AVR.

Pokud vás zajímá „co to sakra jsou pojistky“a „co dělají“? Přečtěte si tento skvělý zápis:

Další související téma je, jak nastavit rychlost hodin vašeho AVR MPU, která je schopná rychlostí od 1 MHz do 16 nebo 20 MHz. K dispozici je také speciální nízkofrekvenční krystalový výkon 31,25 kHz, který, pokud je správně navržen, může způsobit, že váš AVR vybije baterie AA po dobu 3 měsíců!

Oba tyto, bitové pojistkové bity (jak frekvence, tak typ interního RC/externího krystalu hodinek a další pojistkové bity) lze nastavit na kartě FUSES v eXtreme Burner. Nejprve vám ukážeme, jak přečíst ROM, a potom jak flashovat hex soubor pomocí eXtreme Burner. Samozřejmě můžete také použít online pojistkové webové stránky AVR, ale možnost, kterou vysvětluji, lze použít, i když jste offline, kdekoli.

Krok 1: Nastavení, která je třeba provést:

Nastavení, která mají být provedena
Nastavení, která mají být provedena
Nastavení, která mají být provedena
Nastavení, která mají být provedena
Nastavení, která mají být provedena
Nastavení, která mají být provedena
Nastavení, která mají být provedena
Nastavení, která mají být provedena

Obrázky ukazují NASTAVENÍ, která je třeba provést před zahájením práce. (je to jen jednou). V položce podnabídky „Nastavení hardwaru“vybereme 375 Hz, protože většina MCU z továrny ATMEL je nastavena na Výchozí nastavení 1 Mhz CPU hodin na interním RC oscilátoru. Rychlost ISP je čtvrtina F_cpu. To nám dává 375 khz nejbližší rychlost, můžete jít také na nižší rychlost, nebude to mít velký rozdíl. Můžete se pokusit připojit a ponechat toto nastavení ve výchozím nastavení a vydat „přečíst vše“, pokud selže, můžete přijít sem a změnit rychlost a snížit ji.

Protože pokud se nemůžete připojit (v okně programátoru se zobrazí zpráva „nelze komunikovat s čipem, nelze SCK“, znamená to, že hodinový signál z vašeho počítače nelze synchronizovat s vaším čipem, který se pokoušíte přečíst nebo program)., nebudete moci změnit rychlost hodin CPU nebo změnit jeho rychlost a typ! Spojení je tedy základem všeho! Je to jako „PRVNÍ KONTAKT“, jak to vidíte ve filmech se Spielbergem. Pokud se vám to podaří, můžete vždy zvýšit taktovací frekvenci vašeho MCU příslušným naprogramováním pojistek a později použít k připojení vyšší rychlost.

Projděte si zde poskytnuté snímky nastavení hardwaru a poté nastavte také typ zařízení (čip, který se pokoušíte naprogramovat, jeho číslo modelu).

Krok 2: Nastavení typu zařízení

Nastavení typu zařízení
Nastavení typu zařízení
Nastavení typu zařízení
Nastavení typu zařízení
Nastavení typu zařízení
Nastavení typu zařízení

viz snímek obrazovky, obrázek 1, nastavili jsme „ATTINY44A“. Jedná se o 14kolíkový mikrokontrolér bez UART. Nedávno jsem to používal, verzi SSU. Pokud jste nainstalovali verzi Stock Extreme Burner, neuvidíte Attiny44A v rozevíracím seznamu výběru zařízení, uvidíte Attiny44, který pro všechny účely můžeme také použít k programování Attiny44A, k zavedení jakéhokoli zařízení, které není uvedeno v tomto rozevíracím seznamu, přečtěte si můj další instrukovatelný „Hacking eXtreme Burner“.

Atmega88PA-AU používám také s eXtreme Burner, ale v tomto Instructable všude zmiňujeme „Attiny44A“. Jak nyní vytvoříte verzi malého 7mm čtvercového SMD čipu a otestujete ji pomocí svých programů? (viz obrázky, které udávají velikost čipu), K tomu viz můj další návod, kde předvádím, jak vytvořit zásuvné moduly vhodné pro Breadboard pomocí Attiny44A-SSU a ATmega88PA-AU

Jakmile se naučíte tuto techniku, budete si moci prohlédnout jakýkoli čip, se kterým jste zvědaví, ať už jde o balíček SMD nebo DIL. Například jsem dokonce použil čip SMD dodávaný v 32pólovém Quad balíčku s roztečí 32 pinů 0,8 mm (Atmega88A) podobným způsobem!

. Nebo můžete použít 28pin DIL verzi Attiny44A pro tento Instructable nebo jakýkoli AVR, který právě používáte, a vyzkoušet eXtreme Burner pro programování AVR..

Krok 3: Vydejte READ ALL nebo READ FLASH

Vydejte READ ALL nebo READ FLASH
Vydejte READ ALL nebo READ FLASH
Vydejte READ ALL nebo READ FLASH
Vydejte READ ALL nebo READ FLASH

Připojte USBasp k USB portu vašeho notebooku, předpokládám, že jste již nainstalovali správné ovladače, které byly dodány s vaším programátorem, a že je správně detekován. Pokud by to bylo, mělo by se to objevit pod položkou „Zařízení a tiskárny“v nabídce Start systému Windows, jakmile je připojeno k portu USB! Připojte svůj cílový čip na jeho desku pomocí USBasp (mezi tyto dva konektory musí být připojeny příslušné piny SDI // ISP pomocí 6kolíkového nebo 10kolíkového kabelu, konkrétně piny: MOSI, RESET, MISO, SCK, Vcc, Ground).

Vydejte READ ALL z NABÍDKY Xtreme Burner. Podívejte se na obrázky a zprávy, které jsme obdrželi. Zpočátku vaše obrazovka zobrazovala 'FF' pro ROM v první záložce vypalovačky, po přečtení vše zobrazí skutečný obsah ROM na čipu. Pokud jste použili čerstvý čip z výroby nebo vymazaný čip, po „Přečíst vše“se v obsahu zobrazí FF. Neprogramovaný čip zobrazí ve své paměti 'FF', stejně jako EEPROM (druhá karta v programátoru), poslední karta ukazuje POJISTKY.

Po PŘEČTENÍ VŠE by na 3 záložkách byly zobrazeny správné informace obsažené v čipu. Předtím by to nešlo, vydejte tedy nejprve Přečíst vše, jakmile vše připojíte.

Krok 4: Zapište do Flash (váš hexadecimální soubor se přenesl do ROM na čipu)

Zapište do Flash (váš hexadecimální soubor se nabootuje do ROM na čipu)
Zapište do Flash (váš hexadecimální soubor se nabootuje do ROM na čipu)
Zapisujte do Flash (váš hexadecimální soubor se nabootoval do ROM na čipu)
Zapisujte do Flash (váš hexadecimální soubor se nabootoval do ROM na čipu)
Zapište do Flash (váš hexadecimální soubor se nabootuje do ROM na čipu)
Zapište do Flash (váš hexadecimální soubor se nabootuje do ROM na čipu)

Vyberte soubor pomocí dialogu Procházet, který se otevře po kliknutí na první ikonu v pruhu MENU výše. Vybrali jsme jeden soubor, jak vidíte na obrázku. Jakmile vyberete hexadecimální soubor (hexadecimální formát Intel), lišta nabídek, která ukazuje „není načten žádný soubor“, se změní na název souboru, který jste nahráli.

Nyní v nabídce softwaru zadejte Flash Flash. Zprávy vám ukážou, co se děje. viz obrázky.

Po úspěšném zápisu byste viděli 'FF', které označuje čerstvou nebo vymazanou ROM, změnu na to, co obsahuje váš program nebo hex soubor. Velikost nebo počet bajtů, které váš soubor zabírá v ROM, je vám také znám pohledem na tuto obrazovku, která vám ukáže skutečný obsah ROM vašeho cílového čipu, který jste právě blikali.

Krok ověření se také provádí načtením čipu, podle NASTAVENÍ, které jsme provedli v prvním kroku. Na zprávách je vidět, že ověření bylo také úspěšné.

Krok 5: POJISTKY: Jak je nastavit v EXtreme Burner

POJISTKY: Jak je nastavit v EXtreme Burner
POJISTKY: Jak je nastavit v EXtreme Burner

Když jste vydali READ ALL, pojistky byly načteny z čipu. To je PRVNÍ obrázek zobrazený fuses.jpg.

Nyní je možná budete muset změnit na něco jiného. Pojistky se skládají ze 4 políček v posledním TAB na obrazovce eXtreme Burner. Jmenovitě LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE a CALIBRATION BYTE. v uvedeném pořadí jsou zobrazeny.

Můžete jednoduše použít kalkulačku pojistek ONLINE a vyplnit je

eleccelerator.com/fusecalc/fusecalc.php?

Nebo můžete použít vypalovačku eXtreme, aby to udělala za vás. offline kdykoli kdykoli: Vyberte z rozevíracího seznamu, který se zobrazí po kliknutí na tlačítko PODROBNOSTI, které je pod každým druhem bajtu pojistky. Stačí dvakrát kliknout na libovolný řádek na obrazovce PODROBNOSTI a sledovat, jak se mění ze SET na CLEARED, a přepínat jeho stav kliknutím myši na každý řádek. Fuse Byte v poli nad ním by se odpovídajícím způsobem změnil.

Pokud vás zajímá „co to sakra jsou pojistky“a „co dělají“? Přečtěte si tento skvělý zápis:

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

Krok 6: Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner

Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner
Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner
Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner
Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner
Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner
Nastavení pojistek pomocí kalkulačky pojistek EXtreme Burner

Můžete vidět obrazovku podrobností, která se zobrazí pro každý z bytů pojistky (NÍZKÁ, VYSOKÁ, ROZŠÍŘENÁ, ZÁMEK a kalibrace). Kalibrační bajt by měl být ponechán beze změny, protože ukazuje byte kalibračních dat v AVR, který platí pro interní RC oscilátor. Bajt LOCK je obvykle pouze FF, (není diskutováno na obrázcích výše), protože byste ve fázi učení nezamkli Flash nebo EEPROM. Měnili byste pouze NÍZKÉ, VYSOKÉ a ROZŠÍŘENÉ bajty. Buď opatrný !

Pokud změníte SPIEN bit na 1 (neprogramovaný stav je v mikrokontrolérech AVR 1), nebudete moci komunikovat se svým čipem pomocí USBASP ani žádného programátoru! Výchozí stav je také zobrazen na obrazovce pro každý bit pojistky. To vás upozorní, že výchozí hodnota SPIEN je vždy 0 (naprogramovaný stav), což vám umožní používat režim SPI pro programování ISP. Debug-wire nebo bit DW je vždy ponechán 1 (neprogramovaný), když je SPIEN nastaven na 0. Toto je také jeho výchozí stav. Také v bitech rozšířených pojistek 'Self Programming Enable by mělo být' 1 '(neprogramováno), pokud používáte USB-ASP k programování cílového čipu (nepoužíváte bootloader ROM jako v ARDUINO).

Bity CLOCK (počet 3) můžete změnit na interní RC nebo externí krystal. Obvykle to nechávám pro interní RC, což vám umožní získat 2 další piny, které uvolnění externího krystalu znamená použití jako PORT piny pro vaše projekty AVR. Externí krystal je obvykle potřeba, když ve svém projektu potřebujete vysoce přesné načasování. Pro studenty stačí interní RC.

Obvykle, když se usadíte na nějaké kombinaci pojistek, neměnili byste ji. Bylo by to jednorázové. Pouze byste flashovali ROM nebo někdy i EEPROM. Pro blikání EEPROM samostatný soubor.eep generuje vaše studio WINAVR / ATMEL, pokud váš program vůbec používá k ukládání dat EEPROM. V opačném případě zůstane EEPROM nevyužita a bude vyplněna údaji „FF“, které budou ukazovat „stav NO DATA“paměti EEPROM.

Krok 7: Konečná hodnota pojistkových bitů

Konečná hodnota pojistkových bitů
Konečná hodnota pojistkových bitů

Po nastavení všech bitů pojistky a zavření polí DETAILY, které jste použili, uvidíte hodnotu bitů pojistky vypočítanou programem (viz obrázek). Nezbývá než vydat „Write Fuses“pomocí nabídky. A podívejte se na zprávy, které hlásí úspěšný zápis. Později můžete také z nabídky vydat READ ALL a zkontrolovat, zda se pojistky načtené v posledním TAB obrazovky hořáku shodují s tím, co jste chtěli zapsat na čip. (Ověření pojistky).

Všimli byste si, že na začátku tohoto Instructable, když jsme dělali READ FUSES, obrazovka ukazuje stejné hodnoty FUSE, jaké vidíme zde! Důvodem je, že toto jsou pojistky, které často používám a zřídka je mění, jakmile je nastavím v MCU, pokud u některých projektů nezměním frekvenci z 1 Mhz na 4 Mhz. AVR lze nastavit na maximum 20 MHz (některé čipy pouze až na 16 MHz). Frekvence, kterou nastavíte pro F_cpu, také závisí na napětí, kterým čip dodáváte! Například pokud váš čip pracuje od 1,8 V Vcc do 5,5 V Vcc (viz technický list), neočekávali byste, že váš čip poběží na 20 MHz, pokud jste k němu dodali pouze 1,8 V! čekáte od toho příliš mnoho! Tabulka v datovém listu vám řekne, při jakém napětí se frekvence na kterém obrázku převýší. Čím vyšší je vaše frekvence provozu čipu, tím více tepla a více energie spotřebuje. Představte si frekvenci jako tlukot srdce zvířete. Kolibřík s vysokou frekvencí poslechu by měl vyšší energetickou popáleninu za minutu ve srovnání s velrybou nebo slonem s mnohem nižším tepem! Pak to ale za kratší dobu dokáže mnohem více. MCU je přesně takový.

Krok 8: Dokončete

Nyní jste dokončili všechny kroky v eXtreme vypalovačce, přečetli jste ROM čipu, otevřeli jste soubor HEX a přenesli jej na čip a ověřili, že je blesk v pořádku, také jste se naučili nastavovat pojistky a blikat je na čip.

Pokud máte nějaké dotazy, rád zodpovím nebo upravím tutoriál, aby byl jasnější.

U některých čipů můžete zjistit, že jeho položka chybí v rozevíracím seznamu výběru čipů v nabídce. Nebo se můžete setkat s chybami při zápisu a ověřováním chyb. V takových případech si prosím přečtěte můj další instruktabilní „Hacking eXtreme Burner“k vyřešení problému.

Šťastné programování.

Doporučuje: