ATMEGA8 Siguranță în mod implicit. Microcontrolere AVR: Bițe de siguranțe. Bituri de siguranțe și blocare

În articolele anterioare, v-am sfătuit să nu urcați pe acești biți. Și pe ea erau fundațiile lor, deoarece punerea incorectă a acestor biți puteți frânge controlerul pentru a intermitei sau la orice utilizare.

Dar fără să știi că această caracteristică a controlerului nu va pleca. Așa că voi scrie totul în ordine. La diferite versiuni ale controlorilor, numărul de siguranțe sunt diferite, ceea ce poate să nu lipsească, dar există întotdeauna de bază. Aici pe ele și vom merge.

Bitii de configurare sunt amplasate într-o zonă specială de memorie și pot fi modificate numai folosind programatorul la înregistrarea unui controler. Există un octet de senior și un octet mai tânăr. Byte-ul mai tânăr este de obicei responsabil pentru frecvență și cel mai mare pentru tot felul de baubles.

Deci, principalul lucru:

Următoarea notație este adoptată în ATMEL AVR: Bitul de siguranțe este considerat activ, adică inclus.

Exemplu RSTDSBL BIT, după cum puteți ghici din nume, acesta este o resetare dezactivată. Inclusiv această opțiune și piciorul dvs. de resetare se transformă într-un port I / O, dar pentru că pierdeți abilitatea de a modifica controlerul prin ISP.

Deci, pentru a dezactiva resetarea (și obțineți un zaplast mare cu firmware-ul în schimbul unei amenzi la îndemână sub forma unui picior suplimentar) la acest bit este necesar să scrieți 0.

Pe de o parte ilogică și strâmbă. Ca și cum toată lumea, a fost adoptată notația că zero este oprit și aici, înțelegeți, dimpotrivă. Pe de altă parte, acesta este controlorul lor pe care doresc să-l facă. O dată să-ți amintești totul. Și în general, în electronică iau de multe ori zero pentru semnal.


Cu toate acestea, controlorii fac electronică și programe intermitente - programatori. Cât de logică. Și acești programatori au luat și au preparat o confuzie Hello cu marcajele. Nu va mai fi timp și pentru totdeauna acceptați pentru standardul că bifarea este de 1, și nu este inclusă (că, reamintiți, este zero). Și, prin urmare, în unele programe firmware, o bifă înseamnă că opțiunea este activată (în siguranța bitul este înregistrat 0), în alte, de obicei scris de electronică, o marcă de verificare înseamnă una. Acestea. exact contrariul.

Și ce se va întâmpla dacă confundați? Și va fi foarte rău. Controlerul va activa în modul greșit și poate fi blocat strâns. Acestea. Odată cusute și asta e. Am ajuns.

Nu, îl puteți salva, dar pentru aceasta veți avea nevoie de trucuri suplimentare sub forma unui programator de înaltă tensiune, adaptorul JTAG sau generatorul de ceasuri. Totul depinde de modul în care conduceți controlerul cu setările greșite.

Newbie, de obicei, este mai ușor să mergi și să cumperi un nou mk decât revitalizarea blocată. Dar nu vă grăbiți să o trimiteți la gunoi. Publicați-vă și amânați pentru viitor, veți perturba să reînvieți.

Configurarea semnalului de ceas
În mod prestabilit, toate controalele AVR (cu excepția vechii serii AT90S2313, AT90S8535 sunt configurate pentru a lucra dintr-o sursă internă de ceasuri. Acestea. costul de a se hrăni cu ele și încep să lucreze. Nu este nevoie de nimic mai mult.

Beats răspunde la sursa ceasurilor Cksel.
Prin stabilirea modului potrivit, puteți alege frecvența controlerului, precum și sursa semnalului de ceas.

  • Cksel3 ... 0 \u003d 0000 - Sursă de semnal extern.

Acestea. Intrarea Xtal1 servește impulsuri dreptunghiulare. Acest lucru se face uneori în sisteme sincrone, când mai mulți controlere lucrează de la un generator.

Retragerea tehnică
Acest mod se încadrează adesea atunci când încearcă să stabilească un controler să lucreze din cuarț extern (CKSEL \u003d 1111), dar fie la notația de confuzie, fie datorită notării inversă a biților în tot felul de anumite programe de firmware. O dată și cristalul blocat. Dar, de fapt, strâns, cu ajutorul CKSEL, blocați cristalul nu poate fi blocat. De obicei, totul este rezolvat de cuarțul mamelonului și de lansarea acestui cuarț. Cel mai rău lucru care se poate întâmpla - generatorul de ceasuri externe va fi necesar. Care ar fi reînviat cristalul. Se face în cinci minute de orice logică TTL Microcircuit, de exemplu, de la K155L3 - scheme din intrarea în vrac. Sau pe cronometrul 555 sau puteți lua al doilea MK și puteți scrie un program simplu pe care jershit-urile cu piciorul. Și dacă există un osciloscop, puteți avea un semnal de generator de control de la IT - terminalul său ar trebui să fie pe orice oscilație. Pământul Oscila pe Pământul controlerului și ieșirea generatorului pe Xtal1.

Dar ce ar trebui să fac dacă este insuportabil, controlerul este blocat și nu există un cip pentru resuscitare la îndemână? Aici se rotește uneori metoda degetului. Gluma este că există un vârf foarte ne-pellic de aproximativ 50Hz pe corpul uman. Oricine a prins osciloscopul sondei cu mâinile își amintește ceea ce arse imediat pe ecran - asta este! Și de ce să nu conectați acest sfat ca un semnal de ceas? Așadar, ne-am lipit la ieșirea firului Xtal1, luați-o cu mâna pentru el și faceți clic pe citirea sau scrierea unui controler :) Vă avertizează imediat, metoda funcționează prin fund, departe de prima dată citește pentru o lungă perioadă de timp Timpul și, uneori, cu erori, dar pentru a suprascrie biții de siguranțe la dorit, partea trebuie să fie suficientă. De câteva ori am avut un astfel de accent.

