Comment savoir si ma planche approche de la fin de vie?

12

J'ai un uno que j'utilise depuis 3 ans maintenant. Je vais l'utiliser à nouveau dans un projet assez critique dans lequel un échec de la part de la carte pourrait être assez cher et dangereux. Donc, je voudrais être sûr que le conseil n'approche pas de la fin de sa vie ou ne va pas échouer de sitôt. Existe-t-il un moyen fiable de déterminer la durée de fonctionnement de la carte sans échouer ou réduire les performances?

asheeshr
la source
"un échec de la part du conseil d'administration pourrait être assez coûteux et dangereux". Définissez coûteux et définissez dangereux. Peut-être qu'un Arduino n'est pas le mieux adapté à votre application, peut-être devez-vous concevoir un mécanisme de sécurité intégrée.
jippie
@jippie Pensez aux petits drones et / ou à d'autres petits et moyens robots.
asheeshr

Réponses:

8

Malheureusement, il n'y a pas beaucoup de moyen de vraiment déterminer «l'usure» dans le contexte de l'électronique à semi-conducteurs.

Les éléments susceptibles de tomber en panne sont probablement les condensateurs électrolytiques et les connecteurs.


Tout d'abord, si vous utilisez un processeur ATmega pour quelque chose qui pourrait éventuellement blesser quelqu'un, CONTACTEZ ATMEL ET PARLEZ DES MESURES DE SÉCURITÉ . Le processeur ATmega utilisé dans la plupart des modèles Arduino n'est pas conçu pour être utilisé dans de telles situations.

Dans CHAQUE fiche technique:

Les produits Atmel ne sont pas destinés, autorisés ou garantis pour une utilisation en tant que composants dans des applications destinées à soutenir ou à maintenir la vie.

Maintenant, de façon réaliste, il s'agit probablement principalement d' un répulsif à avocat, mais vous devez toujours prendre les précautions appropriées.

Vraiment, alors qu'il n'y a rien sur une carte Arduino commune qui s'use vraiment à l'exception des connecteurs, pourquoi essayez-vous d'économiser 30 $ à un coût énorme potentiel? Achetez simplement une nouvelle planche.

Je recommande également fortement que vous ayez choisi une carte avec un SMT ATmega328P, car cela supprime les contacts de la prise IC de la liste des problèmes. Si possible, retirez également les broches et les fils à souder directement sur la carte. Essayez de minimiser les connecteurs, car ce sont des points de défaillance fréquents.

Connor Wolf
la source
4

L'une des sections de l'Arduino qui risque de devenir peu fiable au fil du temps est sa mémoire. Il existe trois pools de mémoire dans le microcontrôleur utilisé sur les cartes Arduino basées sur avr:

  • La mémoire flash (espace programme) est l'endroit où est stocké le croquis Arduino.
  • SRAM (mémoire statique à accès aléatoire) est l'endroit où l'esquisse crée et manipule des variables lors de son exécution.
  • L'EEPROM est un espace mémoire que les programmeurs peuvent utiliser pour stocker des informations à long terme.

La mémoire est une partie de la carte qui peut être vérifiée et vérifiée, et donc évaluée pour sa fiabilité / santé. Une manière très basique de vérifier la mémoire serait d'écrire un certain modèle de 8 bits (caractère d'octet) sur chaque adresse de la mémoire, puis de lire la valeur présente à partir de chaque adresse. Si la valeur qui a été écrite correspond à la valeur lue, alors ce bloc spécifique de 8 bits en mémoire fonctionne correctement à l'heure actuelle.

L'usure de la mémoire ROM se produit généralement par blocs, c'est-à-dire que les blocs n * 8 bits se dégradent avec le temps. Ainsi, pour une puce ROM de 2 Ko, la santé de la puce peut être estimée en écrivant et en lisant chaque octet de la puce et en calculant le pourcentage de blocs fonctionnant correctement. Si le pourcentage de blocs en échec est significatif (15% -20%), cela signifie que la mémoire est susceptible d'échouer bientôt.

Le code de test peut être écrit en utilisant des méthodes distinctes pour chacune des sections de mémoire.

SRAM

Toutes les variables déclarées statiquement ou dynamiquement sont allouées sur la SRAM. Ainsi, nous pourrions déclarer un grand tableau de caractères (~ 2000) et remplir chaque élément avec 255 (tous les bits 1). Ensuite, nous pourrions tenter de lire chacun de ces éléments et voir si la valeur lue est bien 255.

EEPROM

L'EEPROM peut être manipulée à l'aide de la bibliothèque EEPROM . La bibliothèque fournit des fonctions pour lire et écrire à partir d'emplacements spécifiques dans l'EEPROM. Ainsi, toutes les adresses mémoire peuvent être testées en bouclant simplement sur tout l'espace mémoire. Cette opération nécessitera 500 écritures et lectures.

Selon l'utilisation de la carte, l'EEPROM est le plus susceptible d'échouer en premier mais n'est pas critique pour le fonctionnement de la carte.

Éclat

