¿Cuál de estos enfoques para un temporizador de vigilancia?

Hace poco me enteré de los temporizadores de vigilancia y estoy tratando de implementar uno para mi circuito con el fin de restablecer mi microcontrolador (AVR) si se bloquea (es decir, no responde a la vigilancia).

Según algunas investigaciones, me parece que hay alrededor de cuatro opciones:

  1. Conectar mi microcontrolador con un IC específico de temporizador de vigilancia dedicado externo .
  2. Conectar mi microcontrolador con un microcontrolador adicional (uno muy básico y económico), este último codificado con el único propósito de la sincronización del perro guardián.
  3. Diseñe mi propio circuito de vigilancia basado en 555 temporizadores y conéctelo a mi microcontrolador.
  4. Use la capacidad del temporizador de vigilancia interno en mi microcontrolador.

.

¿Cuál de los enfoques anteriores clasificaría más alto y por qué?

Me gustaría establecer un tiempo de vigilancia de alrededor de 6 segundos, según ciertos criterios de la forma en que estoy haciendo el resto de mi diseño y código (el dispositivo será un registrador de temperatura periódico alimentado por batería).

Una pequeña nota : mi preferencia sería la Opción 1, por simplicidad, sin embargo, según la pareja que he encontrado, estas piezas parecen ser caras (me gustaría una solución de menos de 1,25 USD como máximo), o solo permiten menos de 2 segundos para el período de temporización del perro guardián.

4) es barato y sencillo. ¿Su objeción es solo que no puede configurarlo en 6 segundos? Eso es bastante tiempo para los estándares de los microcontroladores.
@pjc50: Definitivamente es barato :) Y creo que incluso el tiempo de 6 segundos es posible. Sin embargo, artículos como este sugieren que el organismo de control interno puede no ser tan sólido como uno externo dedicado. Y el motivo del tiempo de 6 segundos es que, en mi microcontrolador, tengo un cargador de arranque Arduino que incluye un tiempo de espera de 4 segundos en el primer inicio. (Podría aprender a reprogramar esto, pero eso todavía está en mi curva de aprendizaje)
Definitivamente deberías arreglar el gestor de arranque. Los 4 segundos de espera son 4 segundos extra de consumo de batería de los que te puedes deshacer. En lugar de esperar, haga que pruebe, por ejemplo, un pin dedicado que se baja durante el despliegue.

Respuestas (3)

  1. Más caro, como ya te habrás dado cuenta. Pero debería brindarle el más alto nivel de confiabilidad: debido a que el perro guardián es completamente independiente del microcontrolador, seguirá funcionando y reiniciará el microcontrolador cuando este último esté en llamas, por así decirlo. Ver 4)
  2. Brian está en contra, pero hay microcontroladores baratos en un paquete pequeño, como el PIC10F200 en SOT-23, que puede usar como un MMV reactivable (multivibrador monoestable), que en realidad es el perro guardián. Si consideraría un 555, un 10F200 es mejor: sin partes externas y una sincronización más precisa (1% de precisión).
  3. un 555? ¿En serio?
  4. El perro guardián interno funcionará si el IC dedicado es demasiado caro. Si está realmente paranoico, puede pensar en un escenario en el que algún error de hardware bloquee el microcontrolador y el perro guardián con él. Nunca supe que esto sucediera, pero no sé qué tan bien duermes.

Me gusta pjc50dice que 6 segundos es mucho tiempo. Un microcontrolador típico ejecutará decenas de millones de instrucciones en ese tiempo, y luego muchas cosas pueden salir mal. Suponga que está controlando alguna carga con PWM, y un ciclo de trabajo bajo del 10 % mantiene baja la disipación. El microcontrolador se vuelve loco y la salida se atasca en un nivel alto, ciclo de trabajo del 100 %. A la carga no le gusta y muere. No querrás esperar 6 segundos para que eso suceda. Debería haber alguna parte de su código donde pase con mucha más frecuencia. Un ciclo principal puede ser tan corto como 10 ms, luego puede configurar el tiempo de espera del perro guardián en 100 ms, por ejemplo. Si pateas al perro una vez cada 10 ms, ¡entonces un tiempo de espera significa que lo fallaste 10 veces! Una vez, está bien, pero diez veces es un desastre y hay que actuar. La carga se apagará después de 100 ms en lugar de 6 segundos,