Cksel3 ... 0 \u003d 0100 - 8 MHz de la generatorul intern (de obicei în valoare de neplată)
Pentru majoritatea AVR, o astfel de configurație cksel înseamnă un tact de la un generator intern la 8 MHz, dar pot exista opțiuni. Deci, în acest caz, lipiți cu atenție în fișa tehnică. În numele modurilor de operare CALIBRATE CALIBRATE RC

Uneori trebuie să aveți un generator de ceas extern, de exemplu, astfel încât acesta să poată fi ajustat fără interferențe cu firmware-ul. Pentru a face acest lucru, puteți conecta lanțul RC, așa cum se arată în diagramă și poate calcula frecvența cu formula f \u003d 1 / 3RCunde F este o frecvență în Hertz și R și cu rezistență respectiv la rezistorul și capacitatea condensatorului, în Omah și la Faradis.

  • Cksel3 ... 0 \u003d 0101 - Pentru frecvențe sub 0,9 MHz
  • Cksel3 ... 0 \u003d 0110 - de la 0,9 la 3 MHz
  • Cksel3 ... 0 \u003d 0111 - de la 3 la 8 MHz
  • Cksel3 ... 0 \u003d 1000 - de la 8 la 12 MHz

Această placă este valabilă numai pentru ATMEGA16 de la alte MK poate diferi. Specificați în Datashet!

Problema generatorului intern și a lanțurilor RC externe sunt de obicei în instabilitate de frecvență, ceea ce înseamnă că dacă faceți un ceas pe el, ei vor minți, nu prea mult, ci vor. Prin urmare, uneori este util să porniți controlerul pe un cuarț, în plus, numai o quarpete poate fi emisă la maximul de frecvență și, prin urmare, performanța procesului.

  • Cksel3 ... 0 \u003d 1001 - Quartz de frecvență redusă.

Câteva zeci de kilohertzi.
Utilizat la dispozitive cu viteză redusă, în special atunci când este necesară o funcționare precisă și un consum redus de energie.

Pentru cuarț convențional, situația este oarecum diferită. Frecvența maximă a cuarțului depinde, de asemenea, de biți Ckopt. Când ckopt \u003d 1 atunci:

  • Cksel3 ... 0 \u003d 1010 sau 1011 - de la 0,4 la 0,9 MHz
  • Cksel3 ... 0 \u003d 1100 sau 1101 - de la 0,9 la 3 MHz
  • Cksel3 ... 0 \u003d 1110 sau 1111 - de la 3 la 8 MHz (sau de la 1 la 16 MHz cu ckopt \u003d 0)

Ce-ar fi dacă Ckopt. Egal este 0, apoi cu aceleași valori ale CKSEL, puteți pune cuarț de la 1 la 16mhz.

Desigur, cuarț la 16MHz poate fi pus doar pe Mega fără indicele "L". (Deși, ca spectacole de practică, LDA poate fi de asemenea perturbată. Am câștigat ATMEGA8535 la 16 MHz, dar au existat efecte ciudate în munca ta. Prin urmare, nu am luat-o greu și accelerat). Din nou, cele menționate mai sus corespunde doar MEGA 16, altele pot diferi ușor.

Pic Ckopt. Setează scopul semnalului de ceas. Acestea. Amplitudinea oscilațiilor la ieșirea de la cuarț. Când ckopt \u003d 1, atunci domeniul de aplicare este mic, datorită acestui fapt, se obține un consum mai mic de energie, dar este redus la interferență, în special la viteze mari (și limita, judecând după tabelul de mai sus, este imposibil să se realizeze în general . Mai precis, poate începe, dar nimeni nu va începe garanții). Dar dacă CKOPT este activat, înregistrați 0 în el, atunci semnalul este împrăștiat imediat de la 0 la nutriție. Ce va crește consumul de energie, dar va crește rezistența la interferență, ceea ce înseamnă viteza limită. Când overclocking MC, cu atât mai mult trebuie să instalați ckopt în 0.

