MK constă în declanșatoare statice, registre și contoare. După aplicarea puterii, ele trebuie să fie forțate într-o anumită stare logică, altfel, datorită haosului general, execuția programului devine imprevizibilă. Pulsul inițial de resetare este aplicat la terminalele RST (ReSeT) sau RES (inversare RESET). Acestea diferă între ele, respectiv pozitiv (figura 2.16) și negativ (figura 2.17).
Rezistoare Rrst și semiconductoare. Rolul lor este jucat de tranzistoarele cu efect de câmp care nu sunt complet închise în interiorul MC. Scopul rezistoarelor este acela de a se asigura că intrarea declanșatorului Schmitt DDI este conectată la firul comun sau la magistrala de alimentare. Astfel, circuitul de descărcare nu va "atârna în aer" și nu va prinde interferențe externe. Trebuie avut în vedere faptul că rezistențele semiconductoare, spre deosebire de cele convenționale, au o dependență neliniară a rezistenței la tensiunea de alimentare (Figura 2.18). În plus, din motive tehnologice, este dificil să se asigure rezistența lor identică de la lot la lot și de la chip la chip. Răspândirea este incontrolabilă și se ridică la zeci de procente.
Dioda VD1 protejează intrările de resetare de la electricitatea statică și tensiunile de tensiune negativă accidentală. Curentul prin dioda din impuls nu trebuie să depășească 10. 20 mA.
MC-urile compatibile cu MCS-51 utilizează în mod tradițional schema de resetare "pozitivă". O poveste instructivă este legată de acest lucru. Cei vechi amintesc că primele jetoane i8051 (fără litera "C" în nume) la începutul anilor 1980 au fost făcute utilizând tehnologia i-MOS. În consecință, controlerul a consumat un curent semnificativ în statică. Pentru a reduce consumul de energie
Dezvoltatorii au folosit următorul truc: intrarea de resetare RST a fost combinată cu intrarea sursei de rezervă de rezervă de la bateria externă. Dacă alimentul principal a fost pierdut, atunci puterea de rezervă a fost activată. În același timp, a existat un nivel ridicat la intrarea în RST, care a suspendat funcționarea nucleului procesorului, dar a păstrat informațiile în memoria RAM. Dacă resetarea a fost făcută printr-un impuls negativ, dezvoltatorii nu ar fi putut utiliza o astfel de soluție tehnică.
Mai târziu, a existat o tranziție la o tehnologie CMOS mai avansată, în care supapele logice practic nu consumă curent în statică. Acum, semnalul de resetare poate avea orice polaritate cu "legarea" rezistenței de intrare la firul comun sau la sursa de alimentare.
Observație interesantă. Firmele care dezvoltă noi familii MK, din anumite motive, utilizează pe cale amiabilă o schemă cu resetare "negativă". Se propune introducerea acesteia în componența MC-ului idealizat.
Organizarea descărcării inițiale
Eliminarea inițială a MC-urilor moderne se efectuează în următoarele cazuri (Figura 2.19):
- Power-On - resetare automată internă, care este activată imediat după aplicarea puterii;
- Brown-Out - resetarea de la detectorul intern a "tragerilor" tensiunii de alimentare; _
- Resetare externă - resetare externă la nivelul terminalului RES;
- Watch Dog - resetare de la cronometrul intern "watchdog" atunci când CPU-ul nu mai lucrează accidental sau programul se blochează;
- JTAG - resetați software-ul prin interfața de depanare JTAG.
Toate sursele de resetare sunt echivalente, ceea ce accentuează elementul logic "OR", situat în interiorul MC. Modurile de resetare sunt setate de către biții de configurare, precum și de către regiștrii accesibili de software din zona SFR. Poate fi ajustat: prag de „tragere“ tensiunea detectorului, durata temporizarea de așteptare Watch-Dog, momente pe / de pe G1 generatorului.
Nodul de resetare a hardware-ului Power-On este prezent în toate MC fără excepție. Dacă tensiunea de alimentare este stabilă în timp și este alimentată brusc, elementele externe de resetare nu sunt teoretic necesare. Deconectarea se face automat de la nodul Power-On după atingerea unui anumit prag.
La rata creștere de putere mare (aproximativ o perioadă maximă de 1. 5 ms) RES intrare reset conectat la circuitul Vcc trei moduri: în mod direct, printr-un rezistor extern 1___10 k sau lăsat liber, bazându-se pe un rezistor intern MC.
Prima opțiune elimină complet calea de interferență, dar exclude resetarea "push-button" și posibilitatea de reprogramare. A doua opțiune vă permite să conectați butonul de resetare, care este convenabil pentru prototipuri de laborator la domiciliu. A treia opțiune este permisă în absența interferenței și a prezenței unui rezistor de tracțiune R ^ în MK cu o rezistență de până la 100 kΩ.
În cazul în care tensiunea de alimentare crește pe o perioadă lungă de timp (pentru diferite MCU în moduri diferite), este recomandat să se instaleze externe RC-lanțuri (Figura 2.20, b.) Cu valori standard:
- A = 10 kOhm, C, = 0,1 uF cu o creștere a timpului de 5 ms. De exemplu, comutatorul Vcc de alimentare, care este situat între regulatorul de tensiune integrat +5 V și MK;
- A, = 10 kOhm, C, = 10 uF la un timp de creștere de 100 ms. Acest lucru este real, de exemplu, când dispozitivul este pornit în rețeaua de 220 V printr-un comutator comutat. În cazul în care capacitatea de condensatorul C1 este mai mare decât 1 microfarazi, apoi pentru accelerarea descărcării sale da VD1 tip diodă 1N4148 (KD522B) și pentru a proteja de intrare de resetare supratensiune Mai mult și rezistorul R2. Acești reasigurători prelungesc viața MK.
Nodul detectorului Brown-Out a apărut relativ recent în arhitectura MC. În special, în familia Atmel AT90S nu a fost chiar #, rezultând eșecuri imprevizibile și spontane șterge celule de memorie EEPROM. Fizica proceselor este simplă. La o tensiune scăzută critică, unitatea de programare a memoriei este încă operațională, iar procesorul nu mai este controlat. În consecință, informațiile arbitrare pot fi stocate în celulele de memorie. Există un defect de design, astfel încât familia AT90S a fost complet scos din producție și înlocuit cu familiile ATmega, ATtiny, în care detectorul Brown-out este furnizat în mod continuu.
Circuitul detectorului măsoară tensiunea de alimentare Vcc și generează un semnal de resetare al procesorului atunci când pragul programat este atins în regiunea 2. 4 V. Există o histereză de 0,1. 0.15 V, care împiedică repornirea cu mici fluctuații de tensiune. Ca rezultat, imunitatea la zgomot crește odată cu alimentarea bateriilor / acumulatorilor cu jumătate de descărcare, precum și cu interferențe electromagnetice puternice.
Detectorul a fost numit "Brown-Out", pe măsură ce înregistrează picături de tensiune pe termen scurt "maro" (maro). De ce "maro"? Deoarece această culoare este mai ușoară decât negrul, care în slang denotă o întrerupere completă "Black-Out".
Detectorul Brown-Out poate fi pornit și oprit prin setarea anumitor biți de configurare. Prin ele, pragurile de funcționare a unei tensiuni de 2,4 V, care, apropo, au o răspândire tehnologică decentă.
Există un „recif“, care este de multe ori „poticnească“ dezvoltatori, în cazul în care setul de prag Brown-out detector este egal cu sau mai mare decât puterea de operare. Un exemplu tipic este: Vcc = 3,6 V, și biții de configurare sunt setate la pragul de 4 V. În acest caz, MC după aproximativ o secundă după putere semnalul de resetare intern Brown-out, apoi re-porni programul va fi resetat din nou și, faptul că nu a făcut în mod corespunzător nimic.
Concluzia se sugerează - software-ul de depanare primar ar trebui să fie oprit atunci când unitatea de Brown-out, dar apoi asigurați-vă că pentru a porni, verificați și în mod constant funcționează la instalația.
Watch Dog-ul este un câine de pază, un câine de frontieră și un câine de pază. Dacă este activat cronometrul, acesta crește în mod constant valoarea contorului său. După o perioadă egală cu "timeout" -ul Watch-Dog, este efectuată resetarea forțată a MK. Cu toate acestea, utilizatorul poate introduce o comandă specială WDR (Watch-Dog Reset) în program pentru a reseta contorul și, astfel, a întârzia timpul de resetare. Dacă întârzierea se face la timp, atunci dispozitivul va funcționa în mod normal, iar dezvoltatorul va fi sigur că creierul său "nu este fixat". Timpul de oprire este stabilit de registrele din zona SFR și poate fi de la o milisecundă la câteva secunde.
În cazul în care programul este într-un fel „agățate“ în același loc sau nu a fost un eșec, următoarea echipă WDR la CPU nu este primit, „câine de dormit“, se trezește și resetează forțat MC. Programul începe din nou, ca după apăsarea butonului de resetare. Astfel, se împiedică oprirea de urgență a programului, ceea ce este util pentru funcționarea autonomă a dispozitivului în puncte nefuncționale.
Watch-Dog-ul este capturat de la un G-generator intern separat G1 cu o frecvență de 0,1. 1 MHz, care îi permite să-și îndeplinească funcția chiar dacă semnalul ceasului extern este complet pierdut. Frecvența generării depinde de temperatură și de tensiunea de alimentare. Opțiunea / interdicția generală a "cronometrului de supraveghere" este stabilită de biții de configurare.
Nodul Watch-Dog este util, dar nu este necesar pentru uz casnic. Pentru a nu deveni confuz, la început este mai bine să nu-l folosiți deloc. Din fericire, cu setările inițiale din fabrică ale biților de configurare, Watch-Dog este dezactivat în mod prestabilit și nu afectează funcționarea MC.
Nodul extern de resetare este activat dacă intrarea RES este menținută LOW timp de câteva microsecunde. Pentru impulsuri mai scurte, intrarea de resetare nu răspunde. Aceasta se face special pentru a crește imunitatea la zgomot. Sursele externe de resetare pot fi: un buton mecanic, un nivel logic de control, un cip de monitorizare a energiei și orice nod de automatizare care are o ieșire "contact uscat" sau "colector deschis".
Nodul de resetare prin JTAG este tipic numai pentru cel mai nou IV! K, în care este prezentă interfața cu același nume. Programatorului i se oferă posibilitatea de a depana o comandă cu numele condițional "MK_RESET", lăsând forțat IV! K în poziția inițială. Această tehnologie este utilă pentru dezvoltatorii cu experiență, deoarece necesită cunoștințe și abilități speciale.
Alegerea unei scheme de resetare specifică depinde de condițiile de funcționare. De exemplu, în cazul în care capacitatea totală a condensatorului filtru între conexiunile Vcc și GND este mai mare de 1000 uF, este probabil nevoie de un RC-lanț extern (Fig. 2.20, b). Dacă lângă terminalul RES al PCB trece circuitul de comutare de putere, apoi pentru a determina cauza eșecurilor este util pentru a conecta temporar linia de resetare MK-alimentat. În cazul în care dispozitivul este situat în apropiere de sursa de zgomot industrial puternic, atunci intrarea de resetare, se recomandă să adăugați un supervizor suplimentar de alimentare cu cip, care va duplica nod-Brown-Out. Logica raționamentului este simplă. Un supraveghetor ieftin "nu va strica terciul cu ulei", dar el poate salva într-o situație neprevăzută.
Sursa: Ryumik SM 1000 și un circuit de microcontroler. (Numărul 1)