Em que situação devo manter o recurso Detecção de perda de potência desligado em um microcontrolador?

33

Quando a fonte de alimentação de um microcontrolador fica abaixo de um certo limite, ocorrem condições de escurecimento e a memória RAM pode ser corrompida. Desde que todas as sequências de desligamento do circuito possam significar uma possível condição de queda de energia, eu sempre ativei o mecanismo Redefinir a detecção de queda de energia ao trabalhar com microcontroladores.

Gostaria de saber se há alguma situação em que não é recomendável ativar o recurso Redefinição de Brown-out?

m.Alin
fonte
4
Os detectores de queda de energia também podem consumir corrente que deve ser levada em consideração para aplicações de micropoder.
HL-SDK
Dadas as diversas desvantagens da detecção de BO declarada nas respostas, considere também: Você pode obter alguma certeza personalizada em seu caso específico? Em certos casos, ou seja, poderia garantir um fornecimento suficiente ou um apagão completo => Salvar o ressources para BOD
Mark

Respostas:

11

Como observado, a ativação do circuito de desativação geralmente aumenta o consumo de corrente. Além disso, porque os fabricantes geralmente querem garantir que o circuito brown-out vai tropeçar em qualquer tensão que pode ser baixa o suficiente para fazer com que outras partes do chip para funcionar, muitas partes será capaz de operar a uma tensão mais baixa com marrom-out desativado . Por exemplo, um controlador pode trabalhar na maioria das vezes até 1,5 volts em temperatura ambiente, mas, sob certas condições estressantes (como temperatura elevada), pode funcionar mal em 1,99 volts. Para garantir que o dispositivo seja redefinido sob qualquer condição em que possa ocorrer um mau funcionamento, o circuito de interrupção pode ser projetado para disparar a 2,1 volts +/- 100mV.

Se um dispositivo com um controlador desse tipo fosse alimentado por duas pilhas alcalinas AA, a ativação do circuito de indisponibilidade de energia pode causar a inutilização do dispositivo com uma voltagem de 1,1 volts por célula e provavelmente interromperá a operação no momento em que a voltagem for atingida. 1,05 volts por célula. Desabilitar o circuito de queda de energia provavelmente estenderia a operação para pelo menos 0,9 volts por célula e possivelmente até 0,75 volts por célula. Se nenhum mau funcionamento plausível que possa ocorrer em baixa voltagem possa causar algum dano além do aumento do consumo de baterias inúteis, desativar o circuito de interrupção seria uma maneira simples de melhorar a vida útil da bateria, mesmo que não reduzisse o consumo de corrente das baterias utilizáveis.

supercat
fonte
22

Tudo tem tolerâncias, portanto, o nível de redefinição de escurecimento deve ser definido um pouco acima do nível mínimo no qual o chip é garantido para funcionar corretamente.

Portanto, o desmaio pode ocorrer bem antes que o chip funcione mal. Então você deve se perguntar, para esta região, onde o chip pode funcionar bem, mas você não pode ter certeza, escolheria

  • deixar o chip funcionar e esperar o melhor (pode funcionar!) ou
  • para permitir que o chip seja redefinido (e mantido em redefinição) pelo circuito de escurecimento.

Se o custo do mau funcionamento não for muito maior do que o custo de não funcionar, a primeira opção é a preferida. Pense no recurso de ping na 'caixa preta' de um avião. Por todos os meios, deixe-o continuar se houver a menor chance de dar um ping!

Por outro lado, considere o acionamento de uma bomba ou de um airbag do carro. Se houver a menor chance de ocorrer um acidente por causa de uma baixa tensão de energia, é melhor desligar-se. Isso, é claro, pressupõe que o fechamento de meios não acenda!