De asemenea, merită menționat faptul că bit-ul SCKDIV8 nu este în Atmega16, dar care este adesea găsit în alți controlori AVR. Acesta este un divizor de frecvență de ceas. Când este instalat, adică. În zero, frecvența pusă în biții din Cksel0 ... 3 este împărțită în 8, pe care la un moment dat este blocat decent lung, încearcă mult să înțeleagă ce nu funcționează pentru el. Întregul farmec este că acest separator poate fi dezactivat programatic prin scrierea la CLKPR înregistrează coeficientul de divizare dorit, de exemplu, unul. Întreaga glumă este că SCKDIV8 este activă în mod implicit! Atât de atent!

Bits sut. Setați viteza de pornire a MK după scoaterea sursei de resetare sau alimentare. Valoarea se schimbă de la 4ms la 65 de metri. Eu, pentru întreaga practică, până când această opțiune a fost capabilă să o folosească - nu este nevoie. Așa că am pus maximum 65ms - va fi mai fiabil.

Pic Rstdisbl. Creat pentru a transforma linia Resetare. La unul dintre porturile portului, uneori este foarte necesar atunci când nu există suficiente picioare pe orice mic mic, dar este necesar să ne amintim că, dacă ați tăiat resetarea, acesta scade automat la capacitatea de a clipea controlerul pe cinci cabluri. Și pentru supra-verificare, un programator paralel de înaltă tensiune, care costă câteva mii și pe genunchi pentru a face problematică, deși este posibil.

Al doilea șefă de ședere Spien. Dacă îl puneți în 1, atunci, de asemenea, să cădeți instantaneu abilitatea de a clarifica pe un mod simplu și din nou va avea nevoie de un programator paralel. Cu toate acestea, este liniștitor că este imposibil să îl resetați prin SPI, cel puțin în noul AVR (în vechi, în AT90 *** a fost posibil)

Wdton. Responsabil pentru un cronometru de câine, el este câine de ceas. Acest cronometru repornește procesorul dacă nu este posibil să îl resetați - prevenirea înghețării. Dacă Wdton a pus în 0, atunci câinele nu poate fi dezactivat deloc.

Bodlevel. și Boden. - Acesta este modul de control al tensiunii. Faptul este că, cu un anumit prag al tensiunii, sub nivelul critic, controlerul poate începe greu să muște. Spontan poate fi concentrat, de exemplu, EEPROM sau altceva de dormit. Ei bine, ce credeai, nu te hrăniți de câteva săptămâni - veți începe și Bile :)

Deci, pentru a rezolva această problemă, există un supraveghetor de putere integrat AVR. Se uită la basculantă nu este mai mică decât nivelul adecvat. Și dacă pompele lipsesc, presează doar resetarea și nu permite controlerului să înceapă. Acestea sunt aceste două fuse și regulă această caracteristică. Boden. Include A. Bodlevel. Vă permite să alegeți un nivel critic, unul din cele două. Ce fel? Nu voi dezvălui, uita-te în datashet (controlul sistemului secțiunii și resetare).

JTAGEN. - Activați JTAG. Implicit este activ. Acestea. JTAG este pornit. Din acest motiv, Mega16 (precum și 32 și altele, unde există JTAG) nu pot fi folosite de ieșirea portului C, care este responsabilă pentru JTAG. Dar puteți conecta depanatorul JTAG și cu el pentru a urca controlerul la creier.

Eesave. - Protecția EEPROM împotriva ștergerii. Dacă acest lucru este inclus, atunci cu resetare completă MK nu va șterge zona EEPROM. Utile, de exemplu, dacă există date valoroase ale lucrării în EEPROM.

Bootst. - Transferul vectorului de pornire în zona de încărcare. Dacă această bifă este activată, atunci MK pornește nu de la adresa 00000, ci de la adresa selectorului BES și mai întâi execută bootloaderul. Mai multe despre acesta a fost scris în articol despre firmware prin încărcător.

Bootsz0..1. - grup de biți care definesc sectorul de încărcare a încărcăturii. Uită-te mai mult în datashee. Ele diferă de controler la controler.

Blocați biți.
Acest lucru, de fapt, nu are o relație cu plus. Acestea sunt biți de protecție. Instalarea acestor biți interzice citirea de la cristal. Fie flash, fie Hiprom sau ambele simultan. Este necesar numai dacă vă vindeți dispozitivele. Deci, concurenții răi nu îmbină firmware-ul și nu au comandat în China mai mult de 9.000 de clone de dispozitiv, lăsându-vă fără pantaloni. Pericolele nu reprezintă. Dacă blocați cristalul cu ele, faceți o ștergere completă și nu există nici o problemă.

