Cuprins:

UTILIZAREA EXtreme Burner pentru programarea microcontrolerului AVR: 8 pași
UTILIZAREA EXtreme Burner pentru programarea microcontrolerului AVR: 8 pași

Video: UTILIZAREA EXtreme Burner pentru programarea microcontrolerului AVR: 8 pași

Video: UTILIZAREA EXtreme Burner pentru programarea microcontrolerului AVR: 8 pași
Video: Mai mult decât cafea: Golang. De ce dezvoltatorii Java învață GO ca a doua limbă. 2024, Iulie
Anonim
UTILIZARE EXtreme Burner pentru programarea microcontrolerului AVR
UTILIZARE EXtreme Burner pentru programarea microcontrolerului AVR

Toți voi, fraternitatea utilizatorilor AVR, și cei care tocmai intrați în flux, unii dintre voi au început cu microcontrolerele PIC, iar alții au început cu AVR-urile ATMEL, acest lucru este scris pentru dvs.!

Așa că ați cumpărat un USBASP deoarece este ieftin și eficient pentru a bloca ROM-ul de pe dispozitivul dvs. Atmega sau poate gama ATTINY. Acestea pot fi obținute sub 5 $, ca clone chinezești ale Open-source USB-ASP! AVRdude este software-ul pentru a le programa.

Știți, fără îndoială, cum să generați un fișier Hex folosind Atmel Studio (folosesc în continuare AVR Studio v4.19 în loc de cea mai recentă v7, deoarece este mai rapid și mai rapid pe laptopul meu cu un singur nucleu ușor) / Netbook și WINAVR se instalează dacă citiți acest lucru. Orice lucru scris în DotNet rulează SLOW! iar versiunile ulterioare sunt concepute pentru a face laptopul să ruleze ca o broască țestoasă! Puteți utiliza Studio v4.19 cea mai bună versiune de Studio de la ATMEL pentru microcontrolerele AVR, trecând la versiunea 7 când aveți cu adevărat nevoie de ea pentru cipurile ulterioare și vă faceți timpul mai productiv pe laptop, lucrând în loc să așteptați! Aceasta este ceea ce recomand.

O linie de comandă tipică tip AVR pentru a programa un Atmega cu un fișier Hex, rulează astfel:

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

aici pwmeg1.hex este fișierul hexagonal Intel care trebuie „ars” sau „intermitent” în „MCU țintă” din microcontrolerul Lingo

E o gură de reținut! Puteți scrie un fișier batch și îl puteți rula în linia de comandă din Windows, numindu-l write_flash.bat. În mod similar pentru citirea siguranțelor, încă o gură de linie de reținut! Devine plictisitor.

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