Existem situações em que nenhuma boa escolha está disponível. Considere o infame primeiro lançamento do foguete Ariane V. O (s) computador (es) de controle de direção estão com defeito (neste caso, não devido à baixa energia). O que deveria fazer? Seguir em frente provavelmente significa dirigir na direção errada, mas parar significa não dirigir, o que tem o mesmo resultado. Também não é uma boa perspectiva para as pessoas no bunker de controle nas quais o foguete pode entrar :(


Como comenta Ross, é claro que um backup é uma boa idéia para um sistema de missão-circular. Mas isso muda o problema de design para esse backup. E se isso falhar? (Na prática, geralmente existem 3, ativos o tempo todo, com voto majoritário.) No caso do Ariane 5, os computadores primário e de backup falharam (embora não por culpa própria, mas essa é outra história.) foi que outro sistema (talvez até um humano na sala de controle) detectou que tudo estava fora de controle e desencadeou a autodestruição. É melhor que o foguete exploda no ar e caia em pedaços pequenos no mar, para que continue seu vôo em uma peça em alguma direção aleatória.

Wouter van Ooijen
fonte
Para a situação dos foguetes, a melhor solução é ter um computador de backup, que substituirá o caso de falha do primeiro e desligamento do primeiro, certo?
Ross Aiken
algum texto adicionado
Wouter van Ooijen
Na verdade, a história do Ariane 5 é muito mais complicada e o tratamento de erros foi parte do motivo da falha. esamultimedia.esa.int/docs/esa-x-1819eng.pdf
starblue
1
Não, o tratamento de erros não foi a causa. Foi o uso de um sistema comprovado (que havia voado no Ariane 4) com dados fora de suas especificações originais, sem testá-lo com os novos dados . (Tais testes foram originalmente planeado, mas mais tarde desfeito num programa de redução de custos;)
Wouter van Ooijen
10

Se você não se importa com a redefinição (por exemplo, pode-se confiar no usuário para desligá-lo e ligá-lo novamente se as coisas não funcionarem perfeitamente e nenhum dano for possível) e o consumo de energia for importante, desligá-lo pode economizar alguns microamperes. (ou se você se importa, pode usar um circuito externo melhor que o mais ou menos embutido).

Se o BOR interno for inadequado para a tarefa (as tolerâncias podem não ser apropriadas, por exemplo), é possível desativá-lo e usar algo externo.

Um requisito interessante para alguns propósitos é que você precise saber a voltagem máxima abaixo da qual é garantido que coisas como EEPROMs não funcionem, para que o BOR possa inibir a operação e garantir nenhuma corrupção. Isso pode ser um pouco sutil para alguns circuitos BOR embutidos.

Spehro Pefhany
fonte
10

Você pode optar por desativar o BOR se houver um erro em que o BOR não funcione corretamente.

Módulo: Regulador de tensão

O dispositivo pode não sair do estado BOR se ocorrer um evento BOR.

Consulte a edição 15 no PIC32MX534 / 564/664/764 Erratas de silício da família e esclarecimentos sobre as fichas técnicas .

mjcopple
fonte
8
Ai. A que parte pertence esta adorável errata?
Spehro Pefhany
1
Como algo assim entra em produção?
Matt Young
1
Isso é hilário. E por hilário, quero dizer quase criminoso.
Ignacio Vazquez-Abrams
1
O dispositivo em particular foi o PIC32MX664F e apenas algumas revisões de silício. Na maioria das vezes, ele saía da BOR normalmente apenas uma vez a cada 20 vezes ou mais.
Mjcopple
@ Matt Young: Como a maioria dos usos desses microcontroladores PIC, o BOR existe apenas para desligá-lo antes que o silicone comece a executar instruções aleatórias quando você puxa o plugue. Se você tiver uma rotina de reflash na ROM, é possível que ele tente se auto-piscar com lixo se o BOR não existir.
Joshua
2

Há situações em que você pode usar um circuito brown-out externo personalizado.

Existem microcontroladores em que a resolução dos níveis de marrom é muito pequena.

Vamos supor que você trabalhe com um µc em que os dois níveis mais altos de escurecimento são 4,3 V e 2,7 V (comum no caso de AVR). Você determinou que nas frequências que você usa, 2,7 V é inseguro. No entanto, 4,3 V seria muito alto, pois limitaria o tempo de execução após uma falha de energia.

Muitas vezes tenho que trabalhar com dispositivos que frequentemente perdem a conexão com a fonte de alimentação externa e depois tenho que sobreviver com capacitores ou baterias. Ter um nível de escurecimento de 4,3 V levaria o dispositivo a desligar muito cedo. 2.7 levaria à corrupção de dados. No entanto, se, por exemplo, 3,5 V for um nível de escurecimento seguro, convém criar um circuito de escurecimento externo que funcione puxando a linha de redefinição do seu microcontrolador. Nesse caso, o circuito interno de escurecimento é inútil e pode ser desativado.

Caso você tenha mais processadores no mesmo sistema, faz sentido usar um único controlador de redefinição externa para todos eles. Nesse caso, desabilitar os detectores de indisponibilidade individuais nos processadores não é apenas útil para a vantagem marginal de economizar energia, mas também é necessário para evitar a situação em que alguns processadores estão em redefinição e outros ainda estão em execução.

vsz
fonte
1
Sei que você não está usando o AVR, mas me sinto obrigado a mencionar que 1) linhas diferentes do AVR têm limites de BOR diferentes e 2) os AVRs tornam o sinal de redefinição visível externamente no nRESET; portanto, se você for muito cuidadoso, poderá usar um como um controlador de redefinição.
Ignacio Vazquez-Abrams
1

Tivemos que ativar e desativar o VBOR durante uma parte da inicialização devido a um erro no silício nos microcontroladores que estávamos usando. Carregar as tampas da bomba de voltagem drenaria o dispositivo momentaneamente um pouco acima do mínimo e o VBOR continuava disparando. Então, desligamos o VBOR durante a inicialização e o ligamos cerca de 10 ms depois.

Joshua
fonte