O caracteristică caracteristică a biților blocați este citită de firmware - în ea octeți în ordine. Acestea. 00.01, 02, 03, 04 ... FF, 00 ... ați văzut un astfel de sem? Deci, nu este destinată firmelor - protejate \u003d)

Tehnica de siguranță
Și regula principală atunci când lucrați cu biți de siguranțe - atenție, atenție și o dată atenția! Nu expuneți siguranța fără a se referi la o sursă de date, chiar dacă le trageți dintr-o sursă dovedită.

Asigurați-vă că vă ocupați de ce marcaj de verificare în programul firmware. Zero sau unitate. Activat sau dezactivat! Nu există standard!

Dacă biții sunt stabiliți de două numere - biți mai mari și mai tineri, apoi sunt stabiliți ca în data de date. Unde 0 este activată.

În al doilea rând, fier, regulă de lucru cu siguranța. Amintiți-vă pentru totdeauna și nu spuneți că nu am învățat.

Mai întâi citim pe aceia care acolo, apoi am scris cele pe care avem nevoie

Citirea - modificarea - înregistrarea. Singura cale. De ce? Da, pur și simplu se întâmplă adesea - a deschis fila de siguranțe, iar programatorul a prins stupid și nu le-a considerat el însuși. Ca rezultat - aveți celule goale peste tot. Satisfăcut, puneți numai acelea pe care aveți nevoie de Skill și apoi am făcut clic pe Scriere. Apoi vine, de obicei, Cabvdian. pentru că Nu numai cei pe care îl schimbați sunt înregistrați în controler, dar întreaga secțiune este introdusă. Cu acele celule goale. Imaginați-vă ce va fi Trusnik acolo. Aceeași! Și apoi alerg să se plângă de comentariile și forumurile, spun ei că nu am atins nimic de genul asta - este însuși. Da, Schar!

Deci, din nou - citirea, modificarea, înregistrarea!

Prompt:
Cum de a determina ce tip (direct sau invers) de siguranțe într-un firmware necunoscut?
Metoda deductivă: faceți clic pe Citirea siguranțelor și uitați-vă la starea biților de spienți Acest bit este întotdeauna activ, iar dacă este resetat, controlerul programatorului nu va determina nici măcar. Dacă spienul în 1 înseamnă siguranțele inverse, ca în Ponyprog. Dacă zero înseamnă notație ATMEL.

Publikovano 16.07.2012.

Siguranțele (siguranțele) sunt câțiva octeți speciali care pot clipea numai și răspund pentru diferite setări de microcontroler. Diferitele microcontrolere pot fi diferite. Prin urmare, consultați documentația pentru mai multe informații. Deoarece acest lucru se face ultima dată, voi da aici o scurtă descriere a Fuuzom și listați cele mai frecvente erori atunci când lucrați cu siguranțe.

Vreau să observ că bitul este considerat un pic, care este resetat la 0. Pentru începători, adesea face confuzie atunci când lucrează cu diferite programe de firmware.
Deoarece nu este întotdeauna instalat în mod clar față de fuziunea păsărilor este de 1 sau 0 (în sensul, instalat). Dezvoltatorii de software au însemnat, dacă pasărea merită, înseamnă că bitul este considerat a fi stabilit (IE \u003d 0).

Familie
Atrage
Familie
Atmega.
2313 25 /
45/
85
13 26 261 /
461/
861
8 16 48 /
88/
168
128 169 329 8515 8535

Rezervat
M103S.+ S8515S.S8535S.
Ocden. + + + +
JTAGEN. + + + +

Selfprgen.
+ + + + +
DWEN.+ + + + + +

Eesave.
+ + + + + + + + + + + + +

Spien.
+ + + + + + + + + + + + +

Wdton.
+ + + + + + + + + + +

Bodlevel2.
+ + + + +

Bodlevel1.
+ + + + + + +

Bodlevel0.
+ + + Bod.
Nivel.
+ Bod.
Nivel.
Bod.
Nivel.
+ Bod.
Nivel.
+ + Bod.
Nivel.
Bod.
Nivel.

Boden.
+ + + + + +
Rstdisbl.+ + + + + + + +

Ckdiv8.
+ + + + + + +

Ckout.
+ + + + + +
Sut1.+ + + + + + + + + + + + +
Sut0.+ + + + + + + + + + + + +
Ckopt. + + + + + +
Cksel3.+ + + + + + + + + + + +
Cksel2.+ + + + + + + + + + + +
Cksel1.+ + + + + + + + + + + + +
Cksel0.+ + + + + + + + + + + + +

Pllck.
+
Bootst. + + + + + + + +

Bootsz1.
+ + + + + + + +

Bootsz0.
+ + + + + + + +