Soluția este să folosiți unul dintre instrumentele front-end GUI ușor de utilizat pentru AVRdude, cum ar fi Bitburner, programatorul Khazama, care sunt aproape similare în merit. eXtreme Burner. Am folosit instrumentul gratuit de utilizat: eXtreme Burner foarte mult, versatil, fiabil, iar acest tutorial este despre asta. Nu numai că vă poate bloca fișierul / programul hexagonal pe MPU, utilizând comenzi emise către AVRdude în fundal, ci vă poate ajuta și să setați FUSURI, care este un subiect complicat, care confundă adesea începătorii cu programarea AVR. Iată un link către un tutorial excelent pe tema FUSURILOR pe care îl puteți parcurge sau peria. Un cuvânt de precauție: ATMEL folosește starea '1' a unui bit FUSE pentru a indica starea sa 'implicită' (stare nesetată sau neprogramată) și '0' pentru a indica starea sa programată, setată sau activată! Acest lucru este exact opus a ceea ce faceți cu biții FUSE într-un microcontroler PIC. Aveți grijă când modificați biții siguranței ceasului, cum ar fi schimbarea ceasului RC intern în cristal extern, deoarece acest lucru va crea probleme la conectarea la cip fără o configurare a cristalului extern. În mod similar, aveți grijă când schimbați starea biților de siguranță critici, cum ar fi SPIEN și RESET DISABLE (acestea trebuie întotdeauna setate la SPIEN = 0 și RESET DISABLE = 1 dacă doriți să comunicați în continuare cu MCU cu USB-ASP în modul ISP / SPI ! Dacă bifați acest lucru, veți avea nevoie de un programator de înaltă tensiune pentru a vă „dezamorsa” AVR-ul.

Dacă vă întrebați „ce naiba sunt siguranțele” și „ce fac ei”? Citiți această scriere excelentă:

Un alt subiect legat este modul de setare a vitezei de ceas a MPR-ului dvs. AVR, care este capabil de viteze de la 1Mhz până la 16 sau 20Mhz. Există, de asemenea, o opțiune specială de cristal de joasă frecvență de joasă putere, 31,25 kHz, care, dacă este proiectată corect, poate face ca AVR-ul dvs. să scape de bateriile AA timp de 3 luni!

Ambele acestea, biții de siguranță pentru ceas (atât frecvența, cât și tipul de ceas intern / cristal extern, precum și alți biți de siguranță) pot fi setați prin fila FUSURI din eXtreme Burner. Mai întâi vă vom arăta să citiți ROM-ul și apoi cum să blocați fișierul hexagonal folosind eXtreme Burner. Desigur, ai putea folosi și site-urile online de siguranțe AVR, dar opțiunea pe care ți-o explic poate fi utilizată și atunci când ești offline, oriunde.

Pasul 1: Setări care trebuie făcute:

Setări care trebuie făcute
Setări care trebuie făcute
Setări care trebuie făcute
Setări care trebuie făcute
Setări care trebuie făcute
Setări care trebuie făcute
Setări care trebuie făcute
Setări care trebuie făcute

Imaginile arată SETĂRILE care trebuie făcute înainte de a începe lucrul. (este o singură dată). În sub-meniul „Setări hardware”, selectăm 375Hz deoarece majoritatea MCU-ului din fabrica ATMEL este setată la Setările implicite ale ceasului CPU de 1 MHz pe oscilatorul RC intern. Viteza ISP este un sfert din F_cpu. Asta ne oferă cea mai apropiată viteză de 375 kHz, puteți merge și la o viteză mai mică, nu va face mare diferență. Ați putea încerca să vă conectați, lăsând acest lucru implicit și să emiteți un „citit tot”, dacă nu reușește, puteți veni aici și modifica viteza, reducându-l.

Deoarece dacă nu vă puteți conecta (mesajul va fi dat în fereastra programatorului „incapabil să comunicați cu cipul, nu puteți SCK” înseamnă că semnalul de ceas de pe computerul dvs. nu s-ar putea sincroniza cu cipul pe care încercați să-l citiți sau program)., nu veți putea schimba viteza de ceas a procesorului sau modifica viteza și tipul acestuia! Deci conectarea este baza tuturor! Este ca „PRIMUL CONTACT”, așa cum vedeți în filmele Spielberg. Dacă reușiți în acest sens, puteți oricând să măriți viteza de ceas a MCU-ului dvs. prin programarea siguranțelor corespunzătoare și, ulterior, să utilizați o viteză mai mare pentru a vă conecta.

Deci, parcurgeți instantaneele de setări hardware furnizate aici, apoi setați și tipul dispozitivului (cipul pe care încercați să îl programați, numărul modelului său).

Pasul 2: Setarea tipului de dispozitiv

Setarea tipului de dispozitiv
Setarea tipului de dispozitiv
Setarea tipului de dispozitiv
Setarea tipului de dispozitiv
Setarea tipului de dispozitiv
Setarea tipului de dispozitiv

vezi captura de ecran, Pic 1, am setat „ATTINY44A”. Acesta este un microcontroler cu 14 pini fără UART. Am folosit recent acest lucru, versiunea SSU. Dacă ați instalat versiunea Extreme burner stock, nu veți vedea Attiny44A în lista verticală de selecție a dispozitivului, veți vedea un Attiny44 pe care îl putem folosi în toate scopurile pentru a programa și Attiny44A, pentru a introduce orice dispozitiv care nu este listat în această listă derulantă, citiți celălalt instructabil „Hacking eXtreme Burner”.

Am folosit Atmega88PA-AU și cu eXtreme Burner, dar în acest instructabil menționăm „Attiny44A” peste tot. Acum, cum faceți o versiune de panou a micului cip SMD pătrat de 7 mm și să o testați cu programele dvs.? (vezi imaginile care indică dimensiunea cipului), Pentru aceasta, vezi și celelalte instructabile ale mele unde demonstrez cum să fac module de plug-in adecvate pentru Breadboard folosind Attiny44A-SSU și ATmega88PA-AU

Odată ce ați învățat această tehnică, veți putea verifica orice cip pe care sunteți curioși să-l faceți, indiferent dacă este pachetul SMD sau DIL. De exemplu, am folosit chiar și un cip SMD care vine într-un pachet Quad 32-pin 0.8mm pin pitch (Atmega88A) în mod similar!

. Sau puteți utiliza versiunea DIL de 28 pini a Attiny44A pentru acest AVR instructabil sau orice alt AVR pe care îl utilizați în acest moment pentru a încerca eXtreme Burner pentru programarea AVR..

Pasul 3: Emiteți un READ ALL sau READ FLASH

Emiteți un READ ALL sau READ FLASH
Emiteți un READ ALL sau READ FLASH
Emiteți un READ ALL sau READ FLASH
Emiteți un READ ALL sau READ FLASH

Conectați-vă USBasp la portul USB al laptopului, presupun că ați încărcat deja driverele corecte care au venit cu programatorul dvs. și că sunt detectate corect. Ar trebui să apară sub „Dispozitive și imprimante” în meniul de pornire Windows, dacă ar fi, de îndată ce este conectat la portul USB! Conectați-vă cipul țintă pe placa sa cu USBasp (pinii SDI // ISP relevanți utilizând un cablu cu 6 pini sau 10 pini trebuie conectat între cei doi, și anume pinii: MOSI, RESET, MISO, SCK, Vcc, Ground).

Lansați un CITIȚI TOT din MENIUL Xtreme Burner. Vedeți fotografiile și mesajele pe care le-am obținut. Inițial, ecranul dvs. afișa „FF” pentru ROM în Primul TAB al arzătorului, după ce ați citit tot, acesta va afișa conținutul real al ROM-ului pe cip. Dacă ați utiliza un cip proaspăt din fabrică sau un cip șters, veți vedea FF în conținut după un „Citește totul”. Un cip neprogramat va afișa „FF” în memoria sa, la fel și o EEPROM (a doua filă din programator), ultima filă arată FUSURILE.

După CITEȘTE TOATE cele 3 file ar afișa informațiile corecte conținute în cip. Înainte, nu ar fi, așa că lansați mai întâi Citiți toate imediat ce conectați totul.

Pasul 4: Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)

Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)
Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)
Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)
Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)
Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)
Scrieți pe Flash (fișierul dvs. Hex a intrat în ROM pe cip)

