Microcontrolere AVR: biți de siguranță. Siguranțe ale microcontrolerelor AVR - cum și cu ce sunt utilizate Fuse atmega8 Descriere

Publicat 16.07.2012

Siguranțele sunt câțiva octeți speciali care pot fi doar flashați și sunt responsabili pentru diferite setări ale microcontrolerului. Siguranțele pot diferi pentru diferite microcontrolere. Prin urmare mai mult informatii detaliate vezi documentatia. Deoarece acest lucru se face ultima dată, voi oferi aici scurta descriere siguranțe și enumerați cele mai frecvente greșeli atunci când lucrați cu siguranțe.

Aș dori să remarc că un bit care este resetat la 0 este considerat setat Pentru începători, acest lucru provoacă adesea confuzie atunci când lucrează cu diferite programe pentru firmware.
Deoarece semnul de verificare vizavi de siguranță nu este întotdeauna clar 1 sau 0 (în sensul setării). Dezvoltatorii de software au vrut să spună că, dacă există o bifă, atunci bitul este considerat setat (adică =0).

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

REZERVAT
M103С+ S8515СS8535С
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
+
BOOTRST + + + + + + + +

CIZMEZ1
+ + + + + + + +

BOTSZ0
+ + + + + + + +

In masa siguranța- biți de populare AVR. Titluri în stânga siguranța-biți conform fișei de date, primele două linii listează familiile și tipurile de MK-uri specifice, iar la intersecția rândurilor și coloanelor există un semn la care se adauga , dacă este dat siguranța-bit este prezent în acest MK sau specificat Nume , diferit de cel standard. Dacă lipsește un bit, nu există nimic în celula corespunzătoare Scopul fiecărui bit de siguranță AVR: REZERVAT- acest bit este rezervat pentru anumite scopuri necunoscute simplilor muritori de către companie Atmel. În niciun caz nu se recomandă modificarea stării acestuia (adică ar trebui lăsat așa cum a fost instalat în timpul fabricării MK). În această linie
Există biți cu nume diferite, de regulă, aceștia sunt biți pentru activarea modului de compatibilitate cu tipuri de microcontrolere învechite, care au fost înlocuite cu altele noi. De obicei, la sfârșitul titlului siguranța-bit are un simbol CU- de la COMPATIBIL(compatibil).

OCDEN- siguranța activează circuitul intern de depanare ( O n Cşold D ebug RO capabil). Nu lăsați acest bit setat produse comerciale! În caz contrar, programul dumneavoastră poate fi citit din memoria MK.

JTAGEN- bitul de siguranță activează interfața de programare-depanare JTAG . Comparat cu SPI- interfata, JTAG are capabilități avansate. Nu este recomandat să lăsați acest bit setat decât dacă este necesar, deoarece în acest caz curentul consumat de MK crește.

SELFPRGEN- un bit care permite programului MK să scrie în memoria programului, adică să efectueze autoprogramarea.

DWEN- bit de siguranță care permite funcționarea DebugWire– Aceasta este o interfață de depanare cu un singur fir. Nu este recomandat să-l lăsați instalat în produsele comerciale.

EESAVE- bit de siguranță, după setarea căruia, la ștergerea memoriei MK, conținutul EEPROM Datele vor fi păstrate intacte, adică nu vor fi șterse.

SPIEN- bit de siguranță, care permite funcționarea interfeței de programare în circuit MK SPI. Acest bit poate fi resetat cu ușurință folosind un programator paralel (sau JTAG, dacă este permis și disponibil în MK). Toate MK-urile sunt produse cu bitul instalat SPIEN, eliminați-l din interfață SPI imposibil .

WDTON- bit siguranța, după care se setează timer-ul watchdog WDT se pornește imediat după alimentarea și nu poate fi dezactivat de software. Dacă bitul nu este setat, atunci pornește și dezactivează WDT poate fi controlat de software.

grup de biți de siguranță BODLEVEL. Pot exista fie un astfel de biți, fie mai mulți, apoi sunt numerotați începând de la zero. Valoarea acestor biți de siguranță determină pragul de declanșare al circuitului BOD- detector de nivel al tensiunii de alimentare când tensiunea de alimentare scade sub acest nivel, MK va fi „resetat”.