Masa siguranță.- Fii popular AVR.. Nume stânga. siguranță.--ite pe o dataschet, în primele două linii de familii și tipuri de MK specifice și la intersecția de rânduri și coloane este un semn un plus dacă este dat. siguranță.-bit este disponibil în acest MK sau indicat nume altele decât standardul. Dacă lipsește un pic - nu există nimic în celula corespunzătoare. Nu este necesar pentru fiecare siguranță a bitului de siguranțe AVR: Rezervat - Acest bit este rezervat pentru unii necunoscuți de obiectivele simple de mortal de către companie Atml.. În orice condiții, nu se recomandă schimbarea stării sale (adică este necesar să o lăsăm așa cum este stabilită în fabricarea MK). În această linie
Există biți cu alte nume, de regulă, acestea sunt biți de încorporare a modului de compatibilitate cu tipuri MK învechite, cele noi sunt înlocuite. De obicei la sfârșitul numelui acestui lucru siguranță.-BiBi are un simbol DIN - OT. Compatibil (compatibil).

Ocden. - siguranța permite funcționarea schemei interne de depanare ( O.n. C.Şold. D.ebug. I.in stare). Nu lăsați acest bit instalat în produse comerciale! În caz contrar, programul dvs. poate fi luat în considerare din memoria MK.

JTAGEN. - Bitul de siguranțe vă permite să lucrați o interfață de programare Debug JTAG. . Comparat cu Spi.-Interface, JTAG.are funcții avansate. Nu se recomandă fără a fi nevoie să părăsiți acest pic stabilit, deoarece în acest caz, actualul C crește curentele.

Selfprgen. - biți care permite programelor MC să înregistreze programe, adică producând auto-programare.

DWEN. - biții de siguranțe care permit munca Debugwire. - Aceasta este o interfață de depanare un fir. Nu este recomandat să îl lăsați instalat în produse comerciale.

Eesave. - bit de siguranțe, după instalare care la ștergerea conținutului de memorie MK EEPROM. Datele vor fi stocate intacte, adică nu va fi șters.

Spien. - Bitul de siguranțe care permite funcționarea interfeței de programare intraheimnale a MK Spi.. Acest bit poate fi reinstalat cu ușurință utilizând un programator paralel (sau JTAG.Dacă este permisă și disponibilă în MK). Toate MK sunt lansate cu bitul stabilit Spien., scoateți-o peste interfață Spi. imposibil .

Wdton. - bit de siguranțe, după instalarea unui cronometru de supraveghere WDT. Se aprinde imediat după sursa de alimentare și nu poate fi dezactivată. Dacă bitul nu este instalat, porniți și deconectați-vă WDT. Puteți gestiona software-ul.

Grupul Fuse Bitov. Bodlevel.. Este posibil să existe un pic sau mai multe, apoi sunt numerotate, începând de la zero. Valoarea acestor siguranțe de biți determină pragul schematic Bod. - Detectorul nivelului de tensiune de alimentare, cu o scădere a tensiunii de alimentare sub acest nivel, va primi o "resetare" a MK.

Boden. - biți de siguranțe, inclusiv o schemă a unui detector hardware al unui nivel de tensiune de alimentare nevalid, adică. Sistem Bod..

Rstdisbl. - bitul de siguranțe, deconectarea semnalului de resetare externă de la ieșirea microcontrolerului și schema de port I / O conectarea la aceasta. Acest bit este disponibil numai în acele MK, a cărui resetare hardware resetare este combinată cu una din porturile I / O. Instalarea eronată a acestui bit de siguranțe poate dezactiva resetarea și nu veți putea clipea ISP-ul. Nu instalați acest bit dacă intenționați să continuați să lucrați cu MC utilizând programatori consecutivi. "Revitalizați" MK cu instalat Rstdisbl.puteți doar cu un programator paralel și nu pentru toți MK.

Ckdiv8. - bitul de siguranțe, care include o diviziune preliminară a frecvenței unui generator de ceas de cuarț (sau altor) pe 8. adică cu bit-ul activat și utilizarea unui rezonator de cuarț pe 8 MHz, frecvența de ceas reală a MK va fi1 MHz.

Ckout. - bitul de siguranțe, permițând ieșirea frecvenței ceasului la una dintre concluziile MK (pentru alte dispozitive de tact).

Sut1. și Sut0. - Bițe de siguranțe care controlează lansarea generatoarelor de ceas MK. Situat cu următorii biți care definesc tipul și frecvența generatorului de ceas, iar conexiunea este foarte complicată și confuză. În cazul instalării eronate, există situații de lansare instabilă a generatorului sau resetarea repetată a procesului MKV de alimentare a alimentării.

Ckopt. - biți care definește modul de funcționare a generatorului încorporat al frecvenței ceasului la locul de muncă cu resonanți cuarț. Într-adevăr modifică coeficientul de câștig al invertorului încorporat în schema generatorului și, prin urmare, tensiunea de ieșire a piciorului Xtal2.. O instalație eronată poate duce la o lansare instabilă a unui generator de cuarț, până la excitarea acesteia nu pe armonică, ceea ce este necesar (din acest motiv Bitul de cuart a început sau numai atunci când MK nu este mai mare de 3,6V, sau numai după atingerea pensetării de concluzii Xtal1)