Selectați un fișier utilizând dialogul Răsfoire care se deschide când faceți clic pe prima pictogramă din bara MENU de mai sus. Am selectat un fișier așa cum vedeți în imagine. Odată ce ați selectat fișierul hex (format intel hex), bara de meniu care afișează „fără fișier încărcat” s-a schimbat în numele fișierului pe care l-ați încărcat.

Acum emiteți un Flash de scriere din meniul software-ului. Mesajele vă vor arăta ce se întâmplă. vezi pozele.

După o scriere reușită, veți vedea „FF” care marchează o modificare a ROM-ului proaspăt sau șters la ceea ce conține programul sau fișierul hex. Mărimea sau numărul de octeți pe care îl ocupă fișierul dvs. în ROM vă sunt, de asemenea, cunoscute, uitându-vă la acest ecran, care vă arată conținutul ROM real al cipului dvs. țintă pe care l-ați aprins chiar acum.

Pasul de verificare se face și citind cipul, conform SETĂRILOR pe care le-am făcut în primul pas. Acest lucru se vede în mesajele conform cărora verificarea a avut succes.

Pasul 5: SIGURANȚE: Cum să le setați în EXtreme Burner

SIGURANȚE: Cum să le setați în EXtreme Burner
SIGURANȚE: Cum să le setați în EXtreme Burner