@Nick: es bueno que te guste, pero en realidad pasé más tiempo escribiendo el resto de la respuesta :-).
¿Qué pasa con los temporizadores 555? :)
@Justin: hay personas para las que un 555 es religión: puede resolver todos los problemas del mundo y más con un 555. Bueno, un 555 es bastante versátil, las aplicaciones típicas son multivibradores monoestables y astables, PWM, pero no es lo mejor para todo. En esta pregunta / respuesta OP, dedique un par de semanas a diseñar un circuito 555 para una tarea para la que no está hecho. El mismo trabajo podría programarse en un microcontrolador en una hora. No estoy cuestionando las habilidades de OP aquí ni su enfoque, según tengo entendido, tuvo que usar un 555 ...
@Justin (continuación) ... pero retroceder unos pasos le dará otras soluciones que pueden ser mejores. Aquí, un microcontrolador PIC10F200 es una solución de 1 componente, que puede programar para cualquier protocolo WDT avanzado que desee. Una de las pocas ventajas que tiene el 555 sobre un microcontrolador es que puede funcionar con voltajes más altos, como 12 V, pero aquí hay 5 V disponibles de todos modos, así que eso no cuenta. Por lo demás: no hay absolutamente ninguna aplicación 555 que un microcontrolador no pueda hacer mejor , con menos piezas, más precisa y con mayor repetibilidad. 555 más barato? Sí, a menos que...
@Justin (continuación) ... necesita un tiempo preciso del 1%. ¿Alguna vez compró un capacitor X7R al 1%? ¡Eso por sí solo es más caro que el microcontrolador que funciona con un oscilador interno calibrado al 1 %!
Cada vez que alguien usa palabras como "absolutamente", me siento obligado a encontrar un contraejemplo. En este caso: un microcontrolador es más sensible a los rayos cósmicos y la radiación que un 555, por lo que, en mi opinión, en algunas aplicaciones sería preferible un 555 en términos de confiabilidad.
@apalopohapa - Estoy corregido. En naves espaciales, los 555 pueden ser una mejor opción que los microcontroladores. Por supuesto, las computadoras hechas de 555 son (estimación) 15 órdenes de magnitud menos precisas , más grandes, consumen más energía y no son tan fáciles de programar en C++ o Ada... :-)
Los 555 son definitivamente mi arma favorita para construir naves espaciales ;). En un caso más realista, mi punto general es mtbf. por ejemplo, para un mecanismo de seguridad, prefiero buscar el diseño más simple con un mtbf general más bajo, que generalmente excluye la complejidad de un uC. De hecho, a veces esas medidas de seguridad son en caso de que falle un uC (a pesar de un wdt).
Me imagino que los 555 también son más populares entre los ingenieros de circuitos de control de reactores de fisión y submarinos. :) Gracias por la respuesta, Steven. Después de una breve incursión en la electrónica cuando era niño (gracias Tandy), ahora estoy empezando a aprender más allá de "construir este circuito prediseñado", por lo que siempre es bienvenida la perspectiva de los pros y los contras de varios enfoques.
  1. El temporizador de vigilancia es simple, funciona y es económico. Elección obvia.
  2. Un microcontrolador adicional es excesivo. No sirve de nada ya que hay que programarlo, es más caro, más superficie.
  3. Esto tiene sentido. Pero yo haría 1 en su lugar. Más moderno.
  4. Yo usaría esto si funciona. La única pregunta es si se puede configurar en 6 segundos.
Gracias por la comparación. Sin embargo, ¡lo único es que el número 1 no parece ser barato! No he encontrado ningún IC con capacidad de temporizador de vigilancia con un precio por cantidad inferior a un dólar como mencioné, mientras que, como probablemente sepa, hay muchos microcontroladores (para la opción n. ° 2) que cuestan menos de USD 0.50.

Si su circuito/dispositivo no está controlando el hardware crítico para la vida, probablemente pueda salirse con la suya usando el perro guardián interno. De lo contrario (o en realidad, en cualquier caso), consulte estos dos excelentes artículos de Jack Ganssle:

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

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

Por cierto, si no puede configurar el perro guardián en un intervalo largo, puede probar el enfoque de despertarse con la frecuencia suficiente para patear al perro guardián, pero solo tomando medidas/escribiendo registros de vez en cuando.