Bit grup Cksel0.Cksel3. - biții de siguranțe a căror combinație definește tipul și frecvența generatorului ceasului de lucru. În total, până la 16 combinații, dar nu toate sunt definite pentru toate tipurile de MK. O instalare eronată a unei combinații a acestor biți poate face MK "Dead" - nu va funcționa în schemă fără a furniza un semnal de ceas la picior Xtal1..

Pllck. - bit de siguranțe, permițând utilizarea unui sintetizator de frecvență încorporat pentru tactyader mk.

Bootst. - Bitul de siguranțe care definește adresa din care va fi executată execuția programului după resetare - dacă bitul este setat, atunci începutul programului nu va fi cu adresa 0000h (ca de obicei), dar de la adresa încărcătorului zonă Încărcător de încărcare.).

Grupul Fuse Bitov. Bootsz. - Două biți de siguranțe care definesc dimensiunea zonei de memorie a programelor alocate pentru bootloader ( Încărcător de încărcare.). Combinația acestor biți, în special, definește punctul de plecare al executării programului după resetare, dacă bitul este setat Bootst..

Cele mai frecvente erori la configurarea fuzzlelor:

1. Instalarea FYUZA. Rstdisbl.. Eroare la instalarea acestui bit de siguranță dezactivează Resetare.și nu puteți clipi mai mult ISP.. Acest lucru va necesita un programator serial sau ceva de genul ăsta.

2. Instalare incorectă Cksel0., Cksel1., Cksel2., Cksel3.. Aceste fuburi determină sursa ceasului microcontrolerului. Dacă ați ales accidental frecvența generatorului RC intern, acest lucru nu este fatal. Programarea prin ISP. Va fi posibil și puteți corecta situația. Și dacă ați stabilit accidental ceasul de la o sursă externă, lanț RC sau rezonator de cuarț și nu aveți astfel de astfel de schemă, apoi programarea ISP. De asemenea, va deveni imposibil. De fapt, microcontrolerul se va aștepta ca tact dintr-o schemă inexistentă. Cum să ieșiți din această poziție? Este foarte ușor să dați un microcontroler o sursă de ceasuri de ceas și reparați siguranțe. Cel mai adesea instalează Cksel. Toate zerourile se tact de la un generator extern. În acest caz, puteți colecta o schemă care generează meander (frecvența unui rol special nu se joacă, principalul lucru este că pune limitele posibilității unui microcontroler) și pune pe picior Xtal1.. După aceea, microcontrolerul poate clipea ISP.. Primul lucru pe care trebuie să-l faceți este să resetați FUB-urile la setările din fabrică. În cazul în care un Cksel. Toate sunt instalate în 1 - tact de la cuarț extern. Jumar cuarț după care microcontrolerul va fi disponibil din nou prin ISP..

Ce este Fuse biți? Cuvintele par a fi familiare, dar mulți nu știu cu adevărat scopul, puneți căpușe și bliț, dispozitivul funcționează și bine. Vreau să vă spun ceva despre aceste biți de siguranțe.

Fuse biți ( fuune) - Ei bine, dacă este simplu, atunci au stabilit anumiți parametri ai microcontrolerelor, acesta este un anumit instrument pentru configurația lor fină a siguranțelor includ sau configurează astfel de parametri ca:
- Frecvența generatorului, generatorul extern sau internă
- interzicerea firmware-ului de citire a microcontrolerului
- Pornirea sau oprirea cronometrilor
- Divizia de frecvență a generatorului de cuarț
- PROTECȚIA EMPERULUI DE LA Ștergere
... etc. Fiecare microcontroler este expus prin siguranțele lor, diferite microcontrolere au o listă diferită de fioți, de exemplu, în Atmega8 nu există nici o fuziune CKOUT, dar este prezentă în Attiny2313. În foaia de date la microcontrolere, toate aceste siguranțe sunt pictate.

lucrul principal Regula la lucrul cu siguranțele nu este de a le grăbi să le expunem dacă nu sunteți sigur de corectitudinea acțiunilor dvs.

Acum scriem numele unor filme, denumirile lor și ceea ce afectează. În general, există FUBES pentru a proteja programul de copiere (Lok-biți), siguranțe care stabilesc anumite funcții, precum și așa-numitul octeți "senior" și "junior". Cel mai popular fub, care este expus aproape întotdeauna, este:

Cksel., astfel de comutate cu litere diferite de numai patru, acesta este un grup Cksel 0,Cksel 1,CKSEL 2 I.Cksel 3.Frecvența generatorului de ceas este determinată și tipul său, impulsurile de ceas sunt necesare pentru funcționarea aproape orice microcontroler. În multe microcontrolere, există un generator intern, dar putem conecta externe și siguranțe pentru a expune la un generator extern. Rezonatorul extern de cuarț se conectează la concluziile Xtal 1. și Xtal 2., În plus, o pereche de condensatori ~ 20pf este vândută un capăt pe cuarț, altul pentru minus. Dacă faceți o eroare la instalarea acestor filme, microcontrolerul poate "blocat" pentru a restabili controlerul, semnalul ceasului XTAL1 este alimentat, nu există puține scheme pentru restabilirea controlorilor blocați în acest mod. Acest generator poate fi practic din orice logică sau chiar din temporizator 555.

