Fuse-biți - nu este infricosator, embedder - viața lui

Care este biții de blocare / siguranța?

Toată lumea știe că AVR are trei memorie: flash, în cazul în care programul este stocat, SRAM - de memorie EEPROM și, în cazul în care programul poate scrie ceea ce doriți să salvați când alimentarea este oprită. Deci, există o a patra zonă de memorie disponibilă pentru programare. Se compune din mai mulți octeți (de exemplu, patru octeți ATmega48 - unul pentru blocare-biți și bytes siguranțe - joase, înalte și extinse), în care sunt aranjate și acești biți sunt legendare.







Ce sunt?

De ce sunt atât de frică?

Există mai multe motive. După cum sa menționat deja, biți de blocare / fitil controlează setările MK cele mai de bază referitoare, printre altele, metodele și calendarul programării sale. Prin urmare, le-a instala în mod corespunzător este foarte ușor pentru a obține un cip care nu lucrează. Situația este agravată de faptul că activă (set), adică curent este de biți / siguranțe de blocare având o valoare de zero. care a fost confuz. O problemă separată este un mediu grafic în care setările de instalare a făcut casetele de selectare. Ei nu au un standard unificat, și, prin urmare, trebuie să monitorizeze îndeaproape ceea ce este sensul căpușei - unul sau un pic zero, de interes.

Acum, cum să evite probleme.

Aproape niciodată nu trebuie să se atingă de blocare-biți. Ei controlează interzicerea program de citire / scriere / date, precum și unele dintre caracteristicile care sunt importante pentru bootloaders. Având în vedere că interzicerea lucrărilor cu codul de program este irelevant pentru majoritatea fanilor, și puțini scrie bootloader, apoi atingeți setările nu are nici un sens. Cu toate acestea, de blocare-biți sunt șterse la ștergerea cristal, și, prin urmare, poate provoca doar o ușoară confuzie între experimentator.

Ei au cel mai mare potențial distructivă RSTDISBL siguranțe-biți. SPIEN și DWEN. Atinge-i că nu, cred că de zece ori și realizând ferm rezultatul dorit.

resetare RSTDISBL dezactivează ieșirea, făcându-l de obicei piciorul IO. Deoarece resetarea este una dintre liniile necesare pentru programarea în serie, dezactivarea-l face semnificat imposibilă.

DWEN - include depanare prin DebugWire. Deoarece producția DW este combinat cu resetare de ieșire, acest bit are același efect ca și RSTDISBL finală.

SPIEN - dezactivează programarea în circuit prin intermediul SPI.

Randamentul situația de mai sus, prin utilizarea programatori paralel. Cu toate acestea, din cauza prevalenței slabe se poate considera că instalarea oricare dintre aceste Fyuz în cele mai multe cazuri, se va face de MK Keychain elegant, pentru că, de obicei, mai ieftin și mai ușor de a cumpăra un nou controler decât collect / uita-te pentru programarea paralelă.







Ca urmare a acțiunii forței - grup CKSELn de biți. Acestea determină opțiunea de sincronizare. În mod implicit, cele mai multe dintre MC sunt furnizate de un built-generator. CKSELn îi este permis să curgă de la un semnal de cuarț / ceas controler extern. De fapt, în cazul în care acea persoană este absentă, MC nu va oferi semne de viață. Tratată această condiție este destul de ușor - trebuie doar să vă lipiți picioare Xtal orice rezonator de cuarț (puteți vărsat chiar și fără condensatori) sau un generator de lipire simplu pentru un MHz puține și furnizează un semnal de ceas de la ea la fel. Crystal va revigora și va instala configurația corectă. Cu toate că, în cazul în care operatorul este în pachetul TQFP sudat la bord, iar picioarele nu Xtal divorțat, problema se poate transforma într-o căutare mic, dar fascinant. De aceea, înainte de programarea acestor biți este recomandat pentru a le verifica câteva ori în cazul în care placa nu are nici o cavitate.

Unele varietate din rutina ta poate aduce un pic de depanare WDTON. Acesta forțează timer-ul watchdog funcționează continuu. Prin urmare, dacă setați acest bit și să uitați despre el, există o perspectivă de a urmări fenomenul reporniri regulate MK fără nici un motiv aparent.

Experimentator poate, de asemenea efect de surpriză biți BOOTRST. Programul de forțe a spus începe de la secțiunea bootloader și de la început (0x0000). Deoarece este, de asemenea, mai bine să nu-l atingă, cu excepția cazului, desigur, nu este scris bootloader.

Biții rămași sunt practic inofensive. Cu toate acestea, unele pot genera surprize (cum ar fi biții de compatibilitate prezenți în ATmega128). Pentru că înainte de a instala Fyuz merită întotdeauna să citiți cu atenție manualul și dublu-a verifica valoarea primită. Și pentru firmware-ul pentru a utiliza utilitar care vă permite să specificați numărul de octeți Fyuz pentru a elimina ambiguitățile.

Deci, rezumând cele de mai sus, câteva reguli simple, care sunt aplicabile, în cele mai multe cazuri, atunci când nu este sarcini speciale necesare:

De asemenea, nu aș sfătui să încredere într-o varietate de biți calculatoare Fyuz. În ceea ce pentru mine, costul de eșec este destul de mare aici pentru a organiza un sfert de oră în meditație pe foaia de date.

ATmega48 vine de la fabrică reglat la ceasul de la o frecvență oscilator intern de 8MHz. În acest caz, este, de asemenea, bit CKDIV8 programat-fuse. preddeleniem care controlează frecvența de ceas a cristalului de 8. Astfel, frecvența rezultată este 1MHz MK. Pentru mine, acest lucru nu este de ajuns, și eu sunt mereu în lovitura timpurie de pe acest Fyuz de a utiliza toate 8MHz.

După cum sa menționat mai sus, pentru unicitatea este de dorit să se utilizeze un astfel de instrument pentru firmware-ul, care vă permite să specificați numărul de Fyuz. Eu folosesc un AVRdude consolă, pentru că aceasta nu este o problemă.

Deci, urca în foaia de date. și a vedea unde este acest CKDIV8. Din tabelul de la pagina 288 este clar că suntem interesați în Fyuz octet scăzut:

Valoarea sa inițială - 0b01100010. CKDIV8 - Al șaptelea bit. Restul dintre noi vrem să se aplice, să nu se atingă. Am doar bitul cel mai mare, noua valoare a Fyuz octet scăzut - 0b11100010 = 0xE2. Linia de comandă pentru AVRdude va arata ca:

-p M48 - noastre MK - ATmega48;
-c ftbb -P ft0 - Eu folosesc ftbb;
-e - cip de ștergere înainte de a efectua acțiuni; a spus
-U lfuse: w înregistrare junior (lfuse) bytes Fyuz
: 0xE2: m - numărul 0xE2;
-B 4800 - fă-o încet, pentru a fi sigur de;
-u - să facă ceea ce li sa spus să nu blesteme.

În general, în siguranțele de biți nu este nimic să vă faceți griji, toate informațiile necesare pot fi obținute din fișa tehnică. Principalul lucru - foarte conștient de scopul instalării lor și să fie extrem de atenți în valorile de proiectare ale octetului dorit.