Qual dessas abordagens para um cronômetro de vigilância?

8

Recentemente, aprendi sobre os cronômetros do watchdog e estou tentando implementar um para o meu circuito com o objetivo de redefinir o microcontrolador (AVR) se ele travar (por exemplo, não responde ao watchdog).

Com base em algumas pesquisas, parece-me que existem cerca de quatro opções:

  1. Conecte meu microcontrolador a um IC externo específico específico para o relógio do cronômetro .
  2. Conecte meu microcontrolador a um microcontrolador adicional (um muito básico e barato), este último codificado com o único objetivo dedicado de sincronizar o relógio.
  3. Coloque o meu próprio circuito de vigilância com 555 temporizadores e conecte-o ao meu microcontrolador.
  4. Use o recurso de timer interno de vigilância no meu microcontrolador.

.

Quais das abordagens acima você classificaria mais alto e por quê?

Gostaria de definir um tempo de vigilância de cerca de 6 segundos, com base em certos critérios para a maneira como faço o resto do meu design e código (o dispositivo será um registrador de temperatura periódico alimentado por bateria).

Uma pequena observação : minha preferência seria a Opção 1, por simplicidade, no entanto, com base no casal que encontrei, essas peças parecem caras (eu gostaria de uma solução com no máximo 1,25 USD) ou permitem apenas menos 2 segundos para o período de tempo do cão de guarda.

mordida
fonte
1
4) é barato e simples. Sua objeção é apenas que você não pode configurá-lo para 6 segundos? Isso é muito tempo para os padrões de microcontroladores
pjc50
1
@ pjc50: É definitivamente barato :) E acredito que até o tempo de 6 segundos seja possível. No entanto, artigos como este sugerem que o cão de guarda interno pode não ser tão robusto quanto um externo dedicado. E o motivo dos 6 segundos é que, no meu microcontrolador, tenho um gerenciador de inicialização Arduino que inclui um tempo de espera de 4 segundos na primeira inicialização. (Eu poderia aprender a re-programar isso, mas que ainda está na minha curva de aprendizagem)
boardbite
1
Você definitivamente deve consertar o gerenciador de inicialização. Os 4 segundos de espera são 4 segundos extras de consumo de bateria, dos quais você pode se livrar. Em vez de esperar, peça, por exemplo, uma amostra de um pino dedicado que é puxado para baixo quando em implantação.
Igor Skochinsky

Respostas:

14
  1. Mais caro, como você já descobriu. Mas deve oferecer o mais alto nível de confiabilidade: como o cão de guarda é completamente independente do microcontrolador, ele continuará funcionando e reinicialize o microcontrolador quando este estiver pegando fogo, por assim dizer. Veja 4)
  2. Brian é contra, mas existem microcontroladores baratos em um pacote pequeno, como o PIC10F200 no SOT-23, que você pode usar como um MMV retriggerável (multivibrador monoestável), o que o cão de guarda realmente é. Se você considerar um 555, um 10F200 é melhor: sem partes externas e tempo mais preciso (1% de precisão).
  3. um 555? A sério?
  4. O watchdog interno funcionará se o IC dedicado for muito caro. Se você é realmente paranóico, pode pensar em um cenário em que algum erro de hardware trava o microcontrolador e o cão de guarda com ele. Eu nunca soube que isso aconteceu, mas não sei o quanto você dorme.

Like pjc50diz que 6 segundos é muito tempo. Um microcontrolador típico executa dezenas de milhões de instruções nesse período e muitas coisas podem dar errado. Suponha que você esteja controlando alguma carga com o PWM, e um ciclo de trabalho baixo de 10% mantém a dissipação baixa. O microcontrolador passa a banana e a saída fica presa em um nível alto, ciclo de trabalho de 100%. A carga não gosta e morre. Você não quer esperar 6 segundos para que isso aconteça. Deve haver uma parte do seu código em que você passa muito mais frequência. Um loop principal pode ser tão curto quanto 10 ms, então você pode definir o tempo limite do watchdog em 100 ms, por exemplo. Se você chutar o cachorro uma vez a cada 10 ms, um tempo limite significa que você perdeu 10 vezes! Uma vez, tudo bem, mas dez vezes é um desastre, e você precisa agir. A carga será desligada após 100 ms em vez de 6 segundos,

stevenvh
fonte
2
@ Nick - Bom que você gosta, mas na verdade eu queria passar mais tempo a escrever o resto da resposta :-).
Stevenvh 12/12/12
1
O que há de errado com 555 temporizadores? :)
Justin ᚅᚔᚈᚄᚒᚔ
3
@Justin - Existem pessoas para quem o 555 é religião: você pode resolver todos os problemas do mundo e outros com o 555. Bem, o 555 é bastante versátil, as aplicações típicas são multivibradores monoestáveis ​​e astables, PWM, mas não é o melhor para tudo. Em esta pergunta / resposta OP passar um par de semanas para projetar um circuito 555 para uma tarefa que não é feita para. O mesmo trabalho pode ser programado em um microcontrolador em uma hora. Eu não estou questionando as habilidades do OP aqui nem sua abordagem, pois eu o entendo que ele teve que usar um 555 ... #
1313 stevenvh
2
Toda vez que alguém usa palavras como "absolutamente", sinto-me compelido a encontrar um contra-exemplo. Neste caso: Um microcontrolador é mais sensível aos raios cósmicos e radiação do que o 555, portanto, em algumas aplicações, o IMO em 555 seria preferível em termos de confiabilidade.
Apalopohapa 14/10
2
@apalopohapa - Estou corrigido. Na espaçonave, os 555s podem ser uma escolha melhor do que os microcontroladores. Claro, os computadores feitos de 555s são (guesstimate) 15 ordens de magnitude menos precisos , maior, mais fome de poder, e não tão fácil de programar em C ++ ou Ada ... :-)
stevenvh
5
  1. Watchdog timer é simples, funciona, barato. Escolha Ovbious.
  2. Um microcontrolador adicional é um exagero. Não é útil, pois você precisa programá-lo, é mais caro e tem mais área.
  3. Isso faz sentido. Mas eu faria 1 em seu lugar. Mais moderno.
  4. Eu usaria isso se funcionar. Eles só questionam se é possível configurá-lo para 6 segundos.
Brian Carlton
fonte
Obrigado pela comparação. A única coisa é que o número 1 não parece barato! Não encontrei nenhum IC com capacidade de controle de temporizador com preço de quantidade inferior a um dólar, como mencionei, enquanto que, como você provavelmente sabe, existem muitos microcontroladores (para a opção 2) inferiores a US $ 0,50.
boardbite
2

Se o seu circuito / dispositivo não estiver controlando o hardware de vida crítica, você provavelmente poderá usar o watchdog interno. Caso contrário (ou de fato, em qualquer caso), confira estes dois excelentes artigos de Jack Ganssle:

http://www.ganssle.com/watchdogs.htm

http://www.ganssle.com/articles/watchdogsredux.htm

A propósito, se você não pode definir o watchdog como um intervalo longo, pode tentar acordar com frequência suficiente para chutá-lo, mas apenas fazendo o necessário para tirar medidas / gravar registros de vez em quando.

Igor Skochinsky
fonte