In quale situazione è necessario disattivare la funzione di rilevamento della disattivazione su un microcontrollore?


33

Quando l'alimentazione di un microcontrollore scende al di sotto di una determinata soglia, si verificano condizioni di black-out e la memoria RAM potrebbe danneggiarsi. A condizione che ogni sequenza di spegnimento del circuito possa comportare una potenziale condizione di brown-out, abilito sempre il meccanismo di reset del rilevamento brown-out quando lavoro con i microcontrollori.

Mi chiedevo se ci sono situazioni in cui non è consigliabile abilitare la funzione di ripristino brown-out?


4
I rilevatori di black-out possono anche consumare corrente che dovrebbe essere presa in considerazione per le applicazioni a micropotenza.
HL-SDK,

Considerati i diversi svantaggi del rilevamento BO indicato nelle risposte, considera anche questo: puoi fornire qualche certezza personalizzata nel tuo caso particolare? In alcuni casi potresti cioè garantire una fornitura sufficiente o un blackout completo => salva le risorse per BOD
Mark

Risposte:


11

Come notato, l'abilitazione del circuito brown-out spesso aumenta il consumo di corrente. Inoltre, poiché i produttori in genere desiderano garantire che il circuito di blackout si interrompa su qualsiasi tensione che potrebbe essere abbastanza bassa da far funzionare altre parti del chip, molte parti saranno in grado di funzionare a una tensione inferiore con il brown-out disabilitato . Ad esempio, un controller potrebbe funzionare la maggior parte del tempo fino a 1,5 volt a temperatura ambiente ma, in determinate condizioni stressanti (come la temperatura elevata) potrebbe non funzionare correttamente a 1,99 volt. Per garantire che il dispositivo venga ripristinato in qualsiasi condizione in cui si potrebbe verificare un malfunzionamento, il circuito di spegnimento potrebbe essere progettato per scattare a 2,1 volt +/- 100mV.

Se un dispositivo con un tale controller fosse alimentato da due batterie alcaline AA, l'abilitazione del circuito di esaurimento potrebbe rendere inutilizzabile il dispositivo con una tensione della batteria di 1,1 volt per cella e probabilmente causerebbe l'interruzione del funzionamento al momento del raggiungimento della tensione 1,05 volt per cella. Disabilitare il circuito di brownout probabilmente estenderebbe il funzionamento fino ad almeno 0,9 volt per cella, e forse anche 0,75 volt per cella. Se nessun malfunzionamento plausibile che potrebbe verificarsi a bassa tensione potrebbe causare danni oltre all'aumento del consumo delle batterie indesiderate, la disabilitazione del circuito di esaurimento sarebbe un modo semplice per migliorare la durata della batteria, anche se non riduce l'assorbimento di corrente delle batterie utilizzabili.


22

Tutto ha tolleranze, quindi il livello di reset del brown out deve essere impostato leggermente al di sopra del livello minimo a cui il chip è garantito per funzionare correttamente.

Quindi il brown out potrebbe entrare bene prima che il chip non funzionasse male. Quindi devi chiederti, per questa regione, dove il chip potrebbe funzionare correttamente ma non puoi esserne sicuro, sceglieresti

  • per far funzionare il chip e sperare il meglio (potrebbe funzionare!), oppure
  • per consentire al chip di essere ripristinato (e mantenuto in reset) dal circuito brown-out.

Se il costo del malfunzionamento non è molto superiore al costo del mancato funzionamento, è preferibile la prima opzione. Pensa alla funzione ping su una "scatola nera" dell'aeroplano. Certamente, lascialo andare avanti se c'è anche la minima possibilità che dia un ping!

Dall'altro lato, considera l'attivazione di una bomba o di un airbag per auto. Se esiste la minima possibilità che si spenga accidentalmente a causa di una bassa tensione di alimentazione, è meglio spegnersi. Ciò ovviamente presuppone che la chiusura dei mezzi non si accenda!