BODEN- bit de siguranță, care pornește circuitul detector hardware pentru un nivel inacceptabil al tensiunii de alimentare, de ex. diagramă BOD.

RSTDISBL- bit de siguranță, care deconectează semnalul de resetare extern de la pinul microcontrolerului și conectează circuitul portului I/O la acesta. Acest bit este disponibil numai în acele MCU-uri care au o ieșire hardware resetați RESET combinat cu unul dintre porturile I/O. Setarea incorectă a acestui bit de siguranță poate dezactiva RESET și nu veți mai putea să clipiți prin ISP. Nu setați acest bit dacă intenționați să continuați să lucrați cu MCU folosind programatori seriali. „Reînvie” MK cu instalat RSTDISBL Este posibil doar cu un programator paralel și nu pentru toate MK-urile.

CKDIV8- bit de siguranță, care include o împărțire preliminară a frecvenței generatorului de ceas de cuarț (sau alt existent) cu 8. Adică, atunci când acest bit este pornit și este utilizat un rezonator de cuarț de 8 MHz, frecvența de ceas reală a MK va fi de 1 MHz.

CKOUT- bit de siguranță, permițând ieșirea frecvenței de ceas la unul dintre pinii MK (pentru tactarea altor dispozitive).

SUT1Și SUT0- biți de siguranță care controlează modul de lansare al generatoarelor de ceas MK. Asociat cu biții descriși mai jos care determină tipul și frecvența generatorului de ceas, iar conexiunea este foarte complicată și confuză. Dacă sunt instalate incorect, situațiile pot duce la pornirea instabilă a generatorului sau la resetarea repetată a MC în timpul procesului de alimentare cu energie a acestuia.

CKOPT- un bit care determină modul de funcționare al generatorului de ceas încorporat pentru lucrul cu rezonatoare de cuarț. Schimbă cu adevărat câștigul invertorului încorporat în circuitul generatorului și, prin urmare, tensiunea de ieșire pe picior XTAL2. Instalarea incorectă poate duce la pornirea instabilă a oscilatorului de cuarț, până la excitarea acestuia la armonica greșită. (din acest motivBitul de cuarț a pornit fie numai când MK era alimentat cu o tensiune nu mai mare de 3,6 V, fie numai după atingerea pinului XTAL1 cu penseta.)

Grup de biți CKSEL0CKSEL3- biți de siguranță, a căror combinație determină tipul și frecvența generatorului de ceas de funcționare. În total, sunt posibile până la 16 combinații, dar nu toate sunt definite pentru toate tipurile de MK. Setarea incorectă a combinației acestor biți poate face ca MK să fie „mort” - nu va funcționa în circuit fără a furniza un semnal de ceas pinului XTAL1.

PLLCK- bit de siguranță, permițând utilizarea sintetizatorului de frecvență încorporat pentru a tasta nucleul MK.

BOOTRST- bit de siguranță, care determină adresa de la care va începe execuția programului după o resetare - dacă bitul este setat, programul va începe nu de la adresa 0000h (ca de obicei), ci de la adresa zonei bootloader-ului (Încărcător de pornire).

grup de biți de siguranță BOOTSZ- doi biți de siguranță care determină dimensiunea zonei de memorie a programului alocată pentru bootloader ( Încărcător de pornire). Combinația acestor biți, în special, determină punctul la care începe execuția programului după o resetare, dacă bitul este setat BOOTRST.

Cele mai frecvente greșeli la configurarea siguranțelor:

1. Instalarea siguranțelor RSTDISBL. Setarea incorectă a acestui bit de siguranță se dezactivează RESET, și nu veți mai putea să clipească ISP. Acest lucru va necesita un programator serial sau ceva de genul.