Les données peuvent être stockées sur la mémoire flash à l'aide de la PROGMEMdirective. Semblable à SRAM, un grand tableau peut être déclaré et initialisé ici. Ensuite, les valeurs peuvent être lues et vérifiées.

asheeshr
la source
Cela se concentre uniquement sur le microcontrôleur, qui est très peu susceptible d'être le bit le moins fiable de la carte. Le flash est évalué à 10 000 cycles - ce qui est très difficile à réaliser. De plus, le test ne ferait que prouver qu'il fonctionne maintenant, pas lorsqu'il est mis dans l'application. Il est sûrement beaucoup plus facile de simplement valider la mémoire programme une fois programmée, ou l'EEPROM?
Cybergibbons
Je remets en question la phrase «L'une des sections de l'Arduino qui risque de devenir peu fiable au fil du temps est sa mémoire». - le flash peut effectuer 10k cycles, l'EEPROM 100k cycles. Ça fait beaucoup d'écriture.
Cybergibbons
@Cybergibbons Les applications gourmandes en mémoire peuvent finir par faire plus de 100 écritures par minute. Pas commun, mais possible lors de l'utilisation d'un grand nombre de capteurs. Le test nous donnerait un pourcentage de la mémoire qui fonctionne correctement. Je n'ai pas de connaissance spécifique des puces ROM sur l'Arduino, mais de nombreuses ROM ont la capacité de répartir les cycles de lecture et d'écriture sur la puce. L'effet de cela est que lorsque même certains emplacements de mémoire se dégradent, c'est un signe que la puce entière se dégradera bientôt. Même si les cycles R / W ne se propagent pas, même alors, si certaines zones commencent à échouer, c'est un signe que ..
asheeshr
au moins des parties de la puce ont subi une usure importante, ce qui rend la puce partiellement non fiable. Dans les deux cas, l'évaluation de toute la plage de mémoire disponible est une méthode assez fiable pour déterminer l'état actuel de la puce, ce qui peut donner une indication d'échec dans un proche avenir . Oui, cela ne me dira pas si la puce échouera dans le prochain projet, mais dans le cas d'une application dangereuse ou coûteuse, je ne mettrais certainement pas une puce au travail qui a une probabilité accrue d'échec.
asheeshr
Si vous écrivez sur EEPROM ou flashez des centaines de fois par minute, vous envisagez une durée de vie inférieure à une journée. C'est juste une utilisation inappropriée. Il n'y a pas de mise à niveau d'usure dans un ATmega.
Cybergibbons
-4

Edit: Les gens qui ont voté contre ma réponse, Ohh commun ne soyez pas trop stupide! pour cela, vous devez être un électron et passer par le circuit lui-même pour vérifier que tout va bien ou non :)

Branchez la carte sur un port USB de votre ordinateur et vérifiez que le voyant d'alimentation LED vert sur la carte s'allume. Les cartes Arduino standard (Uno, Duemilanove et Mega) ont un indicateur d'alimentation LED vert situé près du commutateur de réinitialisation.

Une LED orange près du centre de la carte (étiquetée «Pin 13 LED» dans l'image ci-dessous) doit s'allumer et s'éteindre lorsque la carte est sous tension (les cartes proviennent de l'usine préchargées avec un logiciel pour faire clignoter la LED comme une simple vérification que le conseil fonctionne).

entrez la description de l'image ici

Si le voyant d'alimentation ne s'allume pas lorsque la carte est connectée à votre ordinateur, la carte n'est probablement pas alimentée.

La LED clignotante (connectée à la broche de sortie numérique 13) est contrôlée par un code exécuté sur la carte (les nouvelles cartes sont préchargées avec l'esquisse d'exemple Blink). Si la LED de la broche 13 clignote, le croquis fonctionne correctement, ce qui signifie que la puce de la carte fonctionne. Si le voyant d'alimentation vert est allumé mais que le voyant de la broche 13 ne clignote pas, il se peut que le code d'usine ne soit pas sur la puce. Si vous n'utilisez pas de carte standard, celle-ci peut ne pas avoir de LED intégrée sur la broche 13, alors consultez la documentation pour plus de détails sur votre carte.

Des guides en ligne pour démarrer avec Arduino sont disponibles sur pour Windows , pour Mac OS X et pour Linux .

Hardik Thaker
la source
2
La question est de savoir si la carte est sur le point de tomber en panne , pas si elle a déjà échoué .
asheeshr
@AsheeshR: Ohh, ne soyez pas trop stupide! pour cela, vous devez être un électron et passer par le circuit lui-même pour vérifier que tout va bien ou non :)
Hardik Thaker
2
@HardikThaker Pourquoi ne mettez-vous pas cela dans une réponse à la place? Cela aurait été mieux, je suppose. De plus, si vous ne voulez pas jeter votre réponse (c'est utile), vous pouvez toujours poser la bonne question et y répondre vous-même. Cela est généralement fait par les experts pour répondre aux questions fréquemment posées, comme ça .
Ricardo
@Ricardo: roger ça! Merci mon pote ! Je garderai cela à l'esprit: P meilleure chance la prochaine fois pour moi;) -4 et en comptant: P
Hardik Thaker