Când ați emis un CITIT TOATE siguranțele au fost citite de pe cip. Aceasta este prima imagine afișată fuses.jpg.

Acum poate că trebuie să le schimbați în altceva. Siguranțele sunt formate din 4 casete din ultimul TAB de pe ecranul eXtreme Burner. Și anume BYTE DE SIGURANȚĂ LOW, BYTE DE SIGURANȚĂ ÎNALTĂ, BYTE DE SIGURANȚĂ PRELUNGIT, BYTE DE SIGURANȚĂ DE BLOCARE și BYTE DE CALIBRARE. în această ordine sunt afișate.

Puteți pur și simplu să utilizați un calculator de siguranțe ONLINE și să le completați. Ca cel de la

eleccelerator.com/fusecalc/fusecalc.php?

Sau puteți utiliza eXtreme Burner pentru a face acest lucru pentru dvs. offline în sine oricând: selectați din lista derulantă care apare când faceți clic pe butonul DETALII care se află sub fiecare tip de octet de siguranță. Doar faceți dublu clic pe orice linie din ecranul DETALII și urmăriți-l cum se schimbă de la SET la CLEARED și comutați starea acestuia făcând clic cu mouse-ul pe fiecare linie. Fuse Byte din caseta de mai sus s-ar schimba în consecință.

Dacă vă întrebați „ce naiba sunt siguranțele” și „ce fac ei”? Citiți această scriere excelentă:

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

Pasul 6: Setarea siguranțelor folosind EXtreme Burner Fuse Calculator

Setarea siguranțelor folosind EXtreme Burner Fuse Calculator
Setarea siguranțelor folosind EXtreme Burner Fuse Calculator
Setarea siguranțelor folosind EXtreme Burner Fuse Calculator
Setarea siguranțelor folosind EXtreme Burner Fuse Calculator
Setarea siguranțelor folosind EXtreme Burner Fuse Calculator
Setarea siguranțelor folosind EXtreme Burner Fuse Calculator

Puteți vedea ecranul de detalii care apare pentru fiecare dintre octeții siguranței (LOW, HIGH, EXTENDED, LOCK și Calibration). Octetul de calibrare trebuie lăsat neschimbat, deoarece arată octetul de date de calibrare în AVR care se aplică oscilatorului RC intern. Octetul LOCK este de obicei numai FF, (nu este discutat în imaginile de mai sus), deoarece nu ați bloca blițul sau EEPROM în timpul etapei de învățare. Ați schimba doar octeții LOW, HIGH și EXTENDED. Atenție !

Dacă schimbați bitul SPIEN la 1 (starea neprogramată este 1 în microcontrolerele AVR) nu veți putea comunica cu cipul dvs. utilizând USBASP sau orice programator! Starea implicită este, de asemenea, afișată pe ecran pentru fiecare bit de siguranță. Acest lucru vă avertizează că implicit SPIEN este întotdeauna 0 (stare programată) pentru a vă permite să utilizați modul SPI pentru programarea ISP. Debug-wire sau bitul DW este întotdeauna lăsat 1 (neprogramat) când SPIEN este setat la 0. Aceasta este și starea sa implicită. De asemenea, în Extended Fuse bits „Auto Programming Enable” ar trebui să fie „1” (neprogramat) dacă utilizați USB-ASP pentru a programa cipul țintă (nu utilizați ROM-ul bootloader ca în ARDUINO).