2. Instalare incorectă CKSEL0, CKSEL1, CKSEL2, CKSEL3. Aceste siguranțe determină sursa de ceas a microcontrolerului. Dacă selectați accidental frecvența greșită a oscilatorului RC intern, aceasta nu este fatală. Programare prin ISP va fi posibil și veți putea corecta situația. Și dacă ați setat din greșeală ceasul de la o sursă externă, un lanț RC sau un rezonator de cuarț și nu aveți așa ceva în circuitul dvs., atunci programați conform ISP va deveni de asemenea imposibil. În esență, microcontrolerul va aștepta tactarea dintr-un circuit inexistent. Cum să ieși din această situație? Este foarte simplu - dați microcontrolerului o sursă de ceas și corectați siguranțele. Cel mai des instalat CKSEL toate zerourile – tactarea de la un generator extern. În acest caz, puteți asambla un circuit care generează un meandre (frecvența nu joacă un rol special, principalul lucru este că se află în posibilitățile microcontrolerului) și îl puteți aplica pe picior. XTAL1. După care microcontrolerul poate fi flash prin intermediul ISP. Primul lucru de făcut este să resetați siguranțele la setările din fabrică. Dacă CKSEL toate sunt setate la 1 – ceas de la cuarț extern. Agățați cuarțul și apoi microcontrolerul va fi din nou accesibil prin intermediul ISP.

O întrebare care a cerut de mult timp clarificări este ce este un bit de siguranță și cum să îl folosești. Pentru ușurință de înțelegere, să le numim setări pentru microcontroler, care pot fi modificate numai atunci când flash-ul firmware-ului.

Sunt convenabile prin faptul că este suficient să specificați o singură dată configurația siguranței și, indiferent de aceasta, să schimbați firmware-ul de câte ori doriți - siguranțele vor rămâne aceleași. Trebuie spus că pentru unele microcontrolere există siguranțe specifice aici luăm în considerare un exemplu pentru Atmega8.

CKSEL0-3— sunt responsabili pentru selectarea sursei de ceas al microcontrolerului. Fișa de date are un tabel din care puteți estima configurația biților.

De exemplu, dacă dorim să operam dintr-un cuarț extern la 8 MHz, pentru CAVR putem debifa în siguranță casetele de selectare CKSEL0-3 (adică valorile lor vor fi 1111). Diagrama pentru conectarea cuarțului. Condensatoare 12-22 pF.

Sau vrem să lucrăm de la un oscilator intern la 8 MHz, vedem intervalul de valori pentru CKSEL, derulăm în jos fișa de date și vedem o descriere detaliată:

Acestea. in cazul nostru ultima optiune este potrivita, nu ezitati sa o introduceti in CKEL0-3=0010 si sa va bucurati de super viteza.

Dacă ați setat din greșeală ceasul de la o sursă externă, dar nu o aveți, atunci - vai microcontrolerul devine ilizibil și neprogramabil. Dar nu ar trebui să fii supărat, doar conectați cuarțul extern și atmega va prinde din nou viață.

CKOPT- folosit numai împreună cu biții CKSEL, vă permite să activați „modul câștig”. Microcontrolerul în acest mod a crescut consumul de energie, dar este mai imun la zgomot. Setarea acestui bit permite operarea la frecvențe de peste 8 MHz, dacă microcontrolerul însuși acceptă astfel de frecvențe.

SUT0-SUT1— acești biți sunt responsabili pentru întârzierea înainte ca microcontrolerul să înceapă să funcționeze. Din câte am înțeles din fișa tehnică, recomandările referitoare la acești biți se referă în principal la sursa de alimentare, inclusiv la bitul BODEN

BODEN— când bitul este setat, microcontrolerul controlează tensiunea de alimentare. Când tensiunea scade sub un anumit nivel, microcontrolerul se resetează.

BODLEVEL— determină același nivel de tensiune, dacă siguranța este instalată, atunci limita inferioară a sursei de alimentare este de 4V, dacă nu este instalată 2,6V.

BOOTRST— vă permite să începeți execuția programului nu de la început, ci dintr-o anumită zonă BOOTLOADER.

BOOTSZ0-BOOTZ1— faceți referire și la bootloader-ul, determinați dimensiunea memoriei alocată bootloader-ului.

EESAVE— dacă bitul este setat, atunci în timpul executării comenzii Erase Chip, memoria EEProm nu va fi ștearsă.

WDTON— vă permite să utilizați un temporizator watchdog.