Există scheme simple utilizând 1 tranzistor, o pereche de rezistoare și un rezonator de cuarț și mai complexe, pe chips-uri K155L3. Metode de date 100% revitalizează controlerele cu un astfel de defect

Grupul Fiuz. Sut1. și Sut0. - biți de siguranțe care controlează modul de lansare a generatoarelor de ceas MK, precum și specificați viteza de pornire a MK după alimentarea. Asociate cu Fusami. CKSEL,și anume Cksel0..

Ckopt. - Bit, determină funcționarea generatorului încorporat pentru a lucra cu rezonatoare cu cuarț, stabilește "amplitudinea" oscilației semnalului de ceas pe cuarț. Acest bit este programat destul de des.

Rstdisbl. - FuB foarte periculos, instalarea eronată poate dezactiva ieșirea RemediuT., după care posibilitatea de programare a programatorului ISP va dispărea. Pic Rstdisbl. Vizualizează ieșirea Resetare. În portul I / O.

Spien. - Fuum care permite lucrarea MK pe interfața SPI. Toate microcontrolerele sunt disponibile cu bitul deja stabilit Spien.. Este considerat un fub periculos.

Eesave. - Este convenabil să citiți ca salvare în casă, înseamnă literalmente "salvați camera de zi", acest Fuuz protejează EEPROM de la ștergere. De exemplu, atunci când se toarnă încă o dată firmware-ul în controler, puteți pune Eesave \u003d 0.Și când ștergeți MK EEPROM nu va fi atins.

Bootsz.constă dintr-un grup de biți Bootsz1. și Bootsz0., determinați dimensiunea zonei de memorie a programelor înregistrate, este asociată cu bitul Bootst..

Bootst. Definește adresa de la care va fi pornit execuția programului. Dacă bitul este instalat, adică în cazul în care un Bootst \u003d 0.Începutul programului va fi cu adresa de descărcare (încărcător de încărcare).

Boden. - biți, care, atunci când este expus ( Boden \u003d 0.) va fi controlat pentru tensiunea de alimentare, pe tensiuni extrem de joase, microcontrolerul poate reporni, bug-ul și așa mai departe. Asociat cu Bodlevel.

Bodlevel.. - Specifică momentul funcționării detectorului nivelului de tensiune de alimentare, când tensiunea de alimentare este redusă mai jos, va avea loc controlerul "repornire".

Selfprgen. - biți care permite ( Selfprgen \u003d 0.) sau interzice ( Selfprgen \u003d 1.) Programul este înregistrat în memorie.

Ocden. - Acest fus permite sau interzice citirea unui program din memoria controlerului.

Am menționat într-un fel în articolele mele despre faptul că, în unele programe, siguranțele sunt setate oglindite. Tine minte programat Fuz \u003d 0 , dar nu programate \u003d 1. . În programe Algoritmul Builder, Uniproffuuyysive într-un fel și în programe Ponyprog,Codevisionavr, Studio AVR, SINAPROGȘi alții, Fubes trebuie să fie setat în comparație cu lista anterioară a programelor.

De mult timp în urmă, așa-numitul "Calculatoare Fuuz" au apărut pe Internet, acestea sunt aplicații speciale concepute pentru a ajuta la configurarea unui microcontroler. Aplicația este intuitivă, cred că o vom da seama, în lista controlorilor, alegem MK avem nevoie, apoi selectați funcțiile necesare, iar căpușele de fuziune sunt expuse, totul este foarte simplu.

Aceste aplicații sunt foarte convenabile, deoarece De exemplu, în ultimul timp, autorii proiectelor lor sunt foarte des scrise de scrisori sau numere de neînțeles sau cuvinte, noul venit nu este clar ce înseamnă și ce siguranțe trebuie să fie expuse (puteți găsi adesea un comentariu pe articolul " Și ce fel de siguranțe să expună? "). Fuuz Calculator pentru noi în această privință ajută foarte mult.

Cred că acum, dacă întrebați "Ce este Fuum și de ce sunt aveau nevoie?", Puteți explica unei persoane numirii lor, dar pentru moment, în acest sens!

Întrebarea care a fost nevoie de mult timp explicația - ceea ce este bitul siguranței (denumit în continuare Fuuz) și cum să le folosească. Pentru a ușura înțelegerea, le numim setarea unui microcontroler, care poate fi schimbat numai în timpul firmware-ului.

