¿Cómo puedo saber si mi tablero se acerca al final de la vida?

12

Tengo uno que he estado usando durante 3 años. Lo usaré nuevamente en un proyecto bastante crítico en el que la falla por parte de la junta podría ser bastante costosa y peligrosa. Por lo tanto, me gustaría asegurarme de que el tablero no se acerque al final de la vida o que falle en el corto plazo. ¿Hay alguna forma confiable de averiguar cuánto tiempo funcionará la placa sin fallar o reducir el rendimiento?

Asheeshr
fuente
"El fallo de la junta podría ser bastante costoso y peligroso". Definir caro y definir peligroso. Tal vez un Arduino no sea el mejor para su aplicación, tal vez necesite diseñar un mecanismo a prueba de fallas.
jippie
@jippie Piense en UAV pequeños y / u otros robots pequeños a medianos.
asheeshr

Respuestas:

8

Desafortunadamente, no hay mucha manera de determinar realmente el "desgaste" en el contexto de la electrónica de estado sólido.

Probablemente, las cosas que tienen más probabilidades de fallar son los condensadores electrolíticos y los conectores.


Primero, si está utilizando una CPU ATmega para algo que podría dañar a alguien, CONTACTE CON ATMEL Y HABLE CON RESPECTO A LAS PRECAUCIONES DE SEGURIDAD . La CPU ATmega utilizada en la mayoría de los modelos arduino no está clasificada para su uso en tales situaciones.

En CADA hoja de datos:

Los productos de Atmel no están destinados, autorizados o garantizados para su uso como componentes en aplicaciones destinadas a soportar o mantener la vida.

Ahora, de manera realista, esto probablemente sea principalmente repelente de abogados, pero aún debe tomar las precauciones adecuadas.

Realmente, si bien no hay nada en una placa arduino común que realmente se gaste, excepto los conectores, ¿por qué estás tratando de ahorrar $ 30 a un costo enorme potencial? Solo compre un nuevo tablero.

También recomiendo encarecidamente que elija una placa con un SMT ATmega328P, ya que eso elimina los contactos del zócalo IC de la lista de preocupaciones. Si es posible, también quite los cabezales de clavija y los cables de soldadura a la placa directamente. Intente minimizar los conectores, ya que son puntos frecuentes de falla.

Connor Wolf
fuente
4

Una de las secciones del Arduino que probablemente no sea confiable con el tiempo es su memoria. Hay tres grupos de memoria en el microcontrolador utilizado en placas Arduino basadas en avr:

  • Memoria flash (espacio del programa), es donde se almacena el boceto Arduino.
  • SRAM (memoria estática de acceso aleatorio) es donde el boceto crea y manipula variables cuando se ejecuta.
  • EEPROM es un espacio de memoria que los programadores pueden usar para almacenar información a largo plazo.

La memoria es una parte de la placa que se puede verificar y verificar y, por lo tanto, se evalúa su fiabilidad / estado. Una forma muy básica de verificar la memoria sería escribir un cierto patrón de 8 bits (carácter de byte) sobre cada dirección en la memoria y luego leer el valor presente de cada dirección. Si el valor que se escribió coincide con el valor que se lee, entonces ese bloque específico de 8 bits en la memoria funciona correctamente en este momento.

El desgaste en la memoria ROM generalmente ocurre en un patrón de bloques, es decir, n * bloques de 8 bits se degradan con el tiempo. Entonces, para un chip ROM de 2K bytes, la salud del chip se puede estimar escribiendo y leyendo cada byte en el chip, y calculando el porcentaje de bloques que funcionan correctamente. Si el porcentaje de bloques fallidos es significativo (15% -20%), eso significa que es probable que la memoria falle pronto.

El código de prueba se puede escribir utilizando métodos separados para cada una de las secciones de memoria.

SRAM

Cualquier variable declarada estática o dinámicamente se asigna en la SRAM. Entonces, podríamos declarar una gran matriz de caracteres (~ 2000) y llenar cada elemento con 255 (todos los bits 1). Entonces, podríamos intentar leer cada uno de esos elementos y ver si el valor que se está leyendo es de hecho 255.

EEPROM

La EEPROM se puede manipular utilizando la biblioteca EEPROM . La biblioteca proporciona funciones para leer y escribir desde ubicaciones específicas en la EEPROM. Por lo tanto, todas las direcciones de memoria se pueden probar simplemente recorriendo todo el espacio de memoria. Esta operación requerirá 500 escrituras y lecturas.

Dependiendo del uso de la placa, es probable que EEPROM falle primero, pero no es crítico para el funcionamiento de la placa.

Destello