RSTDISBL— este responsabil pentru alocarea ieșirii de resetare. Dacă este instalat, pinul de resetare devine un port I/O normal. Ca urmare, devine imposibil să-l folosești pentru programare secvențială, de exemplu. Microcontrolerul nu poate fi flash fără un programator special.

Vă rugăm să rețineți că unele programe au un bit insidios - o interdicție a programării secvențiale, după setarea acestui bit Nu este posibil să flashezi un microcontroler fără un programator special.

Pentru cuarț extern la 8 MHz

Pentru cuarț extern 8-16MHz

Pentru intern la 8 MHz

În această recenzie, ne vom uita la ce sunt biții de siguranță și pentru ce sunt necesari, deoarece acest lucru provoacă o mulțime de neînțelegeri (și dezvoltatorii software-ului intermitent îi rotesc cum doresc). Ca rezultat, controlerele AVR sunt îngrămădite în cutii până la „vremuri mai bune”. De exemplu, să ne uităm la biți de siguranță folosind ATMega8 MK ca exemplu. Pentru alte tipuri, scopul este specificat în fișa de date pentru un anumit MK (nu fi leneș să citești documentația). Deci să mergem! Toți biții de siguranță ai MK sunt împărțiți în 2 octeți - Fuse High Byte și Fuse Low Byte. Desigur, vom începe analiza de la octetul înalt.
RSTDISBL– determinarea modului de operare al pinului RESET. Acest pin poate funcționa în 2 moduri ca un pin de resetare extern sau ca un port I/O.
RSTDISBL=1– pinul este configurat să funcționeze ca o ieșire de resetare externă.
RSTDISBL=0– pinul funcționează ca port I/O. Acest mod de operare va dezactiva posibilitatea de programare în serie și doar programatorul paralel va ajuta.
WDTON– activați și dezactivați Timer-ul Watch Dog, care protejează împotriva înghețării programului executat de MK. Folosit în principal în programele critice în care înghețarea este nedorită.
WDTON=1– temporizatorul watchdog este dezactivat (poate fi activat programatic prin bitul WDT al registrului WDTCR).
WDTON=0– temporizatorul watchdog este activat (nu poate fi dezactivat de software).
SPIEN– activați programarea secvențială.
SPIEN=0– este permisă programarea secvențială.
SPIEN = 1– este interzisă programarea secvenţială.
Dacă dezactivați modul de programare în serie, doar programatorul paralel vă poate ajuta. În multe programe de firmware, acest bit nu poate fi schimbat (caseta de selectare nu este disponibilă).
CKOPT– un pic de opțiuni pentru generatorul de ceas. O vom analiza mai târziu, când vom ajunge la octetul scăzut.
EESAVE- bit pentru a proteja datele stocate în memoria EEPROM la ștergerea cipului. Dacă acest bit nu este setat, de ex. EESAVE = 1, apoi la ștergerea microcircuitului, datele stocate în EEPROM vor fi șterse.
BOOTSZ1…0– biți care determină cantitatea de memorie flash alocată pentru bootloader.
Un bootloader este un set de comenzi, chiar mai precis, este un program care se așteaptă la sfârșitul memoriei flash a MK, capabil să primească date de la dispozitive externe atunci când are loc orice eveniment și stocați-le în memoria flash. Bootloader-ul este utilizat în principal pentru flash-ul firmware-ului MK fără a utiliza un programator special.
BOOTRST– un bit care determină unde va începe să se încarce controlerul după o resetare.
BOOTRST=1– descărcarea va începe de la adresa zero
BOOTRST=0– încărcarea va începe de la adresa începutului zonei de memorie flash alocată pentru bootloader.
Așa că am ajuns la octetul mic.

BODLEVEL și BODEN– biți care controlează circuitul de monitorizare a tensiunii de alimentare a controlerului (Vcc). Dacă tensiunea scade sub bitul setat BODLEVEL, apoi MK se va reseta și va rămâne în modul de resetare până când tensiunea depășește pragul setat.

BODLEVEL = 1– tensiunea de prag este de 2,7 V.
BODLEVEL = 0– Tensiunea de prag este de 4V.
BODEN = 1– schema de monitorizare este inactivă.
BODEN = 0– circuitul de monitorizare a tensiunii de alimentare este activ.
SUT1…0– biți care determină timpul de pornire al microcontrolerului (vezi modurile de funcționare ale generatorului de ceas). După ce MK este alimentat cu energie, acesta iese din modul de economisire a energiei sau după o resetare, MK nu începe să funcționeze imediat, ci după un anumit timp. Tocmai de această dată se stabilesc aceste biți. Dacă ora de începere nu este importantă, atunci setați valoarea maximă SUT1…0 = 11. Toate operațiunile efectuate de controlere sunt efectuate folosind impulsuri provenite de la generatorul de ceas. Generatorul de ceas poate fi încorporat în MK sau poate fi extern.

Generatorul intern poate funcționa în mai multe moduri:

Cu circuit master intern RC;
- cu un circuit master extern RC;
- cu un rezonator extern master quartz sau ceramic.
Când controlerul funcționează de la un generator de ceas extern, impulsuri dreptunghiulare de la un generator extern sunt furnizate la intrarea sa XTAL1:
Toate aceste moduri de operare sunt specificate prin biți CKSEL3…0.


Toate MCU-urile de tip ATMega8 sunt livrate din fabrică cu o valoare de biți CKSEL3…0=0001, adică configurat pentru a lucra cu frecvența ceasului 1 MHz de la oscilatorul intern cu circuitul master intern RC. Ora de pornire în acest mod de funcționare este determinată din tabel:



Conform fișei tehnice, capacitatea condensatorului trebuie să fie de cel puțin 22 pF. Cu conditia ca CKOPT=0 Un condensator intern de 36 pF este conectat între pinul XTAL1 și GND și condensatorul extern poate fi omis. Frecvența circuitului master RC este determinată de raportul f=1/(3RC). În funcție de alegerea biților de lanț RC CKSEL3…0 sunt instalate conform tabelului:


Ora de pornire în acest mod este determinată conform tabelului:



Frecvența generatorului de ceas va fi determinată de frecvența cuarțului. La frecvența de cuarț selectată biții CKSEL3…1 selectați din tabel:


Combinaţie CKSEL3…1 = 101 trebuie utilizat numai cu un rezonator ceramic (vezi nota de mai jos). Ora de începere este selectată din tabel:


Când se operează un generator de ceas cu un rezonator extern, valoarea biților CKOPT determină modul de funcționare al amplificatorului generatorului de ceas pentru a conduce rezonatorul. La CKOPT = 0 amplitudinea oscilației este maximă, ceea ce oferă rezistență la interferențe și capacitatea de a funcționa pe întregul interval de frecvență. La CKOPT = 1 amplitudinea oscilațiilor este mai mică (generatorul funcționează într-un mod economic) și sunt posibile defecțiuni în funcționarea controlerului din cauza diverselor interferențe. Deci, dacă nu există cerințe stricte pentru economisirea de energie a dispozitivului, atunci CKOPT = 0. Pe lângă faptul că lucrează cu rezonatoare de înaltă frecvență, controlerul este capabil să funcționeze și la frecvențele așa-numitului cuarț de ceas (32768 Hz). Pentru această valoare CKSEL3…0 = 1001. La CKOPT = 0 Condensatorii interni sunt conectați între XTAL1 și GND și XTAL2 și GND, iar condensatorii externi pot fi excluși în acest caz. Ora de începere este determinată din tabel:


Generator extern de ceas


Pentru a selecta acest mod, setați CKSEL3…0 = 0000. Instalare CKOPT = 0 vă permite să conectați condensatori interni de 36 pF între XTAL1 și GND și XTAL2 și GND (de ce?). Ora de începere este din nou determinată din tabel:


În plus față de octeții de siguranță scăzut și ridicat, în fereastra intermitent puteți vedea octetul de biți de blocare - așa-numitul octet de protecție. Schimbând valoarea biților acestui octet, puteți dezactiva sau activa accesul la memoria programului (memorie flash), EEPROM și zona bootloader-ului. Putem spune că biții din acest octet sunt proiectați pentru a proteja ceea ce este în controler. Acest lucru este în principal necesar pentru ca dezvoltatorul să-și protejeze munca intelectuală de furt, iar pentru utilizatorul obișnuit, aceste biți sunt deosebit de neinteresante.

