Ce este Brown Out Resetare în microcontrolere Cum se previne oprirea falsă - Articole tehnice

Brown Out Reset este o funcție importantă pentru creșterea fiabilității unui microcontroler după pornire. Folosit în mod normal pentru rezolvarea problemelor cu sursa de alimentare, acest articol arată cum Brown Out Reset poate preveni o altă problemă.

Revizuirea Brown Out Reset

O „oprire” a unui microcontroler reprezintă o reducere parțială și temporară a tensiunii de alimentare sub nivelul necesar pentru o funcționare fiabilă. Multe microcontrolere au un circuit de protecție care detectează când tensiunea de alimentare scade sub acest nivel și pune dispozitivul într-o stare de resetare pentru a asigura pornirea corectă la revenirea puterii. Această acțiune se numește „Brown Out Reset” sau BOR. O caracteristică similară se numește Low Voltage Detect (LVD), care este mai complexă și adaugă detectarea nivelurilor multiple de tensiune și poate produce o întrerupere înainte de declanșarea resetării.

BOR este adesea activat de un pic într-un registru de control. De obicei, un bit de stare este setat atunci când BOR provoacă o resetare. Acest bit de stare supraviețuiește resetării (dacă puterea nu scade prea mult!) Și permite programului să detecteze problema și să efectueze recuperări suplimentare sau să înregistreze evenimentul.

Ce se întâmplă dacă BOR este dezactivat? Iată o descriere a tensiunii de alimentare cu scădere constantă. Poate că aceasta este o sursă de alimentare deteriorată sau o baterie care se descarcă.

microcontrolere

V1 este tensiunea normală de alimentare. V2 este punctul în care este posibil ca microcontrolerul să nu funcționeze în mod fiabil. Arăt V3 ca un punct în care operația se oprește complet. Între V2 și V3 este o „zonă de pericol” în care lucrurile pot merge prost și funcționarea este nesigură. Dispozitivul ar putea funcționa corect ani de zile, în timp ce sursa de alimentare intră și iese din zona de pericol și apoi, bam!, Există o defecțiune. Nivelul BOR este setat peste V2 și înlocuiește zona de pericol cu ​​o resetare a dispozitivului. Resetarea nu este bună, dar (de obicei) mai bună decât incertă.

Apoi, relatez o situație în care sursa de alimentare a funcționat normal, dar BOR a fost folosit pentru a rezolva o altă problemă.

Găsirea unei alte utilizări pentru resetarea Brown Out (The Hard Way)

Am proiectat un circuit care conține un microcontroler PIC și 18 regulatoare de tensiune într-un modul care controlează + 5V putere la 18 senzori de lumină. Douăsprezece module au controlat cei 204 de senzori dintr-o matrice. Modulele fac parte dintr-un sistem de optică adaptivă la un telescop astronomic mare de pe Mauna Kea din Hawaii. Iată interiorul unui modul.

Fotografii oferite de Telescopul Subaru

Microcontrolerul este aproape de centrul plăcii, iar cele 18 regulatoare de tensiune liniare sunt montate pe pereții incintei. Modulele și senzorii sunt montați pe plăci răcite cu apă pentru a îndepărta căldura de banca optică care se află deasupra gamei de senzori. Impulsurile de la senzorii de lumină intră în modul unde sunt convertite în semnale diferențiale, RS-485 și ieșite pe conectorul din mijlocul superior al imaginii. În plus, există semnale de control RS-485 care intră în modul. Toate semnalele RS-485 se conectează la circuite dintr-un șasiu la aproximativ 10 metri distanță. Un punct important este că toate circuitele dintr-un modul rulează pe aceeași sursă de + 5V.


Iată un detaliu al microcontrolerului și al driverelor și receptoarelor de linie RS-485, care sunt esențiale pentru problemă. Mufa neagră modulară este o interfață serială asincronă care adaugă încă două semnale RS-485 I/O.

Modulele au trecut prin teste extinse pe bancă. Fără probleme! Au trecut luni de teste de sistem în laborator. Perfect! Marele eveniment a fost primul test la telescop. Nu reușesc! Comunicarea a fost pierdută la aproximativ jumătate din module atunci când alimentarea a fost oprită și repornită. Am conectat debuggerul și am găsit microcontrolerul rulând și executând codul, dar au existat variabile corupte, iar interfața serială nu funcționa. Foarte ciudat.