Puteți schimba biții CLOCK (3 la număr) pentru a selecta RC intern sau cristal extern. În mod normal, îl las pentru RC intern, care vă permite să obțineți 2 pini suplimentari care eliberează cristalul extern implică utilizarea ca pini PORT pentru proiectele dvs. AVR. De obicei, cristalul extern este necesar atunci când aveți nevoie de sincronizare de mare precizie în proiect. Pentru cursanți RC intern este suficient.

De obicei, odată ce vă așezați pe o combinație de siguranțe, nu o veți schimba. Ar fi o singură dată. Ai fi intermitent doar pe ROM sau uneori și pe EEPROM. Pentru intermitent, fișierul.eep separat EEPROM este generat de studioul dvs. WINAVR / ATMEL dacă programul dvs. folosește EEPROM pentru a stoca date. În caz contrar, EEPROM este lăsată neutilizată, completată cu datele „FF” care arată „starea NO DATA” a EEPROM.

Pasul 7: Valoarea finală a biților de siguranță

Valoarea finală a biților de siguranță
Valoarea finală a biților de siguranță

După ce ați setat toți biții de siguranță și ați închis casetele DETALII pe care le-ați folosit, puteți vedea valoarea biților de siguranță calculată de program (a se vedea imaginea). Tot ce rămâne este să emiteți o „Scriere siguranțe” utilizând meniul. Și uitați-vă la mesajele care raportează o scriere reușită. Mai târziu, ați putea, de asemenea, să emiteți un CITIT TOT din meniu și să verificați dacă siguranțele citite în ultima TAB a ecranului arzătorului coincid cu ceea ce doriți să scrieți pe cip. (Verificarea siguranței).

Ați observa că, la începutul acestui instructabil, când am făcut o CITIRE FUSIBILE, ecranul arată aceleași valori FUSE pe care le vedem aici! Asta pentru că acestea sunt siguranțele pe care le folosesc adesea și rareori le schimb odată ce le-am setat în MCU, cu excepția cazului în care schimb frecvența de la 1 Mhz la 4Mhz pentru unele proiecte. AVR-ul poate fi setat la maximum 20 MHz (unele jetoane doar până la 16 MHz). Frecvența setată pentru F_cpu depinde și de Tensiunea cu care furnizați cipul! De exemplu, dacă cipul dvs. funcționează de la 1,8 V Vcc până la 5,5 V Vcc (foaia tehnică consultați), nu v-ați aștepta să rulați cipul la 20 MHz dacă i-ați furnizat doar 1,8 V! te aștepți prea mult de la asta! Un tabel din foaia de date vă arată la ce tensiune depășește frecvența la ce cifră. Cu cât frecvența de funcționare a cipului este mai mare, cu atât este mai mare căldura și energia consumată. Gândiți-vă la Frecvență ca bătăile inimii unui animal. O Colibri cu o rată ridicată de bătăi auditive ar avea o energie mai mare arsă pe minut în comparație cu o balenă sau un elefant cu bătăi cardiace mult mai mici! Dar atunci poate face mult mai mult într-un timp mai scurt. MCU este exact așa.

Pasul 8: Terminați

Acum ați parcurs toți pașii din eXtreme burner, ați citit ROM-ul unui cip, ați deschis un fișier HEX și l-ați introdus pe cip și ați verificat blițul în regulă, ați învățat și cum să setați siguranțele și să le blocați pe cip..

Dacă aveți întrebări, voi fi bucuros să răspund sau să modific tutorialul pentru a fi mai clar.

Pentru unele jetoane este posibil să găsiți că intrarea acestuia lipsește în lista derulantă de selectare a jetoanelor din meniu. Sau este posibil să vă confruntați cu erori de scriere și să verificați erorile. În astfel de cazuri, vă rugăm să citiți celălalt instructabil „Hacking eXtreme Burner” pentru a rezolva problema.

Programare fericită.

Recomandat: