Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

O que é Brown Out Reset em Microcontroladores? Como evitar falsos desligamentos

Brown Out Reset é uma função importante para aumentar a confiabilidade de um microcontrolador após a inicialização. Normalmente usado para resolver problemas com a fonte de alimentação, este artigo mostra como Brown Out Reset pode evitar outro problema.

Revisão do Brown Out Reset


Um “brown out” de um microcontrolador é uma redução parcial e temporária na tensão da fonte de alimentação abaixo do nível necessário para uma operação confiável. Muitos microcontroladores têm um circuito de proteção que detecta quando a tensão de alimentação cai abaixo desse nível e coloca o dispositivo em um estado de reinicialização para garantir a inicialização adequada quando a energia retornar. Esta ação é chamada de “Brown Out Reset” ou BOR. Um recurso semelhante é chamado Detecção de baixa tensão (LVD), que é mais complexo e adiciona detecção de vários níveis de tensão e pode produzir uma interrupção antes que um reset seja acionado.

BOR é freqüentemente habilitado por um bit em um registro de controle. Normalmente, um bit de status é definido quando o BOR causa um reset. Este bit de status sobrevive à reinicialização (se a energia não cair muito!) E permite que o programa detecte o problema e execute uma recuperação adicional ou registre o evento.

O que acontece se o BOR for desativado? Aqui está uma representação de uma queda constante da tensão da fonte de alimentação. Talvez seja uma fonte de alimentação deteriorada ou uma bateria descarregando.





V1 é a tensão de alimentação normal. V2 é o ponto em que o microcontrolador pode não operar de forma confiável. Eu mostro V3 como um ponto onde a operação é totalmente interrompida. Entre V2 e V3 existe uma “zona de perigo” onde as coisas podem dar errado e a operação não é confiável. O dispositivo pode funcionar corretamente por anos enquanto a fonte de alimentação entra e sai da zona de perigo e então, bam !, há uma falha. O nível BOR é definido acima de V2 e substitui a zona de perigo com uma reinicialização do dispositivo. Reinicializar não é bom, mas (geralmente) melhor do que incerto.

A seguir, relato uma situação em que a fonte de alimentação funcionou normalmente, mas o BOR foi usado para resolver um problema diferente.


Encontrando outro uso para redefinição de brown out (a maneira mais difícil)


Projetei um circuito contendo um microcontrolador PIC e 18 reguladores de tensão em um módulo que controla a alimentação de + 5V para 18 sensores de luz. Doze módulos controlavam os 204 sensores em uma matriz. Os módulos são parte de um sistema Adaptive Optics em um grande telescópio astronômico em Mauna Kea, no Havaí. Aqui está o interior de um módulo.



Imagens cortesia do telescópio Subaru



O microcontrolador está próximo ao centro da placa e os 18 reguladores de tensão linear são montados nas paredes do gabinete. Os módulos e sensores são montados em placas resfriadas a água para afastar o calor da bancada óptica que está sobre a matriz de sensores. Os pulsos dos sensores de luz vão para o módulo onde são convertidos em sinais RS-485 diferenciais e emitidos no conector na parte superior central da imagem. Além disso, existem sinais de controle RS-485 que vão para o módulo. Todos os sinais RS-485 se conectam a circuitos em um chassi a cerca de 10 metros de distância. Um ponto importante é que todos os circuitos de um módulo funcionam com a mesma fonte de + 5V.


Aqui está um close do microcontrolador e dos drivers e receptores de linha RS-485 que são centrais para o problema. O conector preto modular é uma interface serial assíncrona que adiciona mais dois sinais de E / S RS-485.





Os módulos passaram por testes extensivos na bancada. Sem problemas! Eles passaram por meses de testes de sistema em laboratório. Perfeito! O grande evento foi o primeiro teste do telescópio. Falhou! A comunicação foi perdida para cerca de metade dos módulos quando a alimentação foi desligada e ligada novamente. Eu conectei o depurador e encontrei o microcontrolador rodando e executando código, mas havia variáveis ​​corrompidas e a interface serial não estava funcionando. Muito estranho.

Em primeiro lugar, quero dizer que depurar no meio da noite a uma altitude de 13.589 pés (4.138 metros) com uma temperatura do ar de 40 ° F (4 ° C) não é divertido. No entanto, vamos seguir em frente. Aqui está um diagrama que mostra o problema.






No lado direito está o módulo com receptores de linha RS-485 conectados ao microcontrolador e a alimentação de + 5V. No lado esquerdo estão os drivers de linha na outra extremidade do cabo, que estão sempre ligados. Na verdade, existem motoristas e receptores indo em ambas as direções, mas estou simplificando. Quando a alimentação do módulo (VCC) estava desligada, os drivers e receptores de linha remota ainda estavam ligados (VDD). Os sinais agiam como fontes de alimentação e encontravam seu caminho através dos dispositivos de interface do módulo e diretamente para a alimentação de + 5V ou através do circuito de proteção ESD nos pinos do microcontrolador. Havia energia suficiente para evitar que o microcontrolador desligasse completamente e o dispositivo estava na zona de perigo.

Quando a alimentação do módulo foi ligada, o microcontrolador não iniciou com uma sequência normal de reinicialização de inicialização. Ele começou a funcionar, mas com problemas. Por que isso não apareceu durante os testes anteriores? Lembra das placas resfriadas a água? O refrigerante do telescópio estava um pouco mais frio do que o refrigerante do laboratório. Minha teoria é que a temperatura mais baixa foi apenas o suficiente para expor o problema em alguns dos módulos.

A correção foi fácil. Eu adicionei uma instrução no código para habilitar o BOR e o problema foi resolvido. A propósito, demorei muito mais para escrever o relatório e convencer o gerente de projeto de que estava tudo bem do que para consertar o problema.


Falso desligamento


Aqui está um diagrama que mostra o problema geral.





Quando a fonte de alimentação é desligada, a tensão não diminui. Em vez disso, outras fontes de energia mantêm a tensão de alimentação na zona de perigo. Uma descrição dessa tensão é “False Power”. Não há BOR para detectar esta condição e causar uma reinicialização. O dispositivo pode não passar pela sequência normal de inicialização quando a alimentação for ligada novamente porque o circuito de reinicialização da inicialização pode não ser acionado. A operação subsequente é incerta porque a fonte de alimentação ficou abaixo do mínimo e não há reinicialização.

No meu caso, o microcontrolador era um Microchip PIC16F877-20I / L. Esta parte é a versão industrial com uma faixa de temperatura operacional de -40 ° C a + 85 ° C. Com um clock de 16 MHz, a faixa da fonte de alimentação é de + 4,0 V a + 5,5 V. A tensão operacional dentro do módulo (V1) era de + 5V. A falsa tensão de energia no microcontrolador (V2) era de cerca de + 1,5 V quando operando no telescópio . Não medi no laboratório porque não tinha problema e não sabia como verificar. Além disso, nunca tive a chance de verificar com as condições de laboratório porque o sistema nunca saiu do telescópio.

Existem duas outras especificações relevantes. A “Tensão de retenção de dados RAM” (\ [V_ {DR} \]) é + 1,5 V, “ típica ”. A “Tensão de partida do VDD” (\ [V_ {POR} \]) para garantir que uma reinicialização interna seja 0V, “ típica ”. Juntar tudo isso me diz que o dispositivo estava bem dentro da zona de perigo. Nenhuma reinicialização de inicialização poderia ser esperada porque a tensão estava bem acima de \ [V_ {POR} \]. Além disso, não havia expectativa de que o False Power manteria o dispositivo ativo, pois o False Power estava na tensão de retenção da RAM (\ [V_ {DR} \]). Quem sabe o que o resto do dispositivo estava fazendo?

Por que ligar o BOR corrigiu o problema? A especificação do acionador Brown Out Reset (\ [V_ {BOR} \]) é uma faixa de + 3,7 V a + 4,35 V com típico de + 4,0 V. O nível de False Power está bem abaixo da tensão de disparo para BOR. Problema resolvido. No entanto, ainda existe o mistério de por que os microcontroladores funcionaram no laboratório e operaram normalmente com muitos ciclos de energia.


Conclusão


Encontrei uma descrição desta situação no final de uma nota de aplicação do Microchip (AN607) que a chama de “Falso Desligamento”. Eu não encontrei documentado em nenhum outro lugar.

O falso poder pode vir de fontes como:

Parece que uma fonte de alimentação falsa alta o suficiente aplicada diretamente a um pino GPIO e entrar no dispositivo através do circuito de proteção ESD pode causar problemas, mesmo quando o BOR está ativado . Além disso, para projetos de energia muito baixa, há razão para não usar o BOR, pois ele consome uma quantidade significativa de energia em comparação com os modos de hibernação de alguns dispositivos. Minha conclusão é que o BOR e seu sucessor, LVD, estão ficando mais complicados e o False Power oferece aos designers mais uma coisa a se considerar nesta parte complicada de seus designs.

Tecnologia industrial

  1. O que é uma chave de segurança de rede? Como encontrar?
  2. O que é chamada WiFi? Como funciona?
  3. O que é 6G e quão rápido será?
  4. Como a energia sem fio está transformando a manufatura
  5. Teste de descarga parcial:o que é e como funciona
  6. O que é a cavitação da bomba e como evitá-la?
  7. O que é o corte a plasma e como funciona o corte a plasma?
  8. O que é brasagem de cobre e como fazê-lo?
  9. O que é porosidade de soldagem e como evitá-la?
  10. O que é ferrugem e como evitar ferrugem? Um guia completo