Câteva despre software-ul intermitent


Multe probleme cu controlerele de blocare apar din cauza software-ului intermitent. În unele programe, caseta de selectare din caseta de selectare înseamnă 0, iar în unele înseamnă 1. Este inutil să enumerați valorile casetei de selectare în fiecare program, deoarece există o mulțime de aceste programe. Prin urmare, voi da sfaturi despre cum să determinați cine este cine. Luăm MK și îl conectăm la programatorul serial, intrăm în modul de programare a biților de siguranță și citim toți octeții. Ne uităm la valoarea biților SPIEN. Deoarece programarea secvențială este permisă, atunci SPIEN = 0. Acum să ne uităm la ce este în caseta de selectare de lângă acest bit. Dacă există o casetă de selectare, atunci în acest program înseamnă 0, dacă caseta de selectare este goală, atunci caseta de selectare din acest program înseamnă 1. Când se afișează firmware-ul intermitent, luminează întotdeauna firmware-ul primul, iar biții de siguranță pe ultimul loc, deoarece biții de siguranță pot fi configurați nu din funcționarea unui generator de ceas cu un lanț RC intern sau, în general, în acest circuit, pinul RESET este folosit ca port obișnuit. Înainte de a clipi biți de siguranță, citiți-le întotdeauna, pentru că Când setați doar biții necesari, restul vor fi cusuți așa cum sunt pe ecran. Autorul articolului: skateman.

Ce este SIGURANTA biți? Cuvintele par familiare, dar mulți oameni nu își cunosc cu adevărat scopul, bifează căsuțele și le fulgerează, dispozitivul funcționează și asta e în regulă. Vreau să vă spun puțin despre aceste biți FUSE.

SIGURANTA biți ( sigurante) - ei bine, pentru a spune simplu, ei configurează anumiți parametri ai microcontrolerelor, acesta este un fel de instrument pentru ei reglaj fin Siguranțele includ sau configurează parametri precum:
- frecventa generatorului, generator extern sau intern
- interzicerea citirii firmware-ului microcontrolerului
- activați sau dezactivați temporizatoarele
- diviziunea în frecvență a unui oscilator cu cristal
- Protectie EEPROM impotriva stergerii
…și așa mai departe. Fiecare microcontroler are propriile siguranțe, microcontrolere diferite listă diferită siguranțe, de exemplu, ATmega8 nu are o siguranță CKOUT, dar este prezentă în ATtiny2313. Toate aceste siguranțe sunt descrise în fișele tehnice pentru microcontrolere.

Principal Regula atunci când lucrați cu siguranțe este să nu vă grăbiți să le setați decât dacă sunteți absolut sigur de corectitudinea acțiunilor dvs.

Acum să notăm numele unor siguranțe, denumirile lor și ceea ce afectează. În general, există siguranțe pentru a proteja un program de copiere (biți de blocare), siguranțe care stabilesc anumite funcții, precum și așa-numiții octeți „high” și „low”. Cea mai populară siguranță, care este aproape întotdeauna expusă, este:

CKSEL, există doar patru astfel de siguranțe cu litere diferite, acesta este un grup CKSEL 0,CKSEL 1CKSEL 2 șiCKSEL 3, determinați frecvența generatorului de ceas și tipul acestuia, impulsurile de ceas sunt necesare pentru funcționarea aproape a oricărui microcontroler. Multe microcontrolere au un oscilator intern, dar putem conecta unul extern și seta siguranțele să funcționeze de la un oscilator extern. Un rezonator extern de cuarț este conectat la pini XTAL 1Și XTAL 2, în plus, o pereche de condensatoare de ~20pf sunt lipite, un capăt la cuarț, celălalt la minus. Dacă faceți o greșeală la instalarea acestor siguranțe, microcontrolerul se poate „bloca” pentru a restabili controlerul, se aplică un semnal de ceas la piciorul XTAL1; acest moment Au fost inventate destul de multe scheme pentru restaurarea controlerelor blocate în acest fel. Acest generator poate fi realizat din aproape orice logică sau chiar un cronometru 555.

Mânca circuite simple, folosind 1 tranzistor, o pereche de rezistențe și un rezonator de cuarț și altele mai complexe, folosind cipuri precum K155LA3. Aceste metode revigorează 100% controlerele cu un astfel de defect

Grup de siguranțe SUT1Și SUT0- biți de siguranță care controlează modul de pornire al generatoarelor de ceas MK și, de asemenea, setează viteza de pornire a MK după ce este aplicată alimentarea. Asociat cu siguranțe CKSEL,și anume CKSEL0.

CKOPT- bit, determină funcționarea oscilatorului încorporat pentru lucrul cu rezonatoare de cuarț, stabilește „amplitudinea” oscilațiilor semnalului de ceas pe cuarț. Acest bit este programat destul de des.

RSTDISBL– o siguranță foarte periculoasă, o setare incorectă poate dezactiva ieșirea RESET, după care posibilitatea de programare va dispărea Programator ISP. Pic RSTDISBL transformă ieșirea RESET la portul I/O.

SPIEN– siguranță, care permite MK să funcționeze prin interfața SPI. Toate microcontrolerele sunt eliberate cu bitul deja instalat SPIEN. Considerată o fuziune periculoasă.

EESAVE- Convenabil de citit ca EEPROOM SAVE, înseamnă literal „salvare EEPROOM”, această siguranță protejează EEPROM-ul de ștergere. De exemplu, la următoarea încărcare a firmware-ului pe controler, puteți seta EESAVE = 0, iar la ștergerea MK EEPROOM va rămâne neatins.

BOOTSZ, constă dintr-un grup de biți CIZMEZ1Și BOTSZ0, determinați dimensiunea zonei de memorie a programelor înregistrate, asociate cu bitul BOOTRST.

BOOTRST, determină adresa de la care va începe execuția programului. Dacă bitul este setat, de ex. Dacă BOOTRST=0, apoi programul va porni de la adresa zonei bootloader-ului.

BODEN- bit, care atunci când este setat ( BODEN=0), va controla tensiunea de alimentare la tensiuni extrem de scăzute, microcontrolerul poate reporni, eșua și așa mai departe. Asociat cu BODLEVEL.

BODLEVEL. - determină momentul în care detectorul de nivel al tensiunii de alimentare este declanșat când tensiunea de alimentare scade sub nivelul, controlerul se va „reporni”.

SELFPRGEN- bit care permite ( SELFPRGEN=0) sau interzice ( SELFPRGEN =1) programul scrie în memorie.

OCDEN– această siguranță permite sau interzice citirea unui program din memoria controlerului.

Am menționat odată în articolele mele că în unele programe siguranțele sunt setate în oglindă. Tine minte siguranța programată=0 , A Nu programat=1 . În programe Creator de algoritmi, UniProf siguranțele sunt setate într-un singur fel și în programe PonyProg,CodeVisionAVR, AVR Studio, SinaProgși altele, siguranțele trebuie setate într-o manieră oglindă în comparație cu lista anterioară de programe.

De mult timp, așa-numitele „calculatoare cu siguranțe” au apărut pe Internet, acestea sunt aplicații speciale concepute pentru a ajuta la configurarea unui microcontroler. Aplicația este intuitivă, cred că vă veți da seama, în lista de controlere selectăm MK-ul de care avem nevoie, apoi selectam funcțiile necesare, iar sub casetele de siguranțe sunt bifate, totul este foarte simplu.

Aceste aplicații sunt foarte convenabile deoarece... de exemplu, recent, foarte des autorii proiectelor lor scriu valorile siguranțelor în litere sau cifre de neînțeles sau în cuvinte pe care un începător nu înțelege ce înseamnă acest lucru și ce siguranțe ar trebui setate (de multe ori puteți găsi un comentariu despre articolul „ce siguranțe ar trebui setate?”). Calculatorul de siguranțe ne ajută foarte mult în acest sens.

Cred că acum, dacă ești întrebat „ce sunt siguranțele și de ce sunt necesare?”, vei putea explica unei persoane scopul lor, dar deocamdată, asta e tot!