Convenabil pentru faptul că este suficient să specificați configurația reușitelor o dată și, indiferent de acest lucru pentru a schimba firmware-ul cât mai mult posibil - fuziunea va rămâne aceeași. Trebuie spus că pentru unele microcontrolere există siguranțe specifice, un exemplu pentru ATMEGA8 este considerat aici.

Cksel0-3.- Sunt responsabili pentru alegerea unei surse de tactire a unui microcontroler. În data de date există o masă de la ea pentru a estima configurația biților.

De exemplu, dorim să lucrăm de la cuarț extern la 8 MHz, pentru cavr, eliminăm cu îndrăzneală caseta de selectare CKSEL0-3 (adică valorile lor vor fi 1111). Schema de conectare cuarț. Condensatoare 12-22 pf.

Sau dorim să lucrăm de la un generator intern la 8 MHz, vedem gama de valori pentru CKSEL, se răcește datashet și a se vedea o descriere detaliată:

Acestea. În cazul nostru, ultima opțiune este potrivită, intrați cu îndrăzneală în ckel0-3 \u003d 0010 și bucurați-vă de super-viteză.

Dacă ați instalat accidental un tact dintr-o sursă externă și nu aveți, atunci - din păcate microcontrolerul nu este accesibil la citire și programare. Dar nu merită supărat, merită să luați cuarț extern și Atmega va revigora din nou.

Ckopt. - Folosit numai cu biți CKSEL, vă permite să activați "modul câștigător". Microcontrolerul din acest mod a crescut consumul de energie, dar nu mai are obstacole. Instalarea acestui bit vă permite să lucrați la frecvențe de peste 8 MHz, dacă microcontrolerul însuși suportă astfel de frecvențe.

Sut0-Sut1. - Acești biți sunt responsabili pentru întârziere, înainte de începerea microcontrolerului. În ceea ce am înțeles din foaia de date, recomandări pentru acești biți se referă în principal la nutriție și includ biți Boden

Boden. - Când instalați un pic, microcontrolerul controlează tensiunea de alimentare. Când tensiunea este redusă sub un anumit nivel, microcontrolerul este resetat.

Bodlevel. - Definește același nivel de tensiune dacă este instalat FUB, apoi limita inferioară de alimentare este de 4V, dacă nu este instalată 2.6V.

Bootst. - Vă permite să începeți să executați programul nu de la început, ci cu o zonă specifică de încărcare.

Bootsz0-cizmez1. - De asemenea, aparțin încărcătorului de bootloader, determinați dimensiunea încărcătorului alocat memorial.

Eesave. - Dacă bitul este setat, atunci în timpul executării comenzii de cip de ștergere, memoria nu va fi șterse.

Wdton. - Vă permite să utilizați un cronometru de supraveghere.

Rstdisbl. - Responsabil pentru atribuirea producției de resetare. Dacă este instalat, piciorul resetării devine portul obișnuit I / O. Ca urmare, devine posibil să nu se folosească cu programare succesivă, adică. microcontrolerul nu este posibil să clipească fără un programator special.

Rețineți că unele programe au un bit viclean - o interdicție de programare secvențială, după instalarea acestui bit microcontrolerul nu este posibil să clipească fără un programator special.

Pentru cuarț extern la 8 MHz

Pentru cuarț extern 8-16 MHz

Pentru internă pe 8 MHz

Totul este foarte simplu - comentarii mici despre imagine vor ajuta.

Iată astfel de instrumente pentru a lucra cu puține biți. Alege!


(A vizitat 149 de ori, 38 vizite astăzi)

Secțiune:

Bună după-amiază, cer un pic de ajutor într-o singură întrebare, probabil că am întrebat-o astfel, dar tot ce întreb, încerc să umplem firmware-ul în Magi 48, Sinaprog o vede și scrie că totul este înregistrat în controler, dar într-un fel este rapid Se întâmplă aproximativ o secundă, firmware-ul pentru scările din spate. Când încercați să instalați și Flash Firmware, programul citește setările din fabrică, instalez invers în funcție de imagine la firmware-ul dorit, scrie că totul este în regulă. Dar returnează 00 și semnătura, de asemenea, 000000. Spune-mi ce ar putea fi cazul.

  • Valeriy.

    Bună ziua Eugene. Vă cer ajutor. Cum arată siguranțele în programul PonyproG pentru acest lucru
    Dispozitive. Aradiocot Prefix "Breeze de mare" pentru un ventilator. Mulțumesc.


  • Recordul autorului de admin

    Mergeți la calculator http://www.engbedat.com/fusecalc/
    Alegeți ATTININY13 CHIP.
    În partea de jos va fi o instalare de byte
    Pentru introducerea înaltă F9
    Pentru intrarea scăzută 5a
    - Aceasta este din imaginea articolului.
    Ia toate fuburile tale. Puneți-vă

    În general, concentrați-vă pe spien - trebuie întotdeauna să fie activă. Asta este, dacă citiți FUBUSES de la MK (înainte de schimbarea lor), atunci trebuie să schimbați Fuuz, astfel încât spienul rămâne neatins.