Ci sono situazioni in cui non è disponibile una buona scelta. Considera il famigerato primo lancio di un razzo Ariane V. I computer di controllo della direzione non funzionano correttamente (in questo caso non a causa di bassa potenza). Cosa dovrebbe fare? Andare avanti molto probabilmente significa sterzare nella direzione sbagliata, ma smettere significa non sterzare affatto, il che ha lo stesso risultato. Né è una bella prospettiva per le persone nel bunker di controllo in cui il razzo potrebbe vagare :(


Come commenta Ross, un backup è ovviamente una buona idea per un sistema mission-ciritical. Ma questo sposta il problema di progettazione a quel backup. E se fallisse? (In pratica ce ne sono spesso 3, sempre attivi, con un voto di maggioranza.) Nel caso di Ariane 5 sia i computer primari che quelli di backup hanno fallito (anche se non per colpa loro, ma questa è un'altra storia.) Cosa è successo dopo era che un altro sistema (forse era persino un essere umano nella sala di controllo) rilevava che tutto era fuori controllo e innescava l'autodistruzione. Meglio far esplodere il razzo in aria e cadere in piccoli pezzi nel mare che lo fanno continuare il suo volo in un pezzo solo in una direzione casuale.


Per la situazione del razzo, la soluzione migliore è quella di avere un computer di backup che subentrerà nel caso in cui il primo fallisca e abbia il primo spegnimento, giusto ??
Ross Aiken,

aggiunto del testo
Wouter van Ooijen,

In realtà la storia di Ariane 5 è molto più complicata e la gestione degli errori è stata una delle ragioni del fallimento. esamultimedia.esa.int/docs/esa-x-1819eng.pdf
starblue

1
No, la gestione degli errori non era la causa. Era l'uso di un sistema collaudato (aveva volato su Ariane 4) con dati al di fuori delle sue specifiche originali senza testarli con i nuovi dati . (Tali test erano originariamente previsti, ma successivamente eliminati in un programma di riduzione dei costi;)
Wouter van Ooijen,

10

Se non ti interessa il ripristino (ad esempio, l'utente può fidarsi di spegnerlo e riaccenderlo se le cose non funzionano perfettamente e non sono possibili danni) e il consumo di energia è importante, spegnerlo può risparmiare microampere. (o se ti interessa, puoi usare un circuito esterno migliore di quello così incorporato).

Se il BOR interno è inadeguato per l'attività (le tolleranze potrebbero non essere appropriate, ad esempio), potrebbe anche spegnerlo e utilizzare qualcosa di esterno.

Un requisito interessante per alcuni scopi è che è necessario conoscere la massima tensione al di sotto della quale si garantisce che cose come le EEPROM non funzionino, in modo che il BOR possa inibire il funzionamento e garantire la corruzione. Potrebbe essere un po 'sottile per alcuni circuiti BOR integrati.


10

È possibile scegliere di disabilitare il BOR se esiste un bug in cui il BOR non funziona correttamente.

Modulo: regolatore di tensione

Il dispositivo potrebbe non uscire dallo stato BOR se si verifica un evento BOR.

Vedi il numero 15 in PIC32MX534 / 564/664/764 Errati di silicio della famiglia e Chiarimento della scheda tecnica .


8
Ahia. A quale parte appartiene questa adorata errata?
Spehro Pefhany,

1
In che modo qualcosa del genere arriva in produzione?
Matt Young,

1
È divertente. E per esilarante intendo quasi criminale.
Ignacio Vazquez-Abrams,

1
Il dispositivo particolare era il PIC32MX664F e solo alcune revisioni al silicio. La maggior parte delle volte usciva normalmente dal BOR solo una volta ogni 20 o giù di lì.
mjcopple,

@Matt Young: poiché la maggior parte degli usi di questi microcontrollori PIC, BOR esiste solo per spegnerlo prima che il silicone inizi a eseguire istruzioni casuali quando si stacca la spina. Se hai una routine di reflash nella ROM, è possibile che tenti di lampeggiare con immondizia se BOR non esistesse.
Giosuè,


2

Ci sono situazioni in cui potresti preferire utilizzare un circuito brown-out esterno personalizzato.

Ci sono microcontrollori in cui la risoluzione dei livelli di marrone-ot è piuttosto piccola.

Supponiamo che tu lavori con un µc in cui i due livelli di brown-out più alti sono 4,3 V e 2,7 V (comune in caso di AVR). Hai stabilito che alle frequenze che usi, 2,7 V non sono sicuri. Tuttavia, 4,3 V sarebbe troppo alto, in quanto limiterebbe la durata di funzionamento dopo un'interruzione di corrente.

Spesso devo lavorare con dispositivi che spesso possono perdere la connessione all'alimentazione esterna e quindi sopravvivere con condensatori o batterie. Avere un livello di brown-out di 4,3 V porterebbe lo spegnimento del dispositivo troppo presto. 2.7 porterebbe alla corruzione dei dati. Tuttavia, se ad esempio 3,5 V sarebbe un livello di brown-out sicuro, potresti voler creare un circuito di brown-out esterno che funzioni tirando la linea di reset del tuo microcontrollore. In questo caso il circuito di brown-out interno è inutile e può essere disabilitato.

Nel caso in cui abbiate più processori nello stesso sistema, ha senso utilizzare un singolo controller di reset esterno per tutti. In questo caso, la disabilitazione dei singoli rivelatori brown-out nei processori non è utile solo per il vantaggio marginale di risparmiare energia, ma è necessaria per evitare la situazione in cui alcuni processori sono ripristinati e altri sono ancora in esecuzione.


1
So che non stai selezionando AVR, ma mi sento in dovere di menzionare che 1) diverse linee AVR hanno soglie BOR diverse e 2) AVR rendono il segnale di ripristino visibile esternamente su nRESET, quindi se stai molto attento puoi usarne una come controller di ripristino.
Ignacio Vazquez-Abrams,

1

Abbiamo dovuto spegnere e riaccendere il VBOR durante una parte dell'avvio a causa di un bug nel silicio sui microcontrollori che stavamo usando. Il caricamento dei tappi sulla pompa di tensione scarica il dispositivo momentaneamente appena al di sopra dei minimi e il VBOR continua a inciampare. Quindi abbiamo spento VBOR durante l'accensione e acceso dopo circa 10 ms.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.