Los datos pueden almacenarse en la memoria flash utilizando la PROGMEMdirectiva. Similar a SRAM, una gran matriz se puede declarar e inicializar aquí. Luego, los valores se pueden leer y verificar.

Asheeshr
fuente
Esto se concentra solo en el microcontrolador, que es muy poco probable que sea el bit menos confiable en el tablero. El flash tiene una capacidad de 10k ciclos, esto es muy difícil de lograr. Además, la prueba solo probaría que está funcionando ahora, no cuando se coloca en la aplicación. ¿Es mucho más fácil validar la memoria del programa una vez programada o la EEPROM?
Cybergibbons
Yo cuestionaría la frase "Una de las secciones del Arduino que probablemente no sea confiable con el tiempo es su memoria". - el flash puede hacer 10k ciclos, la EEPROM 100k ciclos. Eso es mucha escritura.
Cybergibbons
@Cybergibbons Las aplicaciones con uso intensivo de memoria pueden terminar haciendo más de 100 escrituras por minuto. No es común, pero es posible cuando se utiliza una gran cantidad de sensores. La prueba nos daría un porcentaje de la memoria que funciona correctamente. No tengo un conocimiento específico de los chips ROM en el Arduino, pero muchos ROM tienen la capacidad de distribuir los ciclos de lectura y escritura a través del chip. El efecto de esto es que incluso cuando algunas ubicaciones de memoria se degradan, es una señal de que todo el chip se degradará pronto. Incluso si los ciclos R / W no se extienden, incluso entonces, si ciertas áreas comienzan a fallar, entonces es una señal de que ...
asheeshr
al menos partes del chip han sufrido un desgaste significativo, lo que hace que el chip sea en parte poco confiable. En cualquier caso, evaluar todo el rango de memoria disponible es un método bastante confiable para determinar el estado actual del chip, lo que puede dar una indicación de falla en el futuro cercano . Sí, esto no me dirá si el chip fallará en el próximo proyecto, pero en el caso de una aplicación peligrosa o costosa, ciertamente no pondría a funcionar un chip que tenga una mayor probabilidad de falla.
asheeshr
Sin embargo, si está escribiendo en EEPROM o flasheando cientos de veces por minuto, está viendo una vida útil de menos de un día. Eso es solo un uso inapropiado. No hay nivelación de desgaste en un ATmega.
Cybergibbons
-4

Editar: Las personas que rechazaron mi respuesta, ¡Ohh común, no seas demasiado tonto! para eso necesitas ser un electrón y pasar por el circuito en sí para verificar que todo esté bien o no :)

Conecte la placa a un puerto USB de su computadora y verifique que el indicador LED verde de energía de la placa se ilumine. Las placas Arduino estándar (Uno, Duemilanove y Mega) tienen un indicador LED verde de energía ubicado cerca del interruptor de reinicio.

Un LED naranja cerca del centro de la placa (etiquetado como "Pin 13 LED" en la imagen a continuación) debe encenderse y apagarse cuando se enciende la placa (las placas vienen de fábrica precargadas con software para flashear el LED como una simple comprobación de que El tablero está funcionando).

ingrese la descripción de la imagen aquí

Si el LED de alimentación no se ilumina cuando la placa está conectada a su computadora, es probable que la placa no esté recibiendo energía.

El LED parpadeante (conectado al pin de salida digital 13) está siendo controlado por el código que se ejecuta en la placa (las placas nuevas están precargadas con el boceto de ejemplo de Blink). Si el LED del pin 13 parpadea, el boceto se ejecuta correctamente, lo que significa que el chip de la placa está funcionando. Si el LED de alimentación verde está encendido pero el LED del pin 13 no parpadea, puede ser que el código de fábrica no esté en el chip. Si no está utilizando una placa estándar, es posible que no tenga un LED incorporado en el pin 13, así que consulte la documentación para obtener detalles de su placa.

Las guías en línea para comenzar con Arduino están disponibles en Windows , Mac OS X y Linux .

Hardik Thaker
fuente
2
La pregunta es cómo verificar si el tablero está a punto de fallar , no si ya ha fallado .
asheeshr
@AsheeshR: ¡Ohh común, no seas demasiado tonto! para eso necesitas ser un electrón y pasar por el circuito en sí para verificar que todo esté bien o no :)
Hardik Thaker
2
@HardikThaker ¿Por qué no pones eso en una respuesta? Hubiera sido mejor, supongo. Además, si no desea tirar su respuesta (es útil), siempre puede hacer la pregunta correcta y responderla usted mismo. Por lo general, eso lo hacen los expertos para abordar las preguntas frecuentes, de esa manera .
Ricardo
@ Ricardo: Roger eso! gracias amigo ! Recordaré esto: P mejor suerte la próxima vez para mí;) -4 y contando: P
